Hallo ML, ich glaube ich bin Opfer eines DOS auf einen unserer Webserver geworden. Im error_log vom httpd steht u.a.: "[Sat Apr 23 15:19:02 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting". MaxClients steht auf 150. Der Server hat normalerweise nicht viele Anfragen. netstat -anp zeigt u.a.: tcp 133 0 146.107.x.x:80 146.107.135.80:3134 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3370 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3102 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3351 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3083 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3333 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3170 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3152 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3393 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3247 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3218 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3059 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3312 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3293 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3030 CLOSE_WAIT - tcp 133 0 146.107.x.x:80 146.107.135.80:3269 CLOSE_WAIT - Die IP 146.107.135.80 ist eine interne, auf der ein Monitoringtool (ServerAlive) läuft. Das Tool setzte ich seit Jahren ohne Probleme ein. Kann es sein, daß ein DOS durchgeführt wurde und anschließend alle Anfragen des Monitoringtools nicht mehr bearbeitet wurden ? Das Tool fängt nämlich wenige Minuten nach dem o.g. Eintrag im error_log an zu meckern, daß es den Webserver nicht mehr erreicht. top ist auch seltsam: top - 13:17:45 up 25 days, 23:40, 4 users, load average: 155.00, 155.01, 155.03 Tasks: 587 total, 1 running, 586 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2% us, 0.3% sy, 0.0% ni, 0.0% id, 99.5% wa, 0.0% hi, 0.0% si Mem: 2075564k total, 1802740k used, 272824k free, 130936k buffers Swap: 1028152k total, 0k used, 1028152k free, 914700k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12820 root 17 0 2028 1236 1540 R 1.0 0.1 0:00.23 top 1 root 16 0 588 240 444 S 0.0 0.0 0:22.23 init 2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.22 ksoftirqd/0 ... Ich habe eine sehr hohe load average, und die meisten Prozesse warten auf IO (99,5% wa). Es frißt kein Prozess ungewöhnlich viel CPU. Die LED von der Festplatte flackert kaum, und der Server reagiert auch ganz normal. Es laufen noch 150 httpd-Prozesse (und der root-Prozesses, der Port 80 öffnet). Die Ausgaben von top, ps und netstat habe ich von einer CD, die ich im entsprechenden Server gemountet ist, in einer neuen shell gestartet und die statisch gelinkt sind. Von daher traue ich diesen Ausgaben. Was denkt Ihr ? War das ein DOS ? Was kann ich zukünftig dagegen tun ? Bernd -- Bernd Lentes Systemadministration Institut für Entwicklungsgenetik HelmholtzZentrum münchen bernd.lentes@helmholtz-muenchen.de phone: +49 89 3187 1241 fax: +49 89 3187 3826 http://www.helmholtz-muenchen.de/idg Führung bedeutet, die Anderen groß zu machen und sich selbst klein Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 26.04.2011 13:34, schrieb Lentes, Bernd:
Hallo ML,
[snip]
Die IP 146.107.135.80 ist eine interne,
Hier setzen meine Zweifel an. Ich glaube, hier braucht's mehr Info über Deine IP-Infrastruktur. Die genannte IP ist nämlich keineswegs privat, aber auch nicht aus dem Internet erreichbar. Wo kommen denn die Requests her? Was steht in der access.log? Grüße, Boris -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Boris schrieb:
Die IP 146.107.135.80 ist eine interne,
Hier setzen meine Zweifel an. Ich glaube, hier braucht's mehr Info über Deine IP-Infrastruktur. Die genannte IP ist nämlich keineswegs privat, aber auch nicht aus dem Internet erreichbar. Wo kommen denn die Requests her? Was steht in der access.log?
Hallo, die o.g. IP ist eine interne, keine private, und von außen nicht erreichbar. Das soll auch so sein. Im Moment gibt es auch keine Zugriffe, da ich das Monitoringtool, das auf o.g. IP läuft, für den betroffenen Server deaktiviert habe. Von daher auch keine aktuellen Einträge im access_log. Von außen greift kaum noch jemand zu. Von daher ist das alles nicht kritisch (von wegen Verfügbarkeit), ich will aber schon wissen, was da los ist. Es fällt auf, daß die Einträge im access_log nicht chronologisch sind, z.B.: 146.107.135.80 - - [26/Apr/2011:07:56:32 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:07:56:32 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 Ich glaube, die Einträge werden erst geschrieben, wenn der request abgearbeitet wurde. Oder ? Es laufen, wie gesagt, noch 150 httpd-Prozesse. Was ist, wenn jemand einen DOS mit Syn-Flood macht ? Erzeugt ein tcp SYN-Paket überhaupt einen Eintrag im access_log vom httpd ? Wird dafür schon ein neuer httpd-Prozess gestartet ? Außerdem läuft auf der Kiste kein syslog mehr !?!, und in /var/log/messages wird schon länger nicht mehr geloggt. Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 26.04.2011 17:46, schrieb Lentes, Bernd:
Boris schrieb:
Die IP 146.107.135.80 ist eine interne,
Hier setzen meine Zweifel an. Ich glaube, hier braucht's mehr Info über Deine IP-Infrastruktur. Die genannte IP ist nämlich keineswegs privat, aber auch nicht aus dem Internet erreichbar. Wo kommen denn die Requests her? Was steht in der access.log?
Hallo,
die o.g. IP ist eine interne, keine private, und von außen nicht erreichbar. Das soll auch so sein. Im Moment gibt es auch keine Zugriffe, da ich das Monitoringtool, das auf o.g. IP läuft, für den betroffenen Server deaktiviert habe. Von daher auch keine aktuellen Einträge im access_log. Von außen greift kaum noch jemand zu. Von daher ist das alles nicht kritisch (von wegen Verfügbarkeit), ich will aber schon wissen, was da los ist.
Es fällt auf, daß die Einträge im access_log nicht chronologisch sind, z.B.:
146.107.135.80 - - [26/Apr/2011:07:56:32 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:07:56:32 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456
Ich glaube, die Einträge werden erst geschrieben, wenn der request abgearbeitet wurde. Oder ?
Es laufen, wie gesagt, noch 150 httpd-Prozesse. Was ist, wenn jemand einen DOS mit Syn-Flood macht ? Erzeugt ein tcp SYN-Paket überhaupt einen Eintrag im access_log vom httpd ? Wird dafür schon ein neuer httpd-Prozess gestartet ?
Außerdem läuft auf der Kiste kein syslog mehr !?!, und in /var/log/messages wird schon länger nicht mehr geloggt.
Bernd
Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671
Mal was ganz triviales: Die Festplatte ist nicht voll? mfg Hendrik -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hendrik Woltersdorf schrieb:
Mal was ganz triviales: Die Festplatte ist nicht voll? mfg Hendrik
Nein. # df -h Filesystem Size Used Avail Use% Mounted on /dev/hda2 74G 46G 29G 62% / tmpfs 1014M 16K 1014M 1% /dev/shm /dev/hda1 46M 5.9M 38M 14% /boot /dev/hdb1 150G 65G 85G 44% /local /dev/hdc 600M 600M 0 100% /media/dvd Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671
Hallo, ich habe im access_log auch seltsame Geschichten wie 87.139.206.210 - - [29/Mar/2011:08:14:19 +0200] "GET http://www.aol.com/ HTTP/1.1" 200 1456 46.161.10.50 - - [02/Apr/2011:06:03:57 +0200] "GET http://allrequestsallowed.com/?PHPSESSID=5gh6ncjh00043PVUHWVFYCGGJGV%5B HTTP/1.1" 200 1456 210.219.199.4 - - [15/Apr/2011:01:10:22 +0200] "GET http://www.ya.ru:80/ HTTP/1.0" 200 1456 Die beiden letzt genannten IP's sind aus Rumänien und Korea. Was für einen Sinn machen solche Anfragen ? Der Webserver liefert als Antwort jeweils seine index.html im DocumentRoot, hab ich mit netcat getestet. Geht es darum, IP's zu verschleiern ? Der Webserver wird benutzt, um andere Seiten aufzurufen ? Btw: kann ich irgendwie selbst einen DOS mit Syn-Flood basteln, um mir das mal näher anzuschauen ? Wie ginge das ? Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Wed, Apr 27, 2011 at 02:11:49PM +0200, Lentes, Bernd wrote:
Hallo,
ich habe im access_log auch seltsame Geschichten wie
87.139.206.210 - - [29/Mar/2011:08:14:19 +0200] "GET http://www.aol.com/ HTTP/1.1" 200 1456 46.161.10.50 - - [02/Apr/2011:06:03:57 +0200] "GET http://allrequestsallowed.com/?PHPSESSID=5gh6ncjh00043PVUHWVFYCGGJGV%5B HTTP/1.1" 200 1456 210.219.199.4 - - [15/Apr/2011:01:10:22 +0200] "GET http://www.ya.ru:80/ HTTP/1.0" 200 1456
Die beiden letzt genannten IP's sind aus Rumänien und Korea. Was für einen Sinn machen solche Anfragen ? Der Webserver liefert als Antwort jeweils seine index.html im DocumentRoot, hab ich mit netcat getestet. Geht es darum, IP's zu verschleiern ? Der Webserver wird benutzt, um andere Seiten aufzurufen ?
Btw: kann ich irgendwie selbst einen DOS mit Syn-Flood basteln, um mir das mal näher anzuschauen ? Wie ginge das ?
Das sind proxy requests, die durchzugehen scheinen. Sprich ein Botnet sucht irgendwie ob du ein Open Proxy bist. Solche request sollten eher 40x oder 50x erzeugen, oder? Ciao, Marcus -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Marcus Meissner schrieb:
ich habe im access_log auch seltsame Geschichten wie
87.139.206.210 - - [29/Mar/2011:08:14:19 +0200] "GET http://www.aol.com/ HTTP/1.1" 200 1456 46.161.10.50 - - [02/Apr/2011:06:03:57 +0200] "GET
http://allrequestsallowed.com/?PHPSESSID=5gh6ncjh00043PVUHWVFYCGGJGV%5
B HTTP/1.1" 200 1456 210.219.199.4 - - [15/Apr/2011:01:10:22 +0200] "GET http://www.ya.ru:80/ HTTP/1.0" 200 1456
Die beiden letzt genannten IP's sind aus Rumänien und Korea. Was für einen Sinn machen solche Anfragen ? Der Webserver liefert als Antwort jeweils seine index.html im DocumentRoot, hab ich mit netcat getestet. Geht es darum, IP's zu verschleiern ? Der Webserver wird benutzt, um andere Seiten aufzurufen ?
Btw: kann ich irgendwie selbst einen DOS mit Syn-Flood basteln, um mir das mal näher anzuschauen ? Wie ginge das ?
Das sind proxy requests, die durchzugehen scheinen.
Sprich ein Botnet sucht irgendwie ob du ein Open Proxy bist.
Solche request sollten eher 40x oder 50x erzeugen, oder?
Wie ließe sich das konfigurieren ? Ist ein Apache 1.3.27 (ich weiß, ist alt). Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Es fällt auf, daß die Einträge im access_log nicht chronologisch sind, z.B.:
146.107.135.80 - - [26/Apr/2011:07:56:32 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:07:56:32 > +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [26/Apr/2011:09:03:27 +0200] "GET / HTTP/1.0" 200 1456 146.107.135.80 - - [24/Apr/2011:22:40:58 +0200] "GET / HTTP/1.0" 200 1456
Habe die Ursache rausbekommen. Der Zeitstempel ist die Zeit, in der der Request reinkommt, der Eintrag wird aber erst geschrieben, wenn der Request beendet wurde. Mit %T im LogFormat kann man die Bearbeitungszeit des requests in Sekunden mit loggen. Siehe http://httpd.apache.org/docs/1.3/mod/mod_log_config.html Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (4)
-
Boris
-
Hendrik Woltersdorf
-
Lentes, Bernd
-
Marcus Meissner