Webserver-Sicherheit, Teil 1

10 Tipps zur Sicherheitsoptimierung von Apache

Tipp 1: Listen-Anweisungen

Standardmäßig lauscht der Apache nach der Installation durch die Anweisung Listen 80 (httpd.conf, Zeile 218) auf Port 80 aller verfügbaren IP-Adressen des Systems. Dadurch besteht die Gefahr, dass ein unachtsamer Administrator dafür sorgt, dass der Apache über eine IP-Adresse angesprochen werden kann, über die normalerweise kein Zugriff auf das System möglich sein sollte.

Es ist daher ratsam, die IP-Adressen, über die ein Zugriff auf das lokale System möglich sein soll, explizit durch eine Listen-Anweisung in der Konfigurationsdatei des Apache zu definieren. Ein Beispiel:

Listen 192.168.0.6:80

Durch diese Anweisung wird der Apache nur auf Port 80 der Netzwerkschnittstelle gebunden, der die IP-Adresse 192.168.0.6 zugeordnet ist. Bitte beachten Sie außerdem, dass der Server auch über den TCP-Port 443 (HTTPS) auf allen Netzwerkkarten ansprechbar ist, sofern SSL aktiviert ist. Die Ursache dafür liegt darin, dass die Datei conf/ssl.conf durch den Apache ebenfalls geladen wird (httpd.conf, Zeilen 1040-1042) und dort eine entsprechende Listen-Anweisung vorhanden ist. Die oben gemachten Aussagen bezüglich der Gefahr einer universellen Anweisung treffen selbstverständlich auch für SSL zu.

Tipp 2: User nobody

Nach der Installation des Apache ist es die Aufgabe des Administrators, die Konfigurationsdatei des Apache durchzuschauen und dort verschiedene Änderungen der Grundkonfiguration vorzunehmen. Eine wichtige Änderung ist die Korrektur der in den Zeilen 266-267 enthaltenen Definition der Benutzer- und Gruppenkennung, mit der der Apache betrieben werden soll.Standardmäßig sieht diese Konfiguration aus Gründen der Kompatibilität wie folgt aus:

User nobody
Group #-1

Der Benutzer nobody wird hier verwendet, da dieser bereits auf einer Vielzahl von Systemen existiert und dort gerne für das Ausführen von Systemdiensten mit nicht privilegierten Rechten benutzt wird. Aus Sicherheitsgründen sollten Sie einen separaten Benutzer für die Ausführung des Servers erstellen und dessen Benutzerkennung in die Konfigurationsdatei des Apache eintragen. Die aus Kompatibilitätsgründen standardmäßig verwendete Gruppenkennung #-1 ist sehr interessant, da diese streng genommen ungültig ist und dafür sorgt, dass der Apache mit einer falschen und in der Regel nicht existierenden Gruppenkennung ausgeführt wird (z.B. 4294967295).

Erzeugen Sie deshalb für die Ausführung des Apache eine separate Gruppe oder stellen Sie durch Eingabe des Befehls id nobody die korrekte Kennung der Gruppe fest, der der Benutzer nobody angehört und korrigieren Sie den Wert der Gruppenkennung in der Datei httpd.conf. Sie können unter anderem durch die folgenden Befehle eine separate Gruppe und einen Benutzer für die Ausführung des Apache erstellen:

# groupadd wwwuser
# useradd -g wwwuser -d /nonexistent -s /bin/false wwwuser

Ändern Sie nun in der Datei httpd.conf die User- und Group-Anweisung:

User wwwuser
Group wwwuser