Guten Tag,
ich möchte euch heute hier eklären, wie man einen leichten DDOS-Angriff ( 1-5 MB/its ) von einem Apache Server abwehrt.
Anleitung für die manuelle Abwehr eines DoS-Angriffes.
So, zuerst benötigen wir folgendes Serverprogramm, welches sich iptables nennt, dieses installieren wir mit:
Gut, falls wir nun den Verdacht haben, dass wir geddost werden, geben wir in unserem SSH Clientem folgenden Befehl ein.
Wir sehen nun die IP's welche viele Verbindungen offen haben, nun kopieren wir uns die IP und fügen sie in diesen Befehl ein:
Zum entsperren einer IP-Adresse geben wir den Befehl
Hier geben wir natürlich auch die IP ein
Am Ende, nachdem ihr die AngreiferIP's gesperrt habt, starten wir am besten den Server oder Apache2 neu.
Es gibt noch mehrere Möglichkeiten, darunter z.B. Mod_Evasive!
Anleitung 2: Mod_Evasive ( Apache only )
Was bringt uns mod_evasive?
mod_evasive speichert die IP-Adressen und die Zeit des Zugriffes auf den Webserver in einer Tabelle, bei jedem erneutem Zugriff wird das erneut gemacht.
Falls nach einiger Zeit(definierbarer Zeitinterval) ein erneuter Zugriff erfolgt, wird der Zugriff blockiert und für einen ( auch definierbaren ) Zeitinterval gesperrt.
Wo liegt das Limit von mod_evasive?
Falls der Angriff die gesamte Brandbeite ( häufig 1GB/its 100Mb/its ) beansprucht, ist die Modifikationen überfordert und kann nichtmehr hinterherhalten, hier empfielt es sich, den Server offline zu legen, um den Traffic nicht zu beeinflussen!
Falls der Angriff die gesamte Brandbeite ( häufig 1GB/its 100Mb/its ) beansprucht, ist die Modifikationen überfordert und kann nichtmehr hinterherhalten, hier empfielt es sich, den Server offline zu legen, um den Traffic nicht zu beeinflussen!
Installation:
Vorrausgesetzt wird natürlich Apache2 !
So, zuerst müssen wir den mod_evasive installieren, dies tuen wir mit folgendem Befehl.
Hiernach müssen wir die Konfigurationen von Apache2 neuladen, dies tuen wir mit
Jetzt müssen wir in der Konfigurationen die Option von mod_evasive einfügen, die Konfiguration finden wir unter
Wir hängen unten folgendes Zitat an:
Code
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10</IfModule>
So, nun würde das ganze theoretisch funktionieren, jedoch können wir zusätzlich folgende Optionen hinzufügen,
Whitelist
Wir hinzufügen einfach folgenden Parameter direkt unter dem letztem Argument ( vor </IfModule>! )
Whitelist
Wir hinzufügen einfach folgenden Parameter direkt unter dem letztem Argument ( vor </IfModule>! )
Hierbei wird die IP 127.0.0.1 bei Apache2-Angriffen nicht gebannt.
Log
Wir hinzufügen einfach folgenden Parameter direkt unter dem letztem Argument ( vor </IfModule>! )
Wir hinzufügen einfach folgenden Parameter direkt unter dem letztem Argument ( vor </IfModule>! )
E-Mail Benachrichtigung
Wir hinzufügen einfach folgenden Parameter direkt unter dem letztem Argument ( vor </IfModule>! )
Wir hinzufügen einfach folgenden Parameter direkt unter dem letztem Argument ( vor </IfModule>! )
Nun drücken wir zuerst STRG+S, danach STRG+X!
Wir müssen hiernach noch einmal die Konfigurationen von Apache2 neuladen, das müssen wir jedoch nun durch
ausführen.
Kann ich sichergehen, dass mod_evasive funktioniert?
Du kannst ein Testscript installieren, welches einen Angriff auf deinem Server simuliert, beachte, dass du am besten die DOSWhitelist 127.0.0.1 eingetragen hast!
Wir gehen in das Verzeichnis
Du kannst ein Testscript installieren, welches einen Angriff auf deinem Server simuliert, beachte, dass du am besten die DOSWhitelist 127.0.0.1 eingetragen hast!
Wir gehen in das Verzeichnis
Hier geben wir ein:
Wir fügen dort mit einem Rechtsklick folgendes Script ein:
Perl
#!/usr/bin/perl# test.pl: small script to test mod_dosevasive's effectivenessuse IO::Socket;use strict;for(0..100) { my($response); my($SOCKET) = new IO::Socket::INET( Proto => "tcp", PeerAddr=> "127.0.0.1:80"); if (! defined $SOCKET) { die $!; } print $SOCKET "GET /?$_ HTTP/1.0\n\n"; $response = <$SOCKET>; print $response; close($SOCKET);}
Das ganze speichern wir nun mit STRG+S , danach STRG+X ab.
Nun geben wir der Datei bestimmte Rechte zum Ausführen.
Jetzt führen wir das Script aus, das tuen wir mit
Falls nun dort am Anfang desöfteren ( ca. 20 Mal )
steht, danach aber dauerhaft
hat alles geklappt!
Super, deine Apache2 Server ist nun für etwas stärkere Angriffe geschützt!
Anleitung 3: (D)DoS-Deflate
DoS-Deflate ist ein zusätzlicher, effektiver Schutz gegen (D)DoS Attacken.
Installation:
Wir müssen am Ende das ganze mit der Taste A ( für Accept ) akzeptieren.
Wir öffnen nun die Konfiguration:
Das einzige was wir hier Konfigurieren sollten, ist E-MAIL TO, dort geben wir hinterher, anstatt root die E-Mail an.
Das speichern wir mit STRG+S, dann STRG+X ab.
Das ganze starten wir neu mit
Das speichern wir mit STRG+S, dann STRG+X ab.
Das ganze starten wir neu mit
So, nun bekommen wir bei jedem Angriff ne Mail, der Angreifer wird für 600 Sekunden geblockt und alle sind zufrieden
Ich hoffe, es hat euch geholfen, wie gesagt, das nutzt nur gegen kleine Angriffe, große mit einem Botnetzwerk lassen sich dadurch nicht abwehren.