Installation von ModSecurity2 auf Debian Etch

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht, wie man ModSecurity (Version 2) für die Verwendung mit Apache2 auf einem Debian Etch System installiert und konfiguriert. ModSecurity ist ein Apache Modul, das Intrusion Detection und Prävention für Web Programme bietet. Es zielt darauf ab, Web Programme von bekannten und unbekannten Attacken abzuschirmen, wie zum Beispiel SQL Injection Attacks, Cross-Site Scripting, Path Traversal Attacks, etc.

Ich möchte an dieser Stelle darauf hinweisen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Varianten, dieses Ziel zu erreichen - dies ist der Weg, den ich gewählt habe. Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

Ich gehe davon aus, dass Apache2 auf Deinem Debian Etch System bereits installiert und voll funktionstüchtig ist.

2 Installation

In Debian Sarge war ModSecurity als .deb Paket in den offiziellen Paketdatenbanken verfügbar, in Debian Etch wurde es leider aus Lizenzgründen entfernt. Erfreulicherweise stellt der Originalbetreuer Pakete für Debian Etch in seiner eigenen Paketdatenbank bereit. Um diese zu installieren, müssen wir seine Paketdatenbank unserer /etc/apt/sources.list hinzufügen:

vi /etc/apt/sources.list


[...]
deb http://etc.inittab.org/~agi/debian/libapache-mod-security2/ etch/ [...]
Danach aktualisieren wir unsere Paketdatenbank wie folgt:

apt-get update

Nun können wir ModSecurity2 mit diesem einfachen Befehl installieren:

apt-get install libapache2-mod-security2

Das war's. Das ModSecurity2 Modul wird standardmäßig freigeschaltet und Apache2 wird automatisch neu gestartet.

3 Konfiguration

Jetzt werden wir ModSecurity2 konfigurieren. Am Einfachsten ist es, wenn wir das ModSecurity2 Quell-Paket von http://www.modsecurity.org/download/index.html runter laden (z.B. http://www.modsecurity.org/download/modsecurity-apache_2.1.1.tar.gz) und es entpacken. Es entählt eine Datei modsecurity.conf-minimal mit einer Basiskonfiguration für ModSecurity2, die ich hier benutzen werde (aber ich habe die Zeilen SecDebugLog und SecAuditLog angepasst, sodass ModSecurity2 in das /var/log/apache2 Verzeichnis loggt, Debians Standard Apache2 Log-Verzeichnis).

Wir öffnen Apaches Haupt-Konfigurationsdatei /etc/apache2/apache2.conf und fügen folgende Konfiguration ein, direkt vor dem Ende, wo die virtuellen Hosts eingefügt werden:

vi /etc/apache2/apache2.conf


[...]
<IfModule mod_security2.c> # Basic configuration options SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess Off # Handling of file uploads # TODO Choose a folder private to Apache. # SecUploadDir /opt/apache-frontend/tmp/ SecUploadKeepFiles Off # Debug log SecDebugLog /var/log/apache2/modsec_debug.log SecDebugLogLevel 0 # Serial audit log SecAuditEngine RelevantOnly SecAuditLogRelevantStatus ^5 SecAuditLogParts ABIFHZ SecAuditLogType Serial SecAuditLog /var/log/apache2/modsec_audit.log # Maximum request body size we will # accept for buffering SecRequestBodyLimit 131072 # Store up to 128 KB in memory SecRequestBodyInMemoryLimit 131072 # Buffer response bodies of up to # 512 KB in length SecResponseBodyLimit 524288 </IfModule> # Include the virtual host configurations: Include /etc/apache2/sites-enabled/
Danach starten wir Apache neu (es sollte ohne Fehlermeldungen neu starten):

/etc/init.d/apache2 restart

Wenn Du keine Fehlermeldung erhältst, wird ModSecurity2 nun mit einer Basiskonfiguration ausgeführt. Diese Basiskonfiguration kannst Du nun ändern/erweitern, sodass sie Deinen Wünschen entspricht. Ein guter Ausgangspunkt ist die ModSecurity2 Documentation. In den ModSecurity2 Quellen gibt es noch mehr erweiterte Rulesets, die wir zuvor runter geladen haben (in der rules Paketdatenbank). Außerdem kannst Du Core Rulesets von http://www.modsecurity.org/download/index.html (z.B. http://www.modsecurity.org/download/modsecurity-core-rules_2.1-1.4.tar.gz) runter laden.

Christian Folini hat folgende Anleitung bereitgestellt: tutorial about Remo, a GUI for creating ModSecurity rulesets. Dies ist eine weitere großartige Variante, Deine eigenen ModSecurity2 Rulesets zu erstellen.

4 Links