Apache gegen Apachekiller wappnen
Eine Lücke im Webserver Apache, die in allen Versionen bis 2.2.18 enthalten ist, kann dazu ausgenutzt werden, das komplette System lahmzulegen. Weitere Informationen dazu findet man unter anderem bei Golem. Maßnahmen, die die Ausnutzung der Lücke verhindern, sind in einem Apache Security Advisory aufgeführt.
Nachdem es noch nicht von allen Distributoren entsprechende Aktualisierungen gibt, hier eine kurze Anleitung, wie man die Lücke provisorisch flicken kann – exemplarisch am Beispiel SLES:
- Überprüfen, ob der Apache das headers-Modul geladen hat. Geladene Module bekommt man mit
apache2ctl -M
, einkompilierte Module mitapache2ctl -l
. - Sollte es nicht geladen sein, es zur Liste der zu ladenden Module hinzufügen. Bei SLES fügt man dazu in der Datei
/etc/sysconfig/apache2
der VariablenAPACHE_MODULES
den Wertheaders
hinzu. Weniger SuSE-spezifisch sollte das mita2enmod headers
funktionieren. Im Zweifelsfall konsultieren Sie die Dokumentation Ihrer Distribution. - Für die nötigen zusätzlichen Konfigurationsdirektiven eine Datei erstellen, beispielsweise
/etc/apache2/apk-workaround.conf
. Diese sollte nun folgenden Inhalt haben:- Für Apache 2.0:
# Drop the Range header when more than 10 ranges.
# CVE-2011-3192
SetEnvIf Range (,.*?){10,} bad-range=1
RequestHeader set Range "badrange" env=bad-range
- Für Apache 2.2:
# Drop the Range header when more than 10 ranges.
# CVE-2011-3192
SetEnvIf Range (,.*?){10,} bad-range=1
RequestHeader unset Range env=bad-range
- Für Apache 2.0:
- Die erstellte Datei muss nun in die Apache-Konfiguration eingebunden werden. Unter SLES ergänzt man hierzu in der Datei
/etc/sysconfig/apache2
die VariableAPACHE_CONF_INCLUDE_FILES
um den Wert/etc/apache2/apk-workaround.conf
. Das sorgt dafür, dass die oben erstellte Datei eingebunden wird. Manuell erreicht man das mit der Zeile
Include /etc/apache2/apk-workaround.conf
in derhttpd.conf
. - Als letzte Schritte noch die Konfiguration auf korrekte Syntax überprüfen und den Webserver neu starten:
apache2ctl configtest
/etc/init.d/apache2 stop
/etc/init.d/apache2 start