Apache: spammers buiten houden

Pagina: 1
Acties:

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
Ik heb momenteel last van een soort van spam-DDOS-aanval op mijn server. Er worden permanent POST requests uitgevoerd naar het commentaar-formuliertje van een weblog (het weblog is zelf al beschermd tegen deze onzin, dus daar gaat dit topic niet over). Ik heb een tijdje geleden tijdens een zelfde soort aanval al een bepaalde User-Agent (alle boxes die meedoen aan dit gespam hebben diezelfde User-Agent) geblocked in een .htaccess bestandje, zodat al deze requests een 403 Forbidden als respons krijgen. Nu blijven ze echter gewoon doorspammen, en wel met een zodanige snelheid dat dit mijn server vrij serieus vertraagt. Nu is mijn vraag of iemand nog slimme ideeen heeft om hier iets aan te doen.

Ik draai bijvoorbeeld ook een firewall (iptables) op deze bak, maar daarmee kan je vziw niet op HTTP headers selecteren. De IP's waarmee wordt gespamd veranderen steeds, dus een blacklist maken is niet echt een triviale oplossing. Is dit wel de enige manier, of moet ik hier maar gewoon mee leven?

(Weet niet zo goed of dit forum de beste plek is om dit te vragen, anders moet dit topic maar verplaatst worden.)

Rustacean


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Je zou kunnen proberen om de 403's pas terug te geven na een sleep van een paar seconden, via een php scriptje ofzo, misschien dat dat een beetje ontlast.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Ik heb daarvoor een vrij simpele oplossing gevonden. Ik importeer mijn error log in een database en let daarbij vooral op 401 en 403 meldingen. Als een IP binnen 30 minuten 10 meldingen veroorzaakt dan komt dit IP in de 'block' tabel samen met een expire timestamp van over 5 dagen (instelbaar).

In iptables heb ik voor port 80 een speciale 'subtable' gemaakt. Elke 6 uur genereer ik op basis van mijn block table een iptables script welke eerst de 'blocklist' flushed en daarna voor elke IP een rule aanmaakt (inclusief een custom log prefix). Overgens als een IP voor een twee keer wordt geblocked wordt het aantal dagen verdubbeld. Dus 5, 10, 20, 40, etc dagen. Bij meer dan 200 dagen krijgt een IP een permanente ban.

De meeste aanvallen duren slechts enkele dagen (uren) en dit werkt voor de client waarvoor ik het geschreven zeer goed.

Let op, ik block dus de gehele website en niet alleen een formulier. Als iemand meerdere malen een incorrecte login (401) geeft of een access dinied (403) melding krijgt is dat niet normaal.

If it isn't broken, fix it until it is..


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Maar wat bereik je ermee met het blocken van je website, aangezien DDOS voornamelijk optreedt bij de aanvragen van buiten af :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Kuhlie
  • Registratie: December 2002
  • Niet online
Nou, dat je webserver niet belast wordt, slechts je firewall. Dat scheelt nogal wat processortijd :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kuhlie schreef op donderdag 21 juni 2007 @ 17:01:
Nou, dat je webserver niet belast wordt, slechts je firewall. Dat scheelt nogal wat processortijd :)
Maar je wordt er niet bereikbaarderderder op ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

RobIII:
Maar je wordt er niet bereikbaarderderder op ;)
Volgens mij gaat het in ts' probleem niet om netwerkbelasting maar om serverbelasting. In dat laatste geval heeft het natuurlijk wel degelijk zin.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Waarom zou je bereikbaar willen zijn voor iemand welke een DDOS attack uitvoert of ontzettend veel security related foutmeldingen krijgt? Dat soort mensen wil ik helemaal niet op mijn website hebben.

Overigens is de netwerk belasting ook minder. Immers de TCP verbinding kan niet meer worden opgezet. Je houd van de DDOS partijen alleen nog het verkeer voor de TCP 'handshake' over.

Maar het zelfde principe gebruikt wel iedereen voor spam (open-relay) servers. Waarom daar wel de afzender blocken (filteren), maar dit niet op HTTP niveau toepassen.

If it isn't broken, fix it until it is..


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
drm schreef op vrijdag 22 juni 2007 @ 08:43:
[...]
Volgens mij gaat het in ts' probleem niet om netwerkbelasting maar om serverbelasting. In dat laatste geval heeft het natuurlijk wel degelijk zin.
Klopt.

Ik vind de oplossing van drm om een paar seconden te sleep()en wel leuk. De oplossing van Niemand_Anders werkt natuurlijk ook, maar ik wil juist graag iets hebben zonder een zooi code te hoeven schrijven die allemaal blacklists bij gaat houden en interacteert met de iptables firewall. Misschien is dat iets waar ik uiteindelijk niet onderuit kom, maar voor nu zou ik het prettig vinden om een simpeler oplossing te hebben (zeker gezien het feit dat het probleem in feite alleen maar bestaat voor 1 miezerig commentaar-formpje dat volgespamd wordt).

Rustacean


  • Keneo
  • Registratie: Maart 2006
  • Laatst online: 10-10 10:56
Niemand_Anders schreef op donderdag 21 juni 2007 @ 16:36:
Ik heb daarvoor een vrij simpele oplossing gevonden. Ik importeer mijn error log in een database en let daarbij vooral op 401 en 403 meldingen. Als een IP binnen 30 minuten 10 meldingen veroorzaakt dan komt dit IP in de 'block' tabel samen met een expire timestamp van over 5 dagen (instelbaar).
zoiets als fail2ban dus doet?

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

fail2ban lijkt inderdaad enigsinds op mijn script. Zeker een aanrader (zoals ik het snel heb gezien) voor Manuzhai omdat er dan niet geprogrammeerd hoeft te worden.

If it isn't broken, fix it until it is..

Pagina: 1