Willkommen bei hack2learn

Zufälliger Beitrag

Apple will nur kompatible Anwendungen im App Store
Apple hat angekündigt, dass sie nur noch Kompatible Anwedungen im Appstore haben möchten für das neue iPhone-OS, dies beinhaltet auch die älteren Applikationen die jetzt schon verfügbar sind. Somit müssen die Entwickler ihre Applikation updaten...
(weiterlesen...)


Member Login

Registrieren!




Auf dieser Webseite kannst du dich im Moment nicht öffentlich registrieren. Du benötigst einen Einladungs-Code um dich zu registrieren.

 

Passwort vergessen!

Ein neues Passwort wird dir per E-Mail zugesendet.

Howto Apache2 mit mod-evasive(1.10.1) und mod-security(2.5.7)

von griesgram am Okt.09, 2008, unter Allgemein, Apple, Howto, Linux, Security, Websecurity, Windows

ModSecurity - Webapplication Firewall

Übersicht

Mehr als 70% von allen heutigen Attacken, werden via Application Layer ausgeübt. Organisationen brauchen Hilfe ihre Systeme Abzusichern und vor böswilligen Missbrauch zu schützen. Webapplikation Firewall sind entwickelt worden um einen zusätzlichen Schutz zu gewährleisten, Angriffe aufzuspüren und abzuwehren bevor sie die Webapplikation erreichen.

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

Mod-evasive - DDos Shield

Übersicht

Das Apache Modul mod_evasive soll den Apache gegen DDos-Angriffe schützen. Dies geschieht, indem mod_evasive die IP-Adressen des anfragenden Clients in einer internen Hash-Tabelle ablegt, und zählt, wie oft dasselbe Objekt innerhalb einer definierten Zeitspanne angefordert wird.
Wenn die Anzahl der Aufrufe einen bestimmten Grenzwert erreicht, erhält der Client eine 403 Fehlermeldung.

Funktionsweise

Das Modul basiert im Grunde auf einer Blackliste. Bei jeder Anfrage eines Clients wird diese Liste durchgegangen und wenn die Anfragen die gesetzten Werte innerhalb einer Zeitdauer erreicht haben, gibt der Apache einen HTTP-Status von 403 (Forbidden) aus. Dies passiert nun eine vorher festgelegte Dauer, die sich mit jedem weiteren Aufruf innerhalb der Sperrzeit, automatisch verlängert. Damit werden Bandbreite und Rechnerressourcen gespart. Auch ist es mittels des Moduls möglich einen Eintrag bei einem DoS ins syslog zu schreiben, eine eMail zu versenden oder per Aufruf weiterer Software zeitgleich Gegenmaßnahmen einzuleiten.

So werden auch BruteForce-Attacken aller Art über das HTTP-Protokoll erfolgreich abgewehrt oder zumindest erheblich verzögert.

Die Grenze des Moduls ist allerdings erreicht, wenn ein massiver DoS-Angriff erfolgt und die komplette Bandbreite zum Server oder die Kapazitäten der Hardware in Anspruch nimmt. Hier müssen sich weitere Gegenmaßnahmen anschließen. Mod_evasive alleine bringt in diesem Szenario sehr wenig.

Update: Es ist eine Neue Version von Mod-Security Verfügbar! Bitte liest diesen Post für die neue Version (2.5.9) von ModSecurity.

Vorbereitung

benötigte Packete installieren

Als erstes müssen wir ein paar Tools installieren, sofern sie nicht schon vorhanden sind.

apt-get update apt-get install libaprutil1 libaprutil1-dev libapr1-dev libxml2-dev libapr1 apache2-dev libcurl4-dev libcurl4-openssl-dev liblua5.1-dev

Modsecurity

modsecurity (2.5.7) herunterladen und entpacken

cd /usr/local/src wget http://www.modsecurity.org/download/modsecurity-apache_2.5.7.tar.gz tar xvzf modsecurity-apache_2.5.7.tar.gz

Modsecurity bauen und installieren

Nun wechseln wir in das entpackte Verzeichnis, um genau zu sein, in dessen Unteverzeichnis: cd modsecurity-apache_2.5.7/apache2 Nun die Datei configure ausführbar machen: chmod a+x ./configure Für Apache2 muss zwingend apxs2 benutzt werden und nicht apxs um das Modul zu bauen! Apxs ist für Apache 1.3! ./configure --with-apxs=/usr/bin/apxs2 make make test make install

Modsecurity Modul konfigurieren

cd /etc/apache2/mods-available vim mod_security2.conf

Fügt folgendes ein:

