Gleichzeitige Verbindungen zum Server verbieten?

Apache, Lighttpd, nginx, Cherokee
Post Reply
evgueni
Posts: 78
Joined: 2003-02-14 13:48
Location: Ilmenau
Contact:
 

Gleichzeitige Verbindungen zum Server verbieten?

Post by evgueni »

Hallo!

Ich habe zur Zeit folgendes Problem: jemand versucht wohl mit bruteforce die userpasswörter auf meiner webseite herauszufinden. Ich habe mich dagegen wie folgt geschützt: ich frage jetzt bei jedem Loginversuch ab, ob von dieser IP schon mal fehlgeschlagene Logins gekommen sind. (max 5 sind zulässig) Also herausfinden wird er sie nicht mehr.
Nur habe ich noch ein anderes Problem: anscheinend ist das Programm, das für die Attacke benuttz wird, so schlau, dass es viele gleichzeitige Verbindungen zum Server aufmacht. So nun ist folgendes Problem: da der Angreifer es anscheinend immernoch nicht gemerkt hat, dass ich einen schutz eingebaut habe, kommen so ca. 2 mal in der Stunde ca. jeweils 2500 Requests die wohl auch über wirklich sehr viele gleichzeitige Anfragen abgearbeitet werden. In dieser Zeit steigt allmälig die Systemlast und teilweise werden manche Anfragen an die Webseite nicht verarbeitet (apache-Maxclients direktive....)

So nun frage ich mich, ob es eine Möglichkeit gibt gleichzeitige Verbindungen an der Server z.B. per IP zu beschränken (sagen wir auf z.B. 10) oder irgendwie gar abzustellen?

Mein System:
Apache 1.3
Linux Suse


EDIT: bin eben selbst drauf gekommen... danke trotzdem für die aufmerksamkeit! https://www.linux-magazin.de/Artikel/au ... adauf.html
test022
Posts: 70
Joined: 2004-12-23 11:59
 

Re: Gleichzeitige Verbindungen zum Server verbieten?

Post by test022 »

ich würde einfach nen code generieren und es als .Jpg anzeigen lassen. dieses code dann beim login vergleichen.

So wird der automatischer Login verhindert, da code immer wieder neu generiert wird. So mit ist Brutforce ausgeschlossen.
evgueni
Posts: 78
Joined: 2003-02-14 13:48
Location: Ilmenau
Contact:
 

Re: Gleichzeitige Verbindungen zum Server verbieten?

Post by evgueni »

na ja... das geht bei mir aufgrund der struktur der webseite (dauerlogin) nicht... könnte man sehr leicht umgehen, also läufts im endeffekt aufs gleiche hinaus -> IP-Vergleichen.
n0fear2
Posts: 5
Joined: 2006-04-23 19:30
 

Re: Gleichzeitige Verbindungen zum Server verbieten?

Post by n0fear2 »

evgueni wrote:Hallo!

Ich habe zur Zeit folgendes Problem: jemand versucht wohl mit bruteforce die userpasswörter auf meiner webseite herauszufinden. Ich habe mich dagegen wie folgt geschützt: ich frage jetzt bei jedem Loginversuch ab, ob von dieser IP schon mal fehlgeschlagene Logins gekommen sind. (max 5 sind zulässig) Also herausfinden wird er sie nicht mehr.
Nur habe ich noch ein anderes Problem: anscheinend ist das Programm, das für die Attacke benuttz wird, so schlau, dass es viele gleichzeitige Verbindungen zum Server aufmacht. So nun ist folgendes Problem: da der Angreifer es anscheinend immernoch nicht gemerkt hat, dass ich einen schutz eingebaut habe, kommen so ca. 2 mal in der Stunde ca. jeweils 2500 Requests die wohl auch über wirklich sehr viele gleichzeitige Anfragen abgearbeitet werden. In dieser Zeit steigt allmälig die Systemlast und teilweise werden manche Anfragen an die Webseite nicht verarbeitet (apache-Maxclients direktive....)

So nun frage ich mich, ob es eine Möglichkeit gibt gleichzeitige Verbindungen an der Server z.B. per IP zu beschränken (sagen wir auf z.B. 10) oder irgendwie gar abzustellen?

Mein System:
Apache 1.3
Linux Suse


EDIT: bin eben selbst drauf gekommen... danke trotzdem für die aufmerksamkeit! https://www.linux-magazin.de/Artikel/au ... adauf.html
Das mod_evasive hab ich auch im Einsatz, aber habe damit 2 Probleme.
1. habe ich im Selbsttest festgestellt (mit test.pl aber auch manuell mit reload der seite) das ich zwar gesperrt werde und dei Seite dann nicht mehr angezeigt wird (error) aber kurz danach wieder angezeigt wird obwohl das Zeitlimit NICHT abgelaufen ist. Kann es sein das das Modul nur mit worker oder so geht? Habe prefork am laufen.

2. wie kann ich die IP direkt in die IpTables eintragen? Ein iptables befehl mit dem %s für die IP sowie DROP scheint nichts zu bringen, entweder dieser wird nicht ausgeführt oder mit falschen rechten? Ich finde dazu dann aber auch in keiner log etwas. Sollte doch mit DOSSystemCommand gehen?
evgueni
Posts: 78
Joined: 2003-02-14 13:48
Location: Ilmenau
Contact:
 

Re: Gleichzeitige Verbindungen zum Server verbieten?

Post by evgueni »

hi!

du hast ja per pn angefragt, aber ich antworte mal hier drin, vielleicht hilft das auch dem einen oder dem anderen auch.

ich habe mod_evasive im einsatz und hatte auch teilweise andere reaktion als erwartet gehabt. die hash table wird anscheinend pro child jeweils einzeln verwaltet. wenn du also mehrere childs hast (was ja beim prefork immer so ist) wird der angriff nciht sofort abgeblockt. allerdings zeichnet sich ja eine DDOS dadurch aus, dass wirklich sehr sehr viele anfragen gesendet werden. editier mal das test.pl und setze die anfrageanzahl auf 1000! dann greif der schon zu.

ich habe bei mir mittlerweile noch einige problematische sachen rausgenommen und damit ist der load zur zeit stabil bei 5.0-7.0.
- webalizer deinstallieren (also ich brauchs nicht....) und bei einer teilweise über 20GB großen access.log rattert das ding ganz schön lange
- eventuell auch komplett die logs beim apache ausschalten. ich habe festgestellt dass apache anscheinend einfach nicht so schnell auf die festplatte schreiben konnte und es dadurch zu einem datenstau gekommen ist (ich hab 300 MIO Zugriffe im Monat)
- ich habe jetzt lighthttp im einsatz. da gibt es auch einige sehr schöne einstellungen zum rumprobieren. und: der ist sauschnell
- in den nächsten wochen will ich noch einen php-cache installieren, dann ist denk ich mal der traumload von 1.00 durchaus denkbar.
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: Gleichzeitige Verbindungen zum Server verbieten?

Post by lord_pinhead »

Wenn du Captcha verwendest ist das mehr als easy zu basteln. Hier gibt es eine Klasse mit der du ganz einfach die Anmeldung mit einem Challenge-Response-Verfahren versiehst.
Post Reply