PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 mit ModSecurity (Debian Lenny)


D@rk-€vil™
30.06.2010, 06:02
ModSecurity – Webapplication Firewall

Features


HTTP Traffic Logging
Realtime Monitoring und Attack Detection
Attack Prevention und Just-in-Time Patching
Negatives Security Model
Bekannte Attacken blocken
Positives Security Model



ModSecurity herunterladen

Für die Installation benötigt!


libapache2-modsecurity2-amd64 oder
libapache2-modsecurity2-i386
modsecurity-common-all


Eventuell musst du die Pfade und die Version an deine Bedürfnisse anpassen.



cd /usr/local/src
mkdir /usr/local/src/mod-security
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/libapache-mod-security_2.5.9-1_amd64.deb



Dann beides installieren

cd /usr/local/src/mod-security/
dpkg -i *.deb


ModSecurity Verzeichnis anlegen

mkdir /etc/apache2/modsecurity2
chmod 600 -R /etc/apache2/modsecurity2


Herunterladen und entpacken der Regeln für ModSecurity

Erst herunterladen:



wget http://www.modsecurity.org/download/modsecurity-core-rules_2.5-1.6.1.tar.gz



und dann entpacken und in das eben erstellte Verzeichnis verschieben:

tar fvx modsecurity-core-rules_2.5-1.6.1.tar.gz
mv *.conf /etc/apache2/modsecurity2/


Dem Apache beibringen wo die Regeln liegen

vi /etc/apache2/mods-available/mod-security.conf

Dorts fügst du folgendes ein:

Include /etc/apache2/modsecurity2/*.conf


Symlink erstellen

Damit werden die Logfiles dann unter /var/log/apache2/modsec_<Regel>.log abgelegt.


ln -s /var/log/apache2 /etc/apache2/logs


Den Apache neu starten

/etc/init.d/apache2 restart


Installation testen

Rufe in deinem Browser auf:


http://beispiel.com/index.php?path=/etc/passwd

Im Logfile /var/log/apache2/modsec_debug.log sollte jetzt stehen

www.beispiel.com 192.168.0.1 - - [09/Oct/2008:13:11:20 +0200]
"GET /index.php?path=/etc/passwd HTTP/1.1" 200 121280 "-" "-" F4jxvNWFZ@0AADs1A58AAAAD "-"
/20081009/20081009-1311/20081009-131120-F4jxvNWFZ@0AADs1A58AAAAD 0 123509
md5:dde55f154673b8f977d2af2277efdf2e

Das wars

Lg D@rk-€vil™

Mitnick
22.05.2011, 18:06
Die Anleitung ist an sich okay. Jedoch würde ich noch einiges beachten!
Wer das teil auf einen Tracker einsetzt bekommt einiges an fehlern geschmissen 400 bis hin zu 501.
Daher empfiehlt es sich erstmal mod:security im debug laufen zu lassen.

Zuerst soll mal nichts blockiert, sondern nur geloggt werden:
vi /etc/apache2/modsecurity2/modsecurity_crs_10_config.conf
Diese Zeile folgendermaßen anpassen:
SecRuleEngine DetectionOnly
So werden alle potenziellen Gefahren und Warnungen zwar geloggt, aber noch nichts geblockt. Man sollte also das Modul erstmal eine Weile so laufen lassen, damit nicht zuviel geblockt wird, was evtl. garnicht erwünscht ist.
Jetzt muss natürlich der Apache neu geladen werden: /etc/init.d/apache2 reload
In der Datei /var/log/apache2/modsec_debug.log kann man nun nachsehen, was alles geblockt werden würde. Hier ein Beispiel:
[31/Jan/2010:12:15:23 +0100] [404-Fehler 404[rid#1125ac1][/test/index.php][1] Access denied with code 501 (phase 2). Pattern match “(?:b(?:.(?:ht(?:access|passwd|group)|www_?acl)|global.asa|httpd.conf|boot.ini)b|/etc/)” at ARGS:text. [file "/etc/apache2/modsecurity2/modsecurity_crs_40_generic_attacks.conf"] [line "114"] [id "950005"] [msg "Remote File Access Attempt"] [data "/etc/"] [severity "CRITICAL"] [tag "WEB_ATTACK/FILE_INJECTION"]
Jede dieser Regeln hat eine ID, in diesem Fall ist das z.B. die “950005″. So ist es möglich, später Ausnahmen für mod_security festzulegen.
Ausnahmen hinzufügen

Mit der oben ausgelesenen ID ist es nun möglich, Ausnahmen für bestimmte Seiten festzulegen. Am einfachsten ist es, ein neues Config-File mit einer Whitelist anzulegen:
vi /etc/apache2/modsecurity2/modsecurity_crs_99_whitelist.conf
<LocationMatch /test/index.php>
SecRuleRemoveById 950005
SecRuleRemoveById 950006
SecRuleRemoveById 950907
</LocationMatch>
Man kann die Ausnahmen alternativ auch in den <VirtualHost…>-Bereich der entsprechenden Apache Konfigurations-Datei eintragen. (/etc/apache2/sites-available/…). Die Syntax ist dann die gleiche wie im obigen Beispiel.
mod_security “scharf” schalten

Um unser Modul nun einzuschalten, und auch potenzielle Angriffe zu blockieren, muss die Konfiguration entsprechend angepasst werden:
vi /etc/apache2/modsecurity2/modsecurity_crs_10_config.conf
Ändern der Einstellung auf:
SecRuleEngine On

Quelle:
ITWelt.org - KnowHow zu Linux, Windows und Mac (http://itwelt.org)

D@rk-€vil™
23.05.2011, 10:30
Würde bitte ein Mod...den Thread von der Kindergarten scheisse beseitigen?

Wehr sehr nett...

best regards

EDIT: THX @ Bluesteel für die säuberung

dark

.:.Uranus.:.
29.07.2011, 17:05
Hallo Nv,
habe mir mal gedacht die apache etwas mehr abzusichern
nur leider kommt hier ein error 404 denke mal das der link nicht geht oder so
gibbet hierzu eine alternative ?

wget http://etc.inittab.org/%7Eagi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb

Lex
29.07.2011, 17:52
Liegt daran das die Datei die du beziehen willst, nicht mehr vorhanden ist, bezw der Pfad sich evtl. geändert hat.
Such die über den Browser den richtigen Pfad und versuchs dann nochmal mit wget :)

Lg Lex