[Bruteforce Abwehr] IP serverseitig sperren
Mario
- php
0 Flo0 Mario
0 Sven Rautenberg
Hallo,
ich bin gerade dabei, einen Schutz vor Bruteforce zu programmieren. Mittlerweile bin ich soweit, daß ich das Skript fertig habe. Ich würde aber gerne auch den Fall abfangen, bei dem massenhaft Anfragen kommen und den Server lahmlegen. Daß das Paßwort rausgefiltert wird, habe ich mittlerweile unterbunden, daß der Server dann trotzdem lahmliegt, stinkt mir noch etwas. Deshalb meine Idee, die IP ab einer bestimmten Zugriffszahl zu speichern, abzufragen und dann zu sperren. Meine Frage ist nun, wie ich eine IP sperre, d.h. daß der Server auf Anfragen dieser für eine bestimmte Zeit einfach nicht mehr ausführt, dh, nicht mehr lahmgelegt werden kann und normal weiterarbeitet. Kann mir da jemand helfen oder hat vielleicht jemand einen besseren Vorschlag?
Gruß, Mario.
...warum ein programm schreiben ?
webserver unter Linux? - dann konfigurier mal ipchains ordentlich! Die sorgen für Ruhe bei Massenzugriffen.
Gruß,
Flo
Ist ein Unix Server. Muss ich das sleber machen oder macht das mein ISP? Und kannste mir vielleicht sagen, wo es dazu ein gutes tut gibt? Danke schonmal.
...warum ein programm schreiben ?
webserver unter Linux? - dann konfigurier mal ipchains ordentlich! Die sorgen für Ruhe bei Massenzugriffen.
Gruß,
Flo
Moin!
ich bin gerade dabei, einen Schutz vor Bruteforce zu programmieren.
sleep(2);
Ein sehr guter Schutz gegen Brute Force Attacken, die auf diese Weise Paßwörter rausfinden wollen. Äußerst einfach zu programmieren.
Mittlerweile bin ich soweit, daß ich das Skript fertig habe. Ich würde aber gerne auch den Fall abfangen, bei dem massenhaft Anfragen kommen und den Server lahmlegen.
Du willst Denial of Service abfangen? Unmöglich!
Der Witz bei Denial of Service ist ja gerade, dass dein Server mit sinnlosen Daten so bombardiert wird, dass nichts mehr geht.
Ok, deine Passwortabfrage mag vielleicht nicht mehr bombardiert werden können, weil du nur eine gewisse Anzahl an Authentifizierungsversuchen zuläßt. Aber bringt es das wirklich? Ein Nachgucken in der Userdatenbank, ob die angegebenen Daten zulässig sind, kostet eine gewisse Menge an Rechenzeit. Wenn dein Mechanismus, der zuerst die Anzahl der Anfragen von der jeweiligen IP mitzählt, mehr Performance verbraucht, bist du _noch anfälliger_ gegen DoS-Angriffe geworden! Aber im Prinzip willst du ein Rennen gewinnen, was nicht zu gewinnen ist. Denn irgendwelche Grenzen hat dein Server immer. Wenn die Annahme der Verbindung schnell geprüft werden kann, werden eben soviele Anfragen gesendet, dass keinerlei andere Anfragen mehr durchkommen. Und wenn noch zwischen verschiedenen Anfragen unterschieden werden kann, wird eben soviel Traffic gesendet, dass die Leitung komplett überlastet ist - dann bist du ohnehin machtlos!
Daß das Paßwort rausgefiltert wird, habe ich mittlerweile unterbunden, daß der Server dann trotzdem lahmliegt, stinkt mir noch etwas. Deshalb meine Idee, die IP ab einer bestimmten Zugriffszahl zu speichern, abzufragen und dann zu sperren. Meine Frage ist nun, wie ich eine IP sperre, d.h. daß der Server auf Anfragen dieser für eine bestimmte Zeit einfach nicht mehr ausführt, dh, nicht mehr lahmgelegt werden kann und normal weiterarbeitet. Kann mir da jemand helfen oder hat vielleicht jemand einen besseren Vorschlag?
Du müßtest irgendetwas in der Art des "PortSentry" haben: Ein System, welches unliebsame IPs einfach auf eine schwarze Liste setzt. Allerdings: Wenn ein Angreifer nach und nach alle IPs seins Providers bei dir auf die schwarze Liste gesetzt hat, kommt kein regulärer Benutzer dieses Providers mehr auf deine Seite.
Gib es auf: Wenn du einen öffentlichen Server zur Verfügung stellst, mußt du in Kauf nehmen, dass er von allen Seiten unter Beschuß genommen werden kann. Wenn du von vorherein oder aufgrund von Mißverhalten gewisse IP-Adressen ausschließt, trifft das mit Sicherheit auch unschuldige reguläre Besucher. Ob du dieses Risiko eingehen willst, mußt du selber wissen.
- Sven Rautenberg