NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Security (http://www.netvision-technik.de/forum/forumdisplay.php?f=32)
-   -   [HOW2] mod_evasive konfigurieren (http://www.netvision-technik.de/forum/showthread.php?t=5515)

SP4C3 26.06.2010 13:49

[HOW2] mod_evasive konfigurieren
 
Hi,
oft ist es einfach einen kleinen Webserver außer Betrieb zu setzen. Ein aufwendiges Script, oft genug aufgerufen lässt den Server in die Knie gehen. Der Denial of Service (DoS) ist geschafft. Unter anderem um dem Vorzubeugen, gibt es für den Apache Webserver mod_evasive. Die Konfiguration ist einfach aber effizient.
Mod Evasive führt eine HOstTabelle, und sobald eine gewisse Anfrageschwelle pro Host überschritten wird, bekommt dieser ein 403 access denied. Zusätzlich kann der Admin per Mail benachrichtigt werden und ein Shell Befehl ausgeführt werden.
Unter Debian lenny installiert man das Modul mit :
Code:

apt-get install libapache2-mod-evasive
Danach gehts an die Konfiguration.
Erst das Modul aktivieren.
Code:

a2enmod mod-evasive
Dann die Apache2 Konfiguration anpassen. Unter Debian in der /etc/apache2/apache2.conf folgende Zeile anhängen:

Code:

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097 # Größe der HostHashTabelle, Je größer desto schneller, je kleiner desto weniger Ram Verbrauch
    DOSPageCount        10 # Request pro Intervall auf eine Seite von einem Host
    DOSSiteCount        50 # Requests pro Intervall auf einer Domain von einem Host
    DOSPageInterval    1 # o.g. Intervall für die Requests pro Seite in s
    DOSSiteInterval    1 # o.g. Intervall pro Domain
    DOSBlockingPeriod  10 # Dauer der Blokade in s
    DOSWhitelist 127.0.0.1 # Whitelist
    DOSEmailNotify "adminEmailAddresse" # BenachrichtigungsEmailaddresse
    DOSSystemCommand    "sudo /sbin/iptables -A INPUT -s %s -j DROP" # Befehl der bei erkanntem DOS versuch ausgeführt werden soll
</IfModule>

Die Kommentare (alles ab dem # in einer Zeile), dienen zur erläuterung hier. Sie müssen in der Apacheconfig entfernt werden!
Der Befehl unter DOSSystemCommand sorgt dafür, dass alle Pakete von der AngreiferIP gedropt werden. Somit wird dem Angreifer suggeriert, der Server sei nicht mehr erreichbar(Timeout).
Edit:
Sollen automatische Firewallregeln angelegt werden (via DOSSystemCommand wie hier) ist das Paket 'sudo'(kann bei anderen Distributionen als Debian anders heißen) nötig.
Damit www-data diese Firewallregel einrichten darf, muss sudo installiert sein und in der /etc/sudoers folgende Zeile hinzu gefügt werden.

Code:

www-data ALL=(ALL) NOPASSWD: /sbin/iptables -A INPUT -s [0-9.]* -j DROP
Ein Neustart des alten Indianers aktiviert den ganze Spass.

ACHTUNG::: SPERRT EUCH NICHT SELBST AUS BEIM TESTEN. SOLLTET IHR VON EUREM "HOMEPC" EINEN TEST DER CONFIG DURCHFÜHREN, DENKT DARAN, DASS ALLE PAKETE VON EUREM PC DANN GEDROPT WERDEN, AUCH SSH PAKETE:::

Gruß
SP4C3

gotthummer 26.06.2010 13:59

Super erklärt so sollte es nun wirklich jeder installt bekommen

DirtyPlaya 26.06.2010 21:27

ich hab fail2ban kommt ziemlich aufs gleiche raus

Cerberus 27.06.2010 09:43

Zitat:

Was ist Fail2Ban?

Fail2Ban durchsucht Logdateien wie /var/log/pwdfail oder /var/log/apache/error_log und blockt IP-Adressen, die zu viele fehlgeschlagene Loginversuche haben. Es aktualisiert Firewallregeln, um diese IP-Adressen zu sperren. Fail2Ban kann mehrere Logfiles lesen - beispielsweise die von sshd oder apache. Die IP-Adressen werden nach einer vorher festgelegten Zeitspanne wieder aktiviert.
wohl kaum ....
das hilft da wohl eher nicht ...

zumal fail2ban extern ist und mod-evasive auf Apache-interne Funktionen aufsetzt ...

SP4C3 27.06.2010 12:31

Genau Cerb.
mod_evasive reagiert auf unmenschlich viele Seitenaufrufe von einer IP.

fail2ban auf fehlgeschlagene Logins.

Thunder™ 27.06.2010 12:35

und beides schützt nicht vor massiven Dos Attacken,
wenn einer dos loslässt ok schafft der mod_evasive noch..
aber wenn mehere dran sind haste auch damit keine chance;)

SP4C3 27.06.2010 13:43

Ich hab auch nicht behauptet, dass du damit nen massiven DDoS abwehren kannst.
Spätestens, wenn die Bandbreite der Angreifer größer als deine ist hast du eh keine Chance, außer du schaffst es die IPs bevor sie in dein Netz geroutet werden ins Nirvana zu routen...

rodi 27.06.2010 14:26

Bei mir kommt beim apache restart immer folgende Meldung:

Code:

Restarting web server: apache2Syntax error on line 290 of /etc/apache2/apache2.conf:
DOSHashTableSize takes one argument, Set size of hash table
 failed!


SP4C3 27.06.2010 17:57

Dann schau doch mal in Zeile 290 deiner ApacheConfig, oder poste die hier...

rodi 27.06.2010 23:02

Dort steht genau das drin, was oben im Thread als erforderlich angegeben ist!

Code:

DOSHashTableSize    3097 # Größe der HostHashTabelle, Je größer desto schneller, je kleiner desto weniger Ram Verbrauch
Ich habe auch die Größe schon geändert, jedoch immer die selbe Meldung.

Cerberus 27.06.2010 23:45

poste mal den Block, den du rein gesetzt hast ...
scheint wohl ein Fehler drin zu sein

SP4C3 28.06.2010 00:51

Hab gerade versucht den Fehler nach zu vollziehen und dabei bemerkt, die Kommentare sind zu entfernen, dann gehts.

Also alles ab dem # muss entfernt werden, dann funzts wies soll...

phenom 29.06.2010 12:00

Also ich bekomm immer die meldung,das das paket nicht gefunden wurde

Couldn't find package libapache2-mod-evasive

Habe ein Debian Lenny 5 auf 64Bit

D@rk-€vil™ 29.06.2010 12:03

phenom dann schau ma hiervorbei

Klick mich

SP4C3 29.06.2010 22:42

Wollt gerade schon rebbellieren
In den Standart Debian Repos ists drin.

Kann sein, dass dein Provider andere Repos einträgt, die es nicht enthalten.

phenom 30.06.2010 05:16

Habs mittlerweile Installed.Aber mal ne andere Frage.Wo bekomm ich das hier her?Also soweit ich weis,gibts das glaub ich garnich für Lenny.

apt-get install libapache2-mod-security

Habs für Debian Etch gefunden,aber wiederum sagt mit Putty,das das Paket nich gefunden wurde.

Kennt jemand ne Quelle,wo mans für Lenny amd64Bit herbekommt?

D@rk-€vil™ 30.06.2010 05:47

schaust du hier

rodi 02.07.2010 22:56

Ohne die # und die nachfolgenden Kommentare funktioniert es nun auch.

Code:

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        10
    DOSSiteCount        50
    DOSPageInterval    1
    DOSSiteInterval    1
    DOSBlockingPeriod  10
    DOSWhitelist        127.0.0.1
    DOSEmailNotify      "adminEmailAddresse"
    DOSSystemCommand    "sudo /sbin/iptables -A INPUT -s %s -j DROP"
</IfModule>


SeeYou 13.11.2010 18:42

alles kann schön aber das habe ich nicht..was muss ich da nach installieren?

/etc/sudoers

SP4C3 13.11.2010 22:22

das Paket sudo

unter Debian also
Code:

apt-get install sudo
Wer den Startpost editieren und das dazuschreiben.

Timil 30.01.2011 12:13

ein leerzeichen zwischen size und der tablegroesse und falls das nichts hilft, #kommentar entfernen .

Sponge 23.02.2011 17:59

Hat einer ne Idee warum evtl. der Mailversand nicht gehen könnte?
Bzw. hat das mal wer getestet?

btw Habe Postfix installiert.

Thunder™ 23.02.2011 18:03

schau dir mal die config an von postfix..hat doch nichts mit mod_evasive zu tun..

Sponge 23.02.2011 18:13

Naja schon weil Postfix an sich funktioniert ja und verschickt auch seine Mails wie es soll ... nur halt nix von mod_evasive ...daher dachte ich liegts wohl daran? :-/ Nach was genau soll ich denn in der postfix conf suchen?

Thunder™ 23.02.2011 18:34

schau mal hier

http://www.huschi.net/14_182_de-apac...-abfangen.html

evt die der pfad vom mailer nicht korrekt, ich kann es dir aber nicht genau sagen...
evt hilft es dir....ich hab die mail funktion nicht drin weil ich es überflüssig finde..

Flori12345 27.02.2012 21:21

hi hab das mal insterliert beim freund aufen server weil er sagte die spielen bei ihn rum mit das prog Goodbye aber irgentwie wird damit nix geblockt es wird auch nix inne iptables geschrieben hat da einer vieleicht ne ide wenn ich die index ganz offt öffne kommt
Forbidden

You don't have permission to access /index.php on this server.


aber wie gesagt es wird nix inne iptables eingetragen



währe nett wenn einer helfen könnte


LG Flori

SP4C3 27.02.2012 21:50

Das Forbidden ist sinn der Sache.

mod_evasive wird Standardmäßig erstmal den Zugriff auf die Seite verweigern wenn das Limit überschritten wird.

Das mit iptables musst du schauen
1. netfilter module geladen
2. iptables binary überhaupt da
3. sudo richtig konfiguriert..

etc. pp.
Logfiles sind dein Freund

Flori12345 12.03.2012 10:14

haste mal ein tip wie ich das überprüfen kann

SP4C3 12.03.2012 19:12

zu ersterem:
in lsmod sollte ne ganze menge auftauchen
zu 2.
der befehl iptables ist ausführbar.
3.
sudo funktioniert??

Ansonsten probier doch mal eine Paketfilterregel manuell zu setzen.
Somit kann man den Fehler eingrenzen...

Flori12345 13.03.2012 11:17

also iptables is ausfürbar
bei
sudo iptables -A INPUT -s 31.xx.xx.xx -j DROP ///geht ohne Probleme

iptables -A INPUT -s 31.xx.xx.xx -j DROP /// geht auch ohne Probleme

root@ks390xxx:~# iptables -L INPUT -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 31.xx.xx.xx 0.0.0.0/0

also das geht alles


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.

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