De laatste tijd is het opgevallen dat mijn server (hoogst waarschijnlijk met kwade bedoelingen) "aangevallen" wordt. Dit uit zich in de site die onbereikbaar is en een énorme hoeveelheid entries bij een netstat -anp gericht op de webserver (op dit moment tijdens weer een van de aanvallen zo'n 17.000). Maar een beperkt aantal van deze requests weergeeft een apache PID in de laatste tabel van netstat en een zeer groot gedeelte hiervan staat op TIME_WAIT. Het aantal Apache processen schiet naar het maximum (mpm_prefork_module::Serverlimit en MaxClients) en zolang het maximum niet bereikt is is de site opzich redelijk bereikbaar. Zodra het aantal processen over dat maximum is duurt het tijden voordat je er weer een requests doorheen krijgt (tenzij ik apache restart, dan werkt het even weer tot het maximum weer bereikt is). Ook heb ik tijdens de aanvallen een tail -f gedaan op de Apache log files, maar er valt mij niets vreemds op.
Ik heb al een aantal dingen geprobeerd om dit te voorkomen, maar ik vroeg mij af of er betere mogelijkheden zijn.
- mod_evasive geinstalleerd en daarbij als het iets detecteert het ip in iptables te gooien
- MaxClients drastisch verhoogd. Dit heeft tijdelijk resultaat totdat het maximum weer bereikt wordt.
- Een scriptje gemaakt wat alles wat in TIME_WAIT staat in iptables met een drop gooit (niet echt fijn aangezien daar ook legitieme dingen in kunnen staan)
- Squid Snort geinstalleerd (maar na een aantal uur documentatie doorlezen is het me nog niet gelukt om het meer te laten doen dan de default debian installatie)
- Hoop kernel opties getweaked wat betreft timeouts en dergelijke van het tcp protocol (ook hier ben ik bang dat het ook nadelig kan zijn voor legitieme requests)
Wordt eventueel nog bijgevuld maar kan even niet op meer komen
Ik heb gelezen dat uiteindelijk bij een DDOS de beperking gaat zitten in de server (te hoge load bijvoorbeeld) of netwerk infra (teveel verkeer); in dit geval is geen van beide van toepassing. De server load komt niet hoger van 0.8 en het netwerk verkeer is ook nog geen 1% op de 100/100 uplink. Vandaar dat ik het zo vreemd vind dat het me niet lukt om degelijk te weren tegen deze aanvallen.
Kan iemand me verder helpen met het voorkomen van dit soort aanvallen en het bereikbaar houden van mijn site?
De omgeving:
- Debian etch
- Apache 2.2.3 (met mod_evasive2, php5.2.0 als module)
- MySQL 5.0.32
- Server: Intel Quadcore (Q6600), 8GB RAM
- In normale omstandigheden zo'n 42 hits / seconde average met een load van 0.32
Ik heb al een aantal dingen geprobeerd om dit te voorkomen, maar ik vroeg mij af of er betere mogelijkheden zijn.
- mod_evasive geinstalleerd en daarbij als het iets detecteert het ip in iptables te gooien
- MaxClients drastisch verhoogd. Dit heeft tijdelijk resultaat totdat het maximum weer bereikt wordt.
- Een scriptje gemaakt wat alles wat in TIME_WAIT staat in iptables met een drop gooit (niet echt fijn aangezien daar ook legitieme dingen in kunnen staan)
- Squid Snort geinstalleerd (maar na een aantal uur documentatie doorlezen is het me nog niet gelukt om het meer te laten doen dan de default debian installatie)
- Hoop kernel opties getweaked wat betreft timeouts en dergelijke van het tcp protocol (ook hier ben ik bang dat het ook nadelig kan zijn voor legitieme requests)
Wordt eventueel nog bijgevuld maar kan even niet op meer komen
Ik heb gelezen dat uiteindelijk bij een DDOS de beperking gaat zitten in de server (te hoge load bijvoorbeeld) of netwerk infra (teveel verkeer); in dit geval is geen van beide van toepassing. De server load komt niet hoger van 0.8 en het netwerk verkeer is ook nog geen 1% op de 100/100 uplink. Vandaar dat ik het zo vreemd vind dat het me niet lukt om degelijk te weren tegen deze aanvallen.
Kan iemand me verder helpen met het voorkomen van dit soort aanvallen en het bereikbaar houden van mijn site?
De omgeving:
- Debian etch
- Apache 2.2.3 (met mod_evasive2, php5.2.0 als module)
- MySQL 5.0.32
- Server: Intel Quadcore (Q6600), 8GB RAM
- In normale omstandigheden zo'n 42 hits / seconde average met een load van 0.32
[ Voor 0% gewijzigd door BarthezZ op 13-06-2009 13:00 . Reden: Squid -> snort :X (het moet vast de tijd zijn) ]