If you like this Blog - Please klick a Sponsor Ad to say Thanks

Feb 24 2008

HowTo: mod_security 2.5 Debian Etch installieren

Erstellt von Dominik unter Apache - PHP, Debian

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.

8 Responses to “HowTo: mod_security 2.5 Debian Etch installieren”

  1. Alexander Langeron 25 Mai 2008 at 15:16

    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.

  2. Dominikon 25 Mai 2008 at 22:19

    Hallo,

    gerne doch.

    1. Guter Punkt, wurde überarbeitet
    2. Geschmackssache
    3. Done

  3. jochen grafon 27 Mai 2008 at 10:51

    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

  4. Dominikon 27 Mai 2008 at 11:15

    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.

  5. jochen grafon 27 Mai 2008 at 11:46

    Hallo,

    supper hat geklappt .
    Kann ich nun auch meine eigenen Regeln erstellen? Kennst du vielleicht eine gute Doku in deutsch?

    LG Jochen

  6. matthiason 04 Jun 2008 at 13:10

    Debian hat als ServerRoot “/etc/apache2″ per default. Daher die Fehlermeldung bei Jochen.

  7. Roberton 09 Jul 2008 at 21:25

    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

  8. Markuson 16 Jul 2008 at 07:40

    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

Beitrag kommentieren