Apache Mod Security

Es gibt für den Apache ein Module mit dem Namen mod_security. Mit diesem Module lässt sich eine Layer 7 Firewall (Application-Firewall) für den Apache bauen. (getestet auf dem Server “kirby” unter Ubuntu-Server 11.10)

1.) Installieren

apt-get install libapache2-modsecurity
a2enmod mod-security

2.) Regelwerk laden Das Regelwerk kann man sich von dieser Webseite laden https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project Oder direkt bei http://sourceforge.net/projects/mod-security/files/modsecurity-crs/0-CURRENT/


3.) Regelwerk installieren Wir haben uns das aktuelle Regelwerk unter /tmp gespeichert und installieren jetzt die wichtigesten Regeln

cd /tmp
tar -xvzf modsecurity-crs_2.2.3.tar.gz
cd modsecurity-crs_2.2.3
mkdir -p /etc/modsecurity/activ/
cp modsecurity_crs_10_config.conf.example /etc/modsecurity/activ/modsecurity_crs_10_config.conf
for f in `ls base_rules/` ; do cp base_rules/$f /etc/modsecurity/activ/$f ; done
for f in `ls optional_rules/ | grep comment_spam` ; do cp optional_rules/$f /etc/modsecurity/activ/$f ; done

4.) Config von Mod-Security anpassen

vim /etc/apache2/mods-enabled/mod-security.conf
Include "/etc/modsecurity/activ/*.conf"

5.) Testen Wenn man jetzt in der modsecurity_crs_10_config

/etc/modsecurity/activ/modsecurity_crs_10_config.conf SecRuleEngine DetectionOnly
 

Setzt und den Apache neu startet werden alle Treffer der Firewall im error.log aufgezeichnet jedoch noch nicht geblockt. So kann man seine Funktionalität seiner Webseite testen bevor man die Firewall scharf schaltet.

Zum Testen eignet sich sehr gut Nikto2 http://www.cirt.net/nikto2

cd /tmp
wget https://cirt.net/nikto/nikto-2.1.4.tar.gz
tar -xvzf nikto-2.1.4.tar.gz
cd nikto-2.1.4
perl nikto.pl -h www.meinedomain.at

Wenn man sich dieses Tool nicht saugen möchte kann man dies auch einfacher machen in dem man sich eine URL zusammen baut

http://www.meinedomain.at/index.php?SELECT%20*%20FROM%20mysql.users

6.) Scharf schalten Wenn man sich sicher ist das man seine Firewall scharf schalten will geht das ganz einfach mit

vim /etc/modsecurity/activ/modsecurity_crs_10_config.conf
SecRuleEngine On
/etc/init.d/apache2 restart

Und schon ist die Apache-Firewall aktiv..