Apparmor Apache2: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=Absicherung eines Apache2-Webservers mit AppArmor auf Debian= | =Absicherung eines Apache2-Webservers mit AppArmor auf Debian= | ||
==Ziel== | ==Ziel== | ||
| − | * | + | * Reduzierung der Angriffsfläche durch Zugriffsbeschränkungen auf Dateisystemebene. |
| − | * | + | * Der Apache2-Prozess darf nur auf explizit erlaubte Dateien und Verzeichnisse zugreifen. |
| − | * Schutz vor Webshells, | + | * Schutz vor Webshells, ungewolltem Zugriff auf /etc/, /root/, etc. |
==Voraussetzungen== | ==Voraussetzungen== | ||
| − | * Debian- | + | * Debian- oder Ubuntu-System mit Apache2 |
| − | * | + | * root-Zugriff |
| − | * | + | |
| + | ==Installation der AppArmor-Werkzeuge== | ||
| + | *apt-get install apparmor apparmor-utils | ||
==Status prüfen== | ==Status prüfen== | ||
| − | + | *systemctl status apparmor | |
| − | * | + | *aa-status | grep apache2 |
| − | |||
| − | |||
| − | * | ||
| − | |||
==AppArmor-Profil für Apache2 aktivieren== | ==AppArmor-Profil für Apache2 aktivieren== | ||
| + | *aa-enforce /etc/apparmor.d/usr.sbin.apache2 | ||
| − | + | ==Profil in Lernmodus setzen (optional)== | |
| − | + | *aa-complain /etc/apparmor.d/usr.sbin.apache2 | |
| + | *systemctl restart apache2 | ||
| − | * | + | ==Traffic erzeugen und Log beobachten== |
| − | + | *Im Browser verschiedene Seiten und Funktionen der Website aufrufen | |
| − | + | *journalctl -xe | grep DENIED | |
| − | == | + | ==Profilvorschläge durchgehen== |
| + | *aa-logprof | ||
| + | *Empfohlene Regeln prüfen und anwenden | ||
| − | + | ==Profil in Durchsetzungsmodus setzen== | |
| − | + | *aa-enforce /etc/apparmor.d/usr.sbin.apache2 | |
| − | + | *systemctl restart apache2 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | ==Profil | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | ==Beispiel: Zugriff auf benutzerdefiniertes Webroot erlauben== | |
| − | + | *nano /etc/apparmor.d/usr.sbin.apache2 | |
| − | + | Folgende Zeilen ergänzen, wenn z. B. /srv/www genutzt wird: | |
/srv/www/ r, | /srv/www/ r, | ||
/srv/www/** r, | /srv/www/** r, | ||
| − | == | + | ==Beispiel: Schreibzugriffe auf Upload-Verzeichnis erlauben== |
| − | |||
| − | |||
/var/www/html/uploads/ rw, | /var/www/html/uploads/ rw, | ||
/var/www/html/uploads/** rw, | /var/www/html/uploads/** rw, | ||
| − | == | + | ==Fehlersuche== |
| + | *journalctl -xe | grep DENIED | ||
| + | *aa-logprof | ||
| + | *aa-status | ||
| − | * | + | ==Hinweis== |
| − | + | *Das alte Paket libapache2-mod-apparmor wird nicht mehr benötigt und ist auf aktuellen Debian-Systemen überflüssig. | |
| + | *Die Apache2-Module mpm_prefork oder apparmor müssen nicht extra aktiviert werden. | ||
| − | + | ==Abschluss== | |
| − | + | *systemctl restart apache2 | |
| − | + | *Test der Website und Prüfung, ob alle Funktionen wie erwartet laufen | |
| − | == | ||
| − | |||
| − | * | ||
| − | |||
Version vom 24. Juni 2025, 10:42 Uhr
Absicherung eines Apache2-Webservers mit AppArmor auf Debian
Ziel
- Reduzierung der Angriffsfläche durch Zugriffsbeschränkungen auf Dateisystemebene.
- Der Apache2-Prozess darf nur auf explizit erlaubte Dateien und Verzeichnisse zugreifen.
- Schutz vor Webshells, ungewolltem Zugriff auf /etc/, /root/, etc.
Voraussetzungen
- Debian- oder Ubuntu-System mit Apache2
- root-Zugriff
Installation der AppArmor-Werkzeuge
- apt-get install apparmor apparmor-utils
Status prüfen
- systemctl status apparmor
- aa-status | grep apache2
AppArmor-Profil für Apache2 aktivieren
- aa-enforce /etc/apparmor.d/usr.sbin.apache2
Profil in Lernmodus setzen (optional)
- aa-complain /etc/apparmor.d/usr.sbin.apache2
- systemctl restart apache2
Traffic erzeugen und Log beobachten
- Im Browser verschiedene Seiten und Funktionen der Website aufrufen
- journalctl -xe | grep DENIED
Profilvorschläge durchgehen
- aa-logprof
- Empfohlene Regeln prüfen und anwenden
Profil in Durchsetzungsmodus setzen
- aa-enforce /etc/apparmor.d/usr.sbin.apache2
- systemctl restart apache2
Beispiel: Zugriff auf benutzerdefiniertes Webroot erlauben
- nano /etc/apparmor.d/usr.sbin.apache2
Folgende Zeilen ergänzen, wenn z. B. /srv/www genutzt wird:
/srv/www/ r, /srv/www/** r,
Beispiel: Schreibzugriffe auf Upload-Verzeichnis erlauben
/var/www/html/uploads/ rw, /var/www/html/uploads/** rw,
Fehlersuche
- journalctl -xe | grep DENIED
- aa-logprof
- aa-status
Hinweis
- Das alte Paket libapache2-mod-apparmor wird nicht mehr benötigt und ist auf aktuellen Debian-Systemen überflüssig.
- Die Apache2-Module mpm_prefork oder apparmor müssen nicht extra aktiviert werden.
Abschluss
- systemctl restart apache2
- Test der Website und Prüfung, ob alle Funktionen wie erwartet laufen