Um mod_security in der brandneuen Version 2.5 aus den Sources zu compilien, müssen zunächst diverse Libraries und Pakete nachinstalliert werden.
Nachfolgende Step-by-Step Anleitung geht von einem bereits installierten und funktionstüchtigen Apache2 Setup aus den Distributionspackages von Debian Etch aus.
1. Nachinstallieren der benötigten Pakete
apt-get update
apt-get install apache2.2-common flex libc6-dev gcc openssl libxml2 libxml2-dev lua5.1 \
libpcre3-dev libapr1 libapr1-dev libapreq2-dev aprsd libaprutil1 libaprutil1-dev g++ \
cpp cpp-4.1 libstdc++5 libstdc++6 libstdc++6-4.1-dev
2. Einbinden der von mod_security benötigten Apache2 Module
a2enmod unique_id
nano /etc/apache2/apache2.conf
Falls noch nicht vorhandenen folgende Zeile einfügen:
LoadFile /usr/lib/libxml2.so
Danach einmal den Webserver neustarten und wenn soweit alles geklappt hat, ist die Hälfte bereits geschafft.
3. Falls nicht schon vorhanden apxs (apxs2) installieren
Dieser Step kommt auf die Version eures Webservers an.
apache2 -V
Zeigt euch die Version an. Sollte dort stehen:
<strong>Server MPM: Prefork</strong>
Dann mittels apt-get die richtige apxs Version installieren und mit Step 4 fortfahren:
apt-get install apache2-prefork-dev
Ansonsten solltet ihr das Debian threaded Modell haben:
apt-get install apache2-threaded-dev
4. Sources von mod_security 2.5 compilieren
cd /usr/src
wget http://www.modsecurity.org/download/modsecurity-apache_2.5.0.tar.gz
tar xfz modsecurity-apache_2.5.0.tar.gz
cd modsecurity-apache_2.5.0/apache2
./configure --with-apxs=/usr/bin/apxs2
make
make test
Sollte es zu Fehlern im unter Step-4 genannten Ablauf kommen, liegt dies vermutlich an fehlenden Libraries. Ihr seid gerne eingeladen mich zu kontaktieren
5. Installation von mod_security
make install
mv ../rules /etc/apache2/modsecurity
##
mkdir /etc/apache2/logs
oder den Pfad zur Logdatei anpassen in der Datei /etc/apache2/modsecurity/modsecurity_crs_10_config.conf
##
Einfügen von mod_security in die Datei /etc/apache2/apache2.conf:
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so
Include /etc/apache2/modsecurity/*.conf
6. Starten des Apachen mit mod_security
/etc/init.d/apache2 restart
Wenn nun der Apache2 startet hat alles geklappt und euer Webserver ist gegen Angriffe über PHP etc. schon ein ganzes Stück weiter geschützt.
Es ist jedem angeraten sowohl die Rules unter /etc/apache2/modsecurity anzuschauen als auch die Apache2 error_log oft zu kontrollieren, da hier alle abgewiesenen Zugriffe protokolliert werden.
Da es zu False Positive kommen wird, ist dies also vor allem in der Anfangszeit sehr wichtig.
Natürlich können die .conf Dateien unter /etc/apache2/modsecurity mittels einem Editor geprüft und editiert werden, sodass Regeln sehr einfach zu deaktivieren sind.
Ebenso das einfügen von Costum Rules z.B. dem Rulekit von Got Root?
Wie man solche Regeln erstellt und z.B. aus anderen Quellen wie Snort einbinden kann, werde ich in einem anderen Blogeintrag dokumentieren.