M 4.196 Sicherer Betrieb eines Apache-Webservers
Verantwortlich für Initiierung: Leiter IT, IT-Sicherheitsmanagement
Verantwortlich für Umsetzung: Administrator
Um die Sicherheit eines Apache-Webservers auch im Betrieb aufrecht zu erhalten, genügt es nicht, eine sichere Anfangskonfiguration zu erzeugen. Vielmehr muss regelmäßig eine Reihe von Maßnahmen durchgeführt werden, um eventuelle Probleme rechtzeitig zu entdecken. Beim Betrieb eines Apache-Webservers sollten insbesondere folgende Aspekte berücksichtigt werden:
Änderungen an der Konfiguration müssen sorgfältig dokumentiert werden, so dass zu jeder Zeit nachvollzogen werden kann, wer aus welchem Grund was geändert hat. Für die Änderungen an den Konfigurationsdateien sollte ein Revisionskontrollprogramm (unter Unix genügt dazu beispielsweise RCS) eingesetzt werden, das es erlaubt, jederzeit auch einen früheren Stand der Konfiguration wieder herzustellen.
Nach jeder Änderung an der Datei httpd.conf muss zunächst mit dem Befehl apachectl configtest geprüft werden, ob die Syntax der Konfigurationsdatei korrekt ist. Syntaxfehler in der Konfigurationsdatei können sonst dazu führen, dass der Server nicht neu startet.
Die Zugriffsberechtigungen im Dateisystem des Webservers und die vergebenen Zugriffsberechtigungen für Inhalte des Webservers sollten regelmäßig überprüft werden. Insbesondere sollte dies nach Software-Updates oder Konfigurationsänderungen geschehen. Für die Dateien des Servers selbst (beispielsweise das Serverprogramm httpd, das Kontrollskript apachectl und die Erweiterungsmodule) sollten Prüfsummen angelegt und regelmäßig überprüft werden.
Falls auf dem Webserver Server-Side-Includes, cgi-Skripte oder andere Server-Erweiterungen eingesetzt werden, sollten für alle Dateien, die ausführbaren Code enthalten, ebenfalls Prüfsummen angelegt und regelmäßig überprüft werden. Bei Server-Erweiterungen wie PHP oder Java-Server-Pages, bei denen ausführbare Bestandteile und normale Inhalte vermischt auftreten, kann dies einen erheblichen Aufwand verursachen.
Die Maßnahmen zum Schutz von Authentisierungsdaten sollten regelmäßig überprüft werden. Dies betrifft beispielsweise Zugriffsrechte auf .htaccess-Dateien und Passwortdateien sowie gegebenenfalls auf Client-Zertifikate.
Sofern SSL genutzt wird, müssen regelmäßig die Sicherheitsvorkehrungen zum Schutz der privaten Schlüssel des Webservers überprüft werden (siehe M 5.107 Verwendung von SSL im Apache-Webserver). Ebenso muss darauf geachtet werden, dass rechtzeitig vor Ablauf der Gültigkeitsdauer des Server-Zertifikats ein neues Zertifikat beschafft wird.
Sofern CRLs (Certificate Revocation Lists) genutzt werden, müssen diese in regelmäßigen Abständen aktualisiert werden.
Die Administratoren müssen sich über aktuelle Sicherheitslücken in der eingesetzten Software frühzeitig informieren (siehe auch M 2.35 Informationsbeschaffung über Sicherheitslücken des Systems). Informationen zum Apache-Webserver finden sich in der Mailingliste zum Apache-Webserver und auf den Webseiten der Apache Software Foundation (www.apache.org).
Die Protokolldateien des Apache-Webservers sowie des unterliegenden Betriebssystems sollten regelmäßig ausgewertet werden. Unregelmäßigkeiten in den Webserver-Logdateien, die Hinweise auf mögliche Probleme mit dem Webserver sein können, sind beispielsweise:
- Eine Häufung von Anfragen, die einen HTTP-Fehler erzeugen, beispielsweise "404 - Datei nicht gefunden" oder "403 - Zugriff verweigert".
- Eine Häufung von Anfragen von einer bestimmten IP-Adresse.
- Eine Häufung von Anfragen nach einer bestimmten Datei.
Meist sind solche Unregelmäßigkeiten nicht unbedingt Hinweise auf eine Kompromittierung des Servers, sondern eher auf fehlerhafte Einstellungen.
Zum sicheren Betrieb gehören weiter auch regelmäßig durchzuführende Maßnahmen der Datensicherung und der Notfallvorsorge (siehe auch M 6.89 Notfallvorsorge für einen Apache-Webserver).
Ergänzende Kontrollfragen:
- Werden die Zugriffsberechtigungen auf Bereiche des Webservers regelmäßig überprüft?
- Werden die Protokolldateien des Apache-Webservers regelmäßig überprüft?