Was tun bei fehlerhaften Dateiberechtigungen nach einem Apache-Update im LAMP Stack?

Melden
  1. Einleitung
  2. Ursachen der fehlerhaften Dateiberechtigungen
  3. Diagnose der Probleme
  4. Korrektur der Berechtigungen
  5. Berücksichtigung von SELinux und AppArmor
  6. Weitere Tipps und abschließende Maßnahmen

Einleitung

Nach einem Update des Apache-Webservers im Rahmen eines LAMP-Stacks (Linux, Apache, MySQL, PHP) kann es gelegentlich zu Problemen mit den Dateiberechtigungen kommen. Dies äußert sich beispielsweise darin, dass bestimmte Webseiten oder Anwendungen nicht mehr korrekt geladen werden, es zu Fehlermeldungen bezüglich des Zugriffs auf Dateien oder Verzeichnisse kommt oder Apache generell keine Dateien mehr ausliefern kann. Solche Probleme entstehen meist, weil sich durch das Update Änderungen an den Benutzerrechten, Gruppenzugehörigkeiten oder an den Sicherheitsrichtlinien ergeben haben.

Ursachen der fehlerhaften Dateiberechtigungen

Im Standardbetrieb greift der Apache-Webserver mit einem bestimmten Benutzer (oft "www-data", "apache" oder "httpd") auf die Dateien im Webverzeichnis zu. Falls nach einem Update dieser Benutzer verändert wurde oder die Gruppenzugehörigkeit nicht mehr stimmt, kann Apache die Dateien nicht mehr öffnen oder ausliefern. Zusätzlich können sich auch die Dateisystemberechtigungen selbst, also die Zugriffsrechte (lesen, schreiben, ausführen), verändert haben oder zurückgesetzt worden sein. Ein weiterer häufig vorkommender Faktor ist die Veränderung der Security Enhanced Linux (SELinux)- oder AppArmor-Richtlinien, falls diese auf dem System aktiv sind und durch das Update angepasst wurden.

Diagnose der Probleme

Um herauszufinden, ob die Dateiberechtigungen das Problem sind, empfiehlt es sich zunächst, die Benutzer- und Gruppeninformationen des Apache-Dienstes zu überprüfen. Dies lässt sich durch Eingabe von ps aux | grep apache bzw. ps aux | grep httpd im Terminal realisieren, um den Benutzer zu ermitteln, mit dem Apache läuft. Danach sollte geprüft werden, ob die Webverzeichnisdateien und -ordner diesem Benutzer oder seiner Gruppe die passenden Leserechte zugewiesen haben. Ein häufig genutzter Befehl zur Prüfung ist ls -l /var/www/html (angepasst an den jeweiligen Webpfad). Daneben ist es sinnvoll, die Fehlerprotokolle von Apache anzusehen, welche üblicherweise in /var/log/apache2/error.log oder /var/log/httpd/error_log zu finden sind. Fehlermeldungen bezüglich Berechtigungen oder Zugriffsverweigerung geben wichtige Hinweise.

Korrektur der Berechtigungen

Um die Dateiberechtigungen zu korrigieren, sollte zunächst sichergestellt werden, dass der Apache-Benutzer der Eigentümer oder zumindest in der passenden Gruppe der Webdateien ist. Dies kann man mit dem Befehl chown -R www-data:www-data /var/www/html (unter Ubuntu/Debian) oder chown -R apache:apache /var/www/html (unter CentOS/RHEL) erreichen. Danach sollten die Berechtigungen so gesetzt werden, dass der Benutzer zumindest Leserechte hat (zum Beispiel chmod -R 755 /var/www/html für Verzeichnisse und chmod -R 644 /var/www/html/* für Dateien), um sicherzustellen, dass Apache ohne Schreibrechte auskommen kann, aber lesen darf. Vorsicht ist geboten, um keine zu offenen Berechtigungen zu setzen, die ein Sicherheitsrisiko darstellen. Bei Webanwendungen mit Upload-Funktionalität müssen bestimmte Verzeichnisse Schreibrechte erhalten, was individuell eingestellt werden sollte.

Berücksichtigung von SELinux und AppArmor

Auf Systemen mit SELinux, das z. B. bei CentOS oder Fedora verbreitet ist, kann es vorkommen, dass zwar die Dateiberechtigungen korrekt gesetzt sind, Apache aber trotzdem keinen Zugriff erhält, da SELinux eigene Sicherheitsrichtlinien durchsetzt. Durch ein Update kann sich der SELinux-Kontext der Dateien geändert haben. Dies lässt sich mit dem Befehl ls -laZ /var/www/html prüfen. Um die korrekten Kontextlabels neu zu setzen, verwendet man restorecon -Rv /var/www/html. Eine andere Möglichkeit ist, SELinux temporär in den Permissive-Modus zu versetzen, um zu testen, ob SELinux die Ursache ist (setenforce 0). Bei Systemen mit AppArmor (wie Ubuntu) sollten die Profile überprüft und bei Bedarf angepasst oder neu geladen werden.

Weitere Tipps und abschließende Maßnahmen

Nach Anpassung der Berechtigungen und Sicherheitskonfigurationen sollte Apache neu gestartet werden, damit alle Änderungen wirksam werden (systemctl restart apache2 oder systemctl restart httpd). Ebenfalls hilfreich kann das Überprüfen der Apache-Konfigurationsdateien und das Testen mittels apachectl configtest sein, um Konfigurationsfehler auszuschließen. Sollte das Problem bestehen bleiben, lohnt sich eine genaue Analyse der Log-Dateien und gegebenenfalls auch eine Rücksprache mit der Dokumentation der Webanwendung oder des Betriebssystems. Abschließend ist empfohlen, ein Backup der korrekten Berechtigungen und Konfigurationsdateien anzulegen, um bei künftigen Updates schneller reagieren zu können.

0

Kommentare