Apparmor Apache2
Version vom 24. Juni 2025, 10:42 Uhr von Thomas.will (Diskussion | Beiträge)
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