<IfModule mod_security2.c>
Include /etc/apache2/ruleset/*.conf
</IfModule>

Nun müssen wir noch eine Datei erstellen um das Modul zu laden

vim mod_security2.load

Fügt folgende Zeile ein:

LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so

Modsecurity Regeln kopieren

mkdir /etc/apache2/ruleset

cp -a /usr/local/src/modsecurity-apache_2.5.7/rules/* /etc/apache2/ruleset/

Modsecurity konfigurieren

Jetzt müssen wir Modsecurity so einstellen das er am anfang nicht gleich die meisten Webseiten zugriffe blockiert

Dazu öffnet ihr folgende Datei:

vim /etc/apache2/ruleset/modsecurity_crs_10_config.conf

Diese Datei ist sehr gut Dokumentiert! Liest sie aufmerksam durch und entscheidet ob ihr es benötigt. Beachtet auch die Bemerkungen!

SecRuleEngine auf DetectionOnly stellen, ansonsten werden sehr viele false Positives geblockt!

SecRuleEngine DetectionOnly

Server Signatur anpassen

SecServerSignature "Apache/Version unknown (Debian)"

Ruleset Signatur

SecComponentSignature "core ruleset/1.6.1"

File uploads konfiguration

Ich erkläre nicht alle Änderungen! Diese kann man selber in dieser Konfigurationsdatei nachlesen!

SecUploadDir /var/log/apache2/modsecurity/tmp

Logging

SecAuditEngine RelevantOnlySecAuditLogRelevantStatus "^(?:5|4(?!04))"SecAuditLogType ConcurrentSecAuditLogStorageDir /var/log/apache2/modsecurity/modsec_auditSecAuditLog /var/log/apache2/modsecurity/audit.logSecAuditLogParts "ABIDEFGHZ"

Tuning und Debugging

SecDebugLog /var/log/apache2/modsecurity/modsec_debug.logSecDataDir /var/log/apache2/modsecuritySecTmpDir /var/log/apache2/modsecurity/tmp

ModSecurity ist nun mal fürs erste konfiguriert.

Wie oben erwähnt wird nun lediglich geloggt, aber nicht geblockt.
Sollte alles laufen wie angenommen, kann man die SecRuleEngine auf "On" setzen.

Modsecurity Modul laden

a2enmod mod_security2/etc/init.d/apache2 force-reload

Testen

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

Output von Modsecurity überprüfen:

vim /var/log/apache2/msa/audit.log

Mit CTRL+G kann man ans ende der Datei springen.

www.deineWebseite.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

Wie man unschwer erkennen kann, wollte jemand (ich :D ) die Passwd des Server auslesen via URL Injection. ModSecurity erkennt den Angriff und spukt bei SecRuleEngine "On" einen 403 Error aus. Beim DetectionOnly Mode wird lediglich die Attacke geloggt.

Mod Evasive

Mod Evasive herunterladen und installieren

Die Installation ist einfach, entweder via Apt/Aptitude installieren oder am besten baut man das Modul für den Apache gleich selber

via apt installieren

anzeigen

via aptitude installieren

anzeigen

von Hand installieren (Version 1.10.1)

anzeigen

Mod Evasive konfigurieren

cd /etc/apache2/mods-available vim mod_evasive.conf

Fügt folgendes ein:

<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify noc@hack2learn.org
</IfModule>

Nun müssen wir noch eine Datei erstellen um das Modul später laden zu können

vim mod_evasive.load

Fügt folgende Zeile ein:

LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so

Mod Evasive Modul laden

a2enmod mod_evasive/etc/init.d/apache2 force-reload

Das wars, nun solltet der Webserver einigermassen geschützt sein.

ModSecurity ist nur so gut wie man es einstellt  :roll: Es hat zwar sehr viele Regeln, welche auch sehr gut Funktionieren. Dennoch braucht es sehr viel Feintuning. Ansonsten besteht die Gefahr das eure Webapplikationen nicht mehr richtig funktionieren! Bevor ihr "SecRuleEngine" auf "On" stellt, schaut ob ihr nicht selber verschiedene Warnungen auslöst, beim Besuch eurer eigenen geschützten Webseiten!

Eine Realtime Konsole für Modsecurity gibts nun gratis für bis zu 3 Sensoren!

Ich werde anschliessend noch ein Howto schreiben wie man erfolgreich eine Zentrale Modsecurity Konsole installiert und die Logdaten von Modsecurity von den Webservern empfangt und auswertet.

Wie immer bei diesen Anleitungen übernehmen wir keinerlei Haftung!

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Das könnte dich auch interessieren:

:, , , , , , , , , , , , , ,


  • admin
    Hallo Internetagentur

    Wäre mir neu, ich kann es aber nicht mit sicherheit sagen, hast du den Fail2ban so eingerichtet das auch http überwacht wird, weil standardmässig horcht es nur auf SSH (Port 22) wen ich mich recht errinnern mag :)

    Hast du mod_evasive so eingerichtet wie im Howto oder blockst du auch noch mit mod_evasive (DOSSystemCommand “su - someuser -c ‘/sbin/… %s …)? Wen du iptable regeln hinzufügst die schon durch Fail2ban erstellt wurden, kann es durchaus sein das die neu erstellten Regeln von mod-evasive nicht mit fail2ban funktionieren.

    gruss
  • Ich hatte mal mod_evasive vor längerer Zeit installiert und auf einmal funktionierte mein Fail2ban nicht mehr. Kann das sein das die sich nicht vertragen?
  • admin
    Danke für den Hinweis Gero. Habe es gleich korrigiert.
  • Hi, tolle Anleitung hat mir sehr geholften.

    Muss dich aber auf eine Fehler Hinweisen:

    Deines:

    Include /etc/apache2/rulesets/*.conf


    Richtig:


    Include /etc/apache2/ruleset/*.conf


    Fehler ist ein fehlendes "/" und der " rulesets" falsch geschrieben, sollte "ruleset" heissen. ;)

    gruss Gero
blog comments powered by Disqus

Suchst du etwas?

Nutze die Suche unten um etwas auf der Seite zu suchen:

Findest du immer noch nicht nach was du suchst? Schreib einen Kommentar oder kontaktiere uns via Kontaktform, damit wir dir helfen können.


Twitter Remote

Feed Readers

Twitter Followers


Beliebteste Suchbegriffe