Feb 24 2008
HowTo: mod_security 2.5 Debian Etch installieren
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.
Schöne Anleitung, genau was ich suchte!
Ich hätte nur ein paar kleine Anmerkungen, die mir während der Installation auffielen:
1. Man kann auch einfach “a2enmod unique_id” eingeben.
2. Anstatt LoadFile und Include in die apache2.conf einzufügen empfiehlt es sich dem Beispiel des Apache zu folgen und die beiden Zeilen in /etc/apache2/mods-available/modsecurity.load abzulegen und nach /etc/apache2/mods-enabled/modsecurity.load einen symbolischen Link zu legen.
3. Die LoadModule Zeile muss angepasst werden zu /usr/lib/apache2/modules/mod_security2.so , da er sonst in /etc/apache2/modules sucht und dort nichts findet.
Hallo,
gerne doch.
1. Guter Punkt, wurde überarbeitet
2. Geschmackssache
3. Done
Hallo,
ich habe alles nach deinem Beispiel installiert, jedoch bekomme ich ein Fehlermeldung
Forcing reload of web server (apache2)…apache2: Syntax error on line 64 of /etc/apache2/apache2.conf: Cannot load /etc/apache2/modules/mod_security2.so into server: /etc/apache2/modules/mod_security2.so: cannot open shared object file: No such file or directory
ich bin alles nochmal durchgegangen, aber er findet das Verzeichniss nicht?
Dank LG Jochen
Hallo,
dann hat Alexander recht und Debian hat hier still und heimlich etwas verändert.
Die Zeile in der Konfigurationsdatei muss lauten:
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so
Danach sollte alles bei dir laufen.
Hallo,
supper hat geklappt .
Kann ich nun auch meine eigenen Regeln erstellen? Kennst du vielleicht eine gute Doku in deutsch?
LG Jochen
Debian hat als ServerRoot “/etc/apache2″ per default. Daher die Fehlermeldung bei Jochen.
Hallo,
danke für die Anleitung. Ich versuche schon längere Zeit die Modsecurity Console zu installieren - ohne Erfolg. Kann mir jemand hierbei helfen oder einen Tip/Link etc. geben?
Danke und LG Robert
Hi,
bei der Installation der zusätzlichen Debian Pakete wird ein aprsd-Deamon auf dem Server gestartet, der im 2 Sekunden Takt eine Telnet Verbindung zu aprs.tamu.edu aufbauen möchte, ich möchte das aber nicht! Wird das Pakte aprsd wirklich benötigt?
Markus