NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Security (http://www.netvision-technik.de/forum/forumdisplay.php?f=32)
-   -   Apache2 mit ModSecurity (Debian Lenny) (http://www.netvision-technik.de/forum/showthread.php?t=5526)

D@rk-€vil™ 30.06.2010 06:02

Apache2 mit ModSecurity (Debian Lenny)
 
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.


Code:

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

Code:

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

ModSecurity Verzeichnis anlegen

Code:

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

Herunterladen und entpacken der Regeln für ModSecurity

Erst herunterladen:


Code:

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:

Code:

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

Dem Apache beibringen wo die Regeln liegen

Code:

vi /etc/apache2/mods-available/mod-security.conf
Dorts fügst du folgendes ein:

Code:

Include /etc/apache2/modsecurity2/*.conf
Symlink erstellen

Damit werden die Logfiles dann unter
Code:

/var/log/apache2/modsec_<Regel>.log
abgelegt.


Code:

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

Den Apache neu starten

Code:

/etc/init.d/apache2 restart
Installation testen

Rufe in deinem Browser auf:


Code:

http://beispiel.com/index.php?path=/etc/passwd
Im Logfile /var/log/apache2/modsec_debug.log sollte jetzt stehen

Code:

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

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.