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
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..