Alles anzeigenGuten 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.
Spoiler anzeigen
So, zuerst benötigen wir folgendes Serverprogramm, welches sich iptables nennt, dieses installieren wir mit:
Spoiler anzeigen Gut, falls wir nun den Verdacht haben, dass wir geddost werden, geben wir in unserem SSH Clientem folgenden Befehl ein.
Spoiler anzeigen 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:
Spoiler anzeigen Zum entsperren einer IP-Adresse geben wir den Befehl
Spoiler anzeigen
Hier geben wir natürlich auch die IP ein
Spoiler anzeigen 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 )
Spoiler anzeigen
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.
Spoiler anzeigen 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!
Spoiler anzeigen Installation:
Spoiler anzeigen Vorrausgesetzt wird natürlich Apache2 !
Spoiler anzeigen So, zuerst müssen wir den mod_evasive installieren, dies tuen wir mit folgendem Befehl.
Spoiler anzeigen Hiernach müssen wir die Konfigurationen von Apache2 neuladen, dies tuen wir mit
Spoiler anzeigen Jetzt müssen wir in der Konfigurationen die Option von mod_evasive einfügen, die Konfiguration finden wir unter
Spoiler anzeigen Wir hängen unten folgendes Zitat an:
CodeDOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10
Spoiler anzeigen 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 ! )
Spoiler anzeigen
Hierbei wird die IP 127.0.0.1 bei Apache2-Angriffen nicht gebannt.
Spoiler anzeigen Log
Wir hinzufügen einfach folgenden Parameter direkt unter dem letztem Argument ( vor ! )
Spoiler anzeigen E-Mail Benachrichtigung
Wir hinzufügen einfach folgenden Parameter direkt unter dem letztem Argument ( vor ! )
Spoiler anzeigen
Nun drücken wir zuerst STRG+S, danach STRG+X!
Spoiler anzeigen Wir müssen hiernach noch einmal die Konfigurationen von Apache2 neuladen, das müssen wir jedoch nun durch
Spoiler anzeigen
ausführen.
Spoiler anzeigen 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
Spoiler anzeigen
Hier geben wir ein:
Spoiler anzeigen
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);}
Spoiler anzeigen
Das ganze speichern wir nun mit STRG+S , danach STRG+X ab.
Nun geben wir der Datei bestimmte Rechte zum Ausführen.
Spoiler anzeigen
Jetzt führen wir das Script aus, das tuen wir mit
Spoiler anzeigen Falls nun dort am Anfang desöfteren ( ca. 20 Mal )
Spoiler anzeigen
steht, danach aber dauerhaft
Spoiler anzeigen
hat alles geklappt!
Super, deine Apache2 Server ist nun für etwas stärkere Angriffe geschützt!
Anleitung 3: (D)DoS-Deflate
Spoiler anzeigen
DoS-Deflate ist ein zusätzlicher, effektiver Schutz gegen (D)DoS Attacken.
Spoiler anzeigen Installation:
Spoiler anzeigen
Wir müssen am Ende das ganze mit der Taste A ( für Accept ) akzeptieren.
Spoiler anzeigen Wir öffnen nun die Konfiguration:
Spoiler anzeigen 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
Spoiler anzeigen 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.
Gut, da ich mich mit der Materie doch schon sehr sehr gut auskenne habe ich einmal eine Frage an dich und ich bitte dich genau nachzudenken was denn die einzig und richtige Lösung ist !
Was machst du wenn dich Jemand mit einem ganzen "Netzwerk" DDossT ? Ich kann dir eine ungefähre Zahl nennen mit einem Traffic Income:
50.000 Angreifer
4GB Traffic die Sekunde Income
Wie umgehst du diesen DDoS Angriff
Ich bin auf deine Antwort gespannt !