ich hab hier ein Phänomen, das ich nicht richtig einzuschätzen weiß.
Ich habe einen Client mit der IP 193.239.246.1 (gw.clients.softkit.ro) der sich immer wieder ein mit SYN geflaggtes Paket sendet um sich auf den Webserver Port 80 zu verbinden. Dort bleibt der 3-Way Handshake dann allerdings stehen. (netstat -pan zeigt SYN_RECV.)
Beende ich den Apachen und starte ihn wieder neu, ist er kurz darauf wieder da. Ein paar Minuten später (hier ~4) meldet mir mein Apache im error.log folgendes:
- Der Client verschwindet wieder, wenn er vom Timeout erschlagen wird, connected sich aber kurz danach erneut.[Fri Jan 19 20:28:53 2007] [notice] caught SIGTERM, shutting down
[Fri Jan 19 20:41:20 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec2)
[Fri Jan 19 20:41:21 2007] [notice] Apache/2 configured -- resuming normal operations
[Fri Jan 19 20:45:09 2007] [error] server reached MaxClients setting, consider raising the MaxClients setting
Nun ist es aber immer nur dieser eine Client, der sich verbindet. Das soll schon ein DDoS sein?? (Habe das mal auf einem Server gesehen, wo eine große deutsche Fun & Clip-Seite draufliegt, das waren hunderte bis tausende Clients/Verbindungen gleichzeitig.)
Die Last geht nicht hoch und erreichbar ist der Webserver auch..
Ich setzte Apache 2.0.54 mit MPM Prefork ein.
Prefork ist wie folgt konfiguriert:
Auf dem Server liegt nur ein bisschen HTML (Webalizer, Munin) und ein Dokuwiki. Alles hinter .htaccess, also nicht für den Rest der Welt zu erreichen.<IfModule prefork.c>
StartServers 3
MinSpareServers 5
MaxSpareServers 2
MaxClients 5
MaxRequestsPerChild 0
</IfModule>
Ich habe dann einfach mal auf dem Server mit tethereal den Traffic mitgeschnitten. (ethereal -i any -w /root/softkit.ro-dump.cap) und nach
Code: Select all
ip.src == 193.239.246.1 or ip.dst == 193.239.246.1Ergebniss:
In der ganzen Zeit geht vom Client nur ein einziges Paket an mich (den Webserver auf Port 80). Eben das SYN-Paket (Flags: SYN=1,ACK=0) vom Client. Dann sendet mein Server 5-6 SYN,ACKs (SYN=1,ACK=1) und das wars...
Ich kann mir dieses Verhalten irgendwie nicht erklären.. Kann mir jemand verraten, was sich dahinter verbirgt?
Den Wireshark-Dump kann ich bei Bedarf via https freigeben.
MfG Christian
EDIT: Ich meine.. Ich kann den Client einfach in der Firewall bei meinem Provider abfangen.. Aber das wäre ja zu langweilig :)
