Apparmor Apache2: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 12: Zeile 12:
 
==Installation der AppArmor-Werkzeuge==
 
==Installation der AppArmor-Werkzeuge==
 
*apt-get install apparmor apparmor-utils
 
*apt-get install apparmor apparmor-utils
 +
==Apparmor Profiles installieren==
 +
*apt install apparmor-profiles apparmor-profiles-extra
  
 
==Status prüfen==
 
==Status prüfen==

Version vom 24. Juni 2025, 15:43 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

Apparmor Profiles installieren

  • apt install apparmor-profiles apparmor-profiles-extra

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