Mod_Security ist eine Software Firewall, welche kontrolliert, welche Eingaben auf einem Apache gemacht und was für Daten übermittelt werden. Diese werden dann mit einer Handvoll Regeln verglichen, wodurch schädliche Abfragen erkannt und geblockt werden.
Unter Debian und Ubuntu heisst das benötigte Paket libapache-mod-security:
apt-get install libapache-mod-security -y
Nach dem Installieren aus den Paketquellen wird eine Datei unter /etc/apache2/conf.d/modsecurity2.conf angelegt und mit folgendem Inhalt ergänzt:
<ifmodule mod_security2.c> Include conf.d/modsecurity/*.conf </ifmodule>
Danach werden die nötigen Ordner erstellt und verlinkt:
sudo mkdir /var/log/apache2/mod_security sudo ln -s /var/log/apache2/mod_security/ /etc/apache2/logs
Und die aktuellsten Regeln heruntergeladen:
sudo mkdir /etc/apache2/conf.d/modsecurity cd /etc/apache2/conf.d/modsecurity sudo wget http://www.modsecurity.org/download/modsecurity-core-rules_2.5-1.6.1.tar.gz sudo tar xzvf modsecurity-core-rules_2.5-1.6.1.tar.gz rm -f CHANGELOG LICENSE README modsecurity-core-rules_2.5-1.6.1.tar.gz
Nun noch das Modul aktivieren und Apache neustarten:
sudo a2enmod mod-security sudo /etc/init.d/apache2 restart
Und von nun an wird der Apache durch Mod_Security geschützt.
Prüfen kann man das ganz einfach! Es muss eine Datei erstellt werden, mit folgendem Inhalt:
<?
$secret_file = $_GET['secret_file'];
include ($secret_file);
?>
Nun ruft man die Datei auf unter http://localhost/index.php?secret_file=/etc/passwd. Erhält man anstelle der /etc/passwd Datei die folgende Ausgabe, so arbeitet mod_security richtig:
Method Not Implemented GET to /index.php not supported.
Doch Vorsicht: mod_security ist nicht überall geeignet. So hat zum Beispiel auch mein Hoster das eingesetzt, und musste es für meinen Blog deaktivieren, dass ich all die Code-Schnipsel posten kann
Wer von euch hatte denn schon mal wirkliche Angriffe auf seinem Webserver? Konntet ihr standhalten oder seid ihr eingebrochen? Und in welcher Art lief der Angriff ab?
