Apache läuft Amok, Angriff ?

drbacke

Registered User
Hallo,

zum 3ten mal läuft unser Apache total amok, hier mal einige Daten während des Absturzes :

Code:
top - 12:09:12 up 1 day, 3:27, 2 users, load average: 33.17, 15.73, 6.14
Tasks: 125 total, 20 running, 105 sleeping, 0 stopped, 0 zombie
Cpu(s): 93.8% us, 5.6% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.7% si
Mem: 1036512k total, 970816k used, 65696k free, 1228k buffers
Swap: 2096472k total, 1213080k used, 883392k free, 38416k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20773 daemon 25 0 143m 45m 46m R 7.0 4.5 0:03.72 httpd
20796 daemon 25 0 136m 42m 46m R 7.0 4.2 0:03.16 httpd
20808 daemon 25 0 113m 48m 46m R 7.0 4.8 0:02.56 httpd
20834 daemon 25 0 99752 45m 46m R 7.0 4.5 0:02.03 httpd
20767 daemon 25 0 144m 48m 46m R 6.7 4.8 0:03.56 httpd
20786 daemon 25 0 193m 49m 46m R 6.7 4.9 0:05.00 httpd
20793 daemon 25 0 125m 46m 46m R 6.7 4.6 0:02.90 httpd
20813 daemon 25 0 106m 45m 46m R 6.7 4.5 0:02.13 httpd
20809 daemon 25 0 100m 44m 46m R 6.3 4.4 0:02.12 httpd
20777 daemon 25 0 228m 52m 46m R 4.7 5.2 0:06.12 httpd
20768 daemon 25 0 238m 42m 46m R 3.7 4.2 0:06.42 httpd
20779 daemon 25 0 400m 54m 46m R 3.7 5.4 0:11.72 httpd
20785 daemon 25 0 112m 48m 46m R 3.7 4.7 0:02.57 httpd
20784 daemon 25 0 218m 44m 46m R 3.3 4.4 0:06.05 httpd
20804 daemon 25 0 120m 47m 46m R 3.3 4.7 0:02.64 httpd
20805 daemon 25 0 116m 44m 46m R 3.3 4.4 0:02.54 httpd
20819 daemon 25 0 106m 43m 46m R 3.3 4.3 0:02.14 httpd

Nachdem ich killall httpd und Apache dann neugestartet habe :

Code:
top - 12:09:46 up 1 day, 3:28, 2 users, load average: 25.02, 15.64, 6.43
Tasks: 37 total, 2 running, 35 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 1036512k total, 100380k used, 936132k free, 1312k buffers
Swap: 2096472k total, 69136k used, 2027336k free, 35960k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 16 0 1504 76 1352 S 0.0 0.0 0:02.01 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root 5 -10 0 0 0 S 0.0 0.0 0:02.69 events/0
4 root 9 -10 0 0 0 S 0.0 0.0 0:00.00 khelper
5 root 12 -10 0 0 0 S 0.0 0.0 0:00.00 kacpid
37 root 5 -10 0 0 0 S 0.0 0.0 0:00.14 kblockd/0
50 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 aio/0
49 root 15 0 0 0 0 S 0.0 0.0 0:18.85 kswapd0
186 root 25 0 0 0 0 S 0.0 0.0 0:00.00 kseriod
212 root 6 -10 0 0 0 S 0.0 0.0 0:00.00 ata/0
213 root 16 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0
214 root 25 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1
215 root 25 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2
216 root 25 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_3
260 root 15 0 0 0 0 S 0.0 0.0 0:02.21 kjournald
489 root 16 0 1524 0 1360 S 0.0 0.0 0:00.00 dhcpcd-bin
554 root 24 0 2504 0 2380 S 0.0 0.0 0:00.00 mysqld_safe


Hier der httpd_log vor dem Absturz :

Code:
::1 - - [04/Jul/2006:12:06:34 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:35 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:36 +0200] "GET /" 400 460 "-" "-"
80.136.103.250 - - [04/Jul/2006:12:06:35 +0200] "GET /irc_bot.php?action=10last&pw=sdNoid9234 HTTP/1.1" 200 862 "-" "-"
::1 - - [04/Jul/2006:12:06:37 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:38 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:39 +0200] "GET /" 400 460 "-" "-"
85.214.50.8 - - [04/Jul/2006:12:06:39 +0200] "GET /rdf.php HTTP/1.0" 200 13400 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6"
::1 - - [04/Jul/2006:12:06:40 +0200] "GET /" 400 460 "-" "-"
84.146.137.21 - - [04/Jul/2006:12:06:40 +0200] "GET /rdf.php?typ=kino HTTP/1.0" 200 13557 "http://85.214.38.181/rdf.php?typ=kino" "-"
::1 - - [04/Jul/2006:12:06:42 +0200] "GET /" 400 460 "-" "-"
84.146.171.74 - - [04/Jul/2006:12:06:39 +0200] "GET /index.php?action=release&typ=xvid&from=&to=&rlsname=&section=&rlsgrp=&limit=50&PHPSESSID=30c491053829254f0a978cd97a0a0d01 HTTP/1.1" 200 4473 "http://85.214.38.181/index.php?action=release&typ=xvid&from=&to=&rlsname=&section=&rlsgrp=&limit=25&PHPSESSID=30c491053829254f0a978cd97a0a0d01" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser; Avant Browser; .NET CLR 1.0.3705)"
::1 - - [04/Jul/2006:12:06:43 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:44 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:45 +0200] "GET /" 400 460 "-" "-"
213.239.216.169 - - [04/Jul/2006:12:06:45 +0200] "GET /gns.xml HTTP/1.0" 200 13400 "-" "Opera/8.52 (X11; Linux x86_64; U; en)"
211.75.91.2 - - [04/Jul/2006:12:06:52 +0200] "GET /tmp/15882 HTTP/1.0" 304 - "-" "Mozilla/3.01 (compatible;)"
85.177.183.66 - - [04/Jul/2006:12:06:34 +0200] "GET /forum/showthread.php?goto=newpost&t=13141 HTTP/1.1" 301 - "http://85.214.38.181/forum/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
80.135.170.59 - - [04/Jul/2006:12:06:54 +0200] "GET /img/gns_button.gif HTTP/1.0" 200 24674 "http://www.heaven-web.de/b0a3d/wiw.php?sortby=lastactivity&order=DESC" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
213.182.126.117 - - [04/Jul/2006:12:06:52 +0200] "GET /index.php HTTP/1.1" 200 5834 "http://85.214.38.181/index.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
84.167.71.99 - - [04/Jul/2006:12:06:49 +0200] "GET /index.php?action=release&typ=all&PHPSESSID=543d7ec9c4fe1b7012980d6bc2ab9da3 HTTP/1.1" 200 43135 "http://85.214.38.181/index.php?action=release&typ=nfo&id=14068&anzeige=png&PHPSESSID=543d7ec9c4fe1b7012980d6bc2ab9da3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)"
84.129.27.163 - - [04/Jul/2006:12:06:54 +0200] "GET /rdf.php HTTP/1.0" 200 13400 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
140.127.71.100 - - [04/Jul/2006:12:07:37 +0200] "GET /tmp/15750 HTTP/1.1" 200 7007 "http://forum.p2pzone.org/viewthread.php?tid=995660" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
80.135.170.59 - - [04/Jul/2006:12:07:37 +0200] "GET /img/gns_button.gif HTTP/1.0" 200 24674 "http://www.heaven-web.de/b0a3d/wiw.php?sortby=lastactivity&order=DESC" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
213.239.216.169 - - [04/Jul/2006:12:07:45 +0200] "GET /gns.xml HTTP/1.0" 200 13400 "-" "Opera/8.52 (X11; Linux x86_64; U; en)"
84.187.106.11 - - [04/Jul/2006:12:08:06 +0200] "GET /img/gns_button.gif HTTP/1.1" 200 24674 "http://www.heaven-web.de/b0a3d/index.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
221.126.82.181 - - [04/Jul/2006:12:08:09 +0200] "GET /tmp/15750 HTTP/1.1" 200 7007 "http://forum2.p2pzone.org/viewthread.php?tid=995660" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
80.135.170.59 - - [04/Jul/2006:12:08:08 +0200] "GET /img/gns_button.gif HTTP/1.0" 200 24674 "http://www.heaven-web.de/b0a3d/wiw.php?sortby=lastactivity&order=DESC" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
211.22.33.19 - - [04/Jul/2006:12:08:33 +0200] "GET /tmp/15752 HTTP/1.0" 304 - "-" "Mozilla/3.01 (compatible;)"
80.135.170.59 - - [04/Jul/2006:12:08:54 +0200] "GET /img/gns_button.gif HTTP/1.0" 200 24674 "http://www.heaven-web.de/b0a3d/wiw.php?sortby=lastactivity&order=DESC" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
213.239.216.169 - - [04/Jul/2006:12:08:57 +0200] "GET /gns.xml HTTP/1.0" 200 13400 "-" "Opera/8.52 (X11; Linux x86_64; U; en)"
59.148.163.182 - - [04/Jul/2006:12:08:57 +0200] "GET /tmp/15750 HTTP/1.1" 200 7007 "http://forum.p2pzone.org/viewthread.php?tid=995660" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
80.142.187.184 - - [04/Jul/2006:12:08:58 +0200] "GET /favicon.ico HTTP/1.1" 200 3317 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
84.60.114.67 - - [04/Jul/2006:12:07:56 +0200] "GET / HTTP/1.1" 200 226 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
80.136.103.250 - - [04/Jul/2006:12:07:42 +0200] "GET /irc_bot.php?action=10last&pw=sdNoid9234 HTTP/1.1" 200 862 "-" "-"
89.49.219.67 - - [04/Jul/2006:12:08:27 +0200] "GET /rss.php HTTP/1.1" 200 5780 "-" "Mozilla/4.0 (compatible; MSIE 5.5; Windows 2000)"
85.178.42.175 - - [04/Jul/2006:12:07:49 +0200] "GET /index.php HTTP/1.1" 200 3924 "http://gns.6x.to/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
80.171.133.158 - - [04/Jul/2006:12:07:50 +0200] "GET /rdf.php?typ=kino HTTP/1.1" 200 13838 "-" "Mozilla/5.0"
66.238.240.37 - - [04/Jul/2006:12:08:32 +0200] "GET /rdf.php HTTP/1.1" 200 13400 "-" "-"
84.187.149.230 - - [04/Jul/2006:12:08:57 +0200] "GET /rdf.php HTTP/1.1" 200 13400 "-" "Opera/9.00 (Windows NT 5.1; U; de)"
84.62.147.9 - - [04/Jul/2006:12:08:59 +0200] "GET /index.php?action=release&typ=all&PHPSESSID=ec8fad1fabf9f16361e24642d2ddf2ee HTTP/1.1" 200 4597 "http://85.214.38.181/index.php?action=release&typ=news&PHPSESSID=ec8fad1fabf9f16361e24642d2ddf2ee" "Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
88.134.159.150 - - [04/Jul/2006:12:09:06 +0200] "GET /index.php?action=release&typ=all&PHPSESSID=bdf19c971e835ddd4a7fbc54ca794e27 HTTP/1.1" 200 4597 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
213.39.185.64 - - [04/Jul/2006:12:09:03 +0200] "GET /index.php?action=release&typ=all&PHPSESSID=0e4b5b34f26ce34147815d9743a1a462 HTTP/1.1" 200 4595 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
217.81.177.12 - - [04/Jul/2006:12:07:39 +0200] "GET /index.php?action=release&typ=all&PHPSESSID=ad5f7419d83e20ee84c16ee142cb73d1 HTTP/1.1" 200 4595 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
84.139.127.14 - - [04/Jul/2006:12:08:35 +0200] "GET /index.php?action=release&typ=all&PHPSESSID=13b4fec252775186c0ba6d0282548271 HTTP/1.1" 200 4597 "http://85.214.38.181/index.php?action=release&typ=nfo&id=15863&anzeige=png&PHPSESSID=13b4fec252775186c0ba6d0282548271" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
84.61.49.69 - - [04/Jul/2006:12:07:07 +0200] "GET /rdf.php?typ=kino HTTP/1.1" 200 13838 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
84.129.27.163 - - [04/Jul/2006:12:08:16 +0200] "GET /rdf.php HTTP/1.0" 200 13400 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

Was kann das sein ?
Das passiert komischerweise mitlerweile leider relativ oft ( zum 3ten mal ) und ich verstehe überhaupt nicht warum ...
 
Hallo,

statt top besser ps aux nehmen, damit alle Prozesse angezeigt werden (bei top nur so viel wie in das Fenster paßt).

Gibt es auf dem Server die Datei irc_bot.php und die Datei rdf.php? Kannst Du die einer Funktion zuordnen?

Vserver oder Dedicated? Welches Board läuft? Wie gut besucht?

Muß nicht unbedingt ein Angriff sein, aber irc_bot macht mißtrauisch. :mad:
 
irc_bot.php gibts und die macht nicht besonders viel außer einen kleinen Text an einen IRC Bot auszugeben. Ist aber auch PW geschützt, also da kommt so einfach keiner ran.
rdf.php ist für RSS Feeds zuständig, auch nix tragisches.
Die beiden sind schon ok.

Es ist ein Dedicated Server ( Opteron 146 1 GB RAM bei Strato )
Board ist vb, 3.5.4
Besucheranzahl schwankt start von 50-300 Besuchern ca.
Was mich eher stutzig macht sind : ( man sieht schon an den Zeiten wie langsam der wird, normalerweise haben wir wesentlich mehr Anfragen pro sek. )
::1 - - [04/Jul/2006:12:06:34 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:35 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:36 +0200] "GET /" 400 460 "-" "-"

Was ist das, keine IP, kein nix angegeben ?

Gegen Angriffe hab ich mod_evasive + iptables und Syn Cookies aktiviert.
Achja und der Forum ist per SSL erreichbar, ( openSSL neuste Ver. )
PHP ist neuste 5er Version, MySQL auch und Apache 2.x ( auch neueste )
 
Last edited by a moderator:
Dein Apache ist lediglich überlastest und hält die Verbindungen zu lange offen.
Nutze die Boardsuche zum Thema "mod_status" um Deine Verbindungen anzuzeigen und "KeepAlive" (welches bei Dir wohl eher auf "Off" stehen sollte).

Weitere Tips zum Apache-Tuning findest Du hier:
Hochleistungs-Apache: Performance-Tuning

huschi.
 
Ist aber auch PW geschützt, also da kommt so einfach keiner ran.
Es sei den der Admin postet Abschnitte aus dem Apache Log die auch das Passwort enthalten...
::1 - - [04/Jul/2006:12:06:34 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:35 +0200] "GET /" 400 460 "-" "-"
::1 - - [04/Jul/2006:12:06:36 +0200] "GET /" 400 460 "-" "-"
Was ist das, keine IP, kein nix angegeben ?
http://en.wikipedia.org/wiki/Ipv6
Was sagt das errorlog zu dem Zeitpunkt? Was passiert wenn du Apache nur noch an IPv4 Addressen bindest?

Dein Apache braucht auffallend viel Speicher und das bei 1 GB Ram die Swappartition so stark genutzt wird ist auch ungewöhnlich, hast du irgendeine vom Standard abweichende Konfiguration(Apache, php, cache)?
"KeepAlive" (welches bei Dir wohl eher auf "Off" stehen sollte)
Er benutzt ein vBulletin Board und das benutzt Ajax, deshalb sollte KeepAlive on sein.
 
HornOx said:
Er benutzt ein vBulletin Board und das benutzt Ajax, deshalb sollte KeepAlive on sein.
Ajax ist nicht an KeepAlive gebunden.
Es kann zwar beschleunigen, muß aber nicht. Es kann aber genauso gut auch blocken.
Aber genauere Aussagen erhält man nur mit mod_status.

huschi.
 
mod_status hab ich ausgeführt, da ist jetzt bei normal Betrieb nix tolles zu sehen.
Hab KeepAlive nun aus, aber vorher war der auch nur auf 5 sec eingestellt

Die ::1 Ips kommen nur auf dem Virtuellen SSL Server.

Hier Auszug aus mod_status
Code:
   Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
   0-0 23452 0/33/86 _ 0.24 5 0 0.0 0.10 0.28 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/ie.gif HTTP/1.1
   1-0 23453 0/27/70 _ 0.28 5 0 0.0 0.12 0.30 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/ml.gif HTTP/1.1
   2-0 23457 0/16/84 _ 0.10 5 0 0.0 0.07 0.27 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/rss.jpg HTTP/1.1
   3-0 23424 0/92/92 _ 0.35 5 0 0.0 0.19 0.19 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/icon_amazon.gif HTTP/1.1
   4-0 23425 0/91/91 W 0.44 0 0 0.0 0.42 0.42 127.0.0.1 h927559.serverkompetenz.net GET /server-status HTTP/1.0
   5-0 23426 1/93/93 C 0.49 0 21 13.1 0.32 0.32 213.239.216.169 h927559.serverkompetenz.net GET /gns.xml HTTP/1.0
   6-0 23427 0/94/94 _ 0.49 3 46 0.0 0.42 0.42 217.20.118.170 h927559.serverkompetenz.net GET /rdf.php HTTP/1.0
   7-0 23428 0/94/94 _ 0.35 5 0 0.0 0.44 0.44 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/subfld.png HTTP/1.1
   8-0 23429 0/88/88 _ 0.36 5 0 0.0 0.25 0.25 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/notice.gif HTTP/1.1
   9-0 23430 0/91/91 _ 0.42 5 0 0.0 0.33 0.33 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/1dvd.gif HTTP/1.1
   10-0 23431 0/91/91 _ 0.67 5 0 0.0 0.20 0.20 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/deen.gif HTTP/1.1
   11-0 23456 0/21/82 _ 0.01 5 0 0.0 0.06 0.27 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/3cds.gif HTTP/1.1
   12-0 - 0/0/61 . 0.39 78 0 0.0 0.00 0.16 ::1 85.214.38.181 GET /
   13-0 23434 0/89/89 _ 0.34 5 0 0.0 0.39 0.39 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/icon_imdb.gif HTTP/1.1
   14-0 - 0/0/62 . 0.36 202 0 0.0 0.00 0.23 ::1 85.214.38.181 GET /
   15-0 23436 0/90/90 _ 0.31 6 20 0.0 0.33 0.33 84.182.80.182 h927559.serverkompetenz.net GET
   /index.php?action=release&typ=all&PHPSESSID=c46a4bd7f7371ae
   16-0 23437 0/91/91 _ 0.40 5 0 0.0 0.26 0.26 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/1cd.gif HTTP/1.1
   17-0 - 0/0/65 . 0.11 105 112 0.0 0.00 0.25 ::1 85.214.38.181 GET /
   18-0 23442 0/80/80 _ 0.37 3 19 0.0 0.30 0.30 217.20.118.170 h927559.serverkompetenz.net HEAD /rdf.php HTTP/1.0
   19-0 23446 0/57/57 _ 0.34 5 0 0.0 0.23 0.23 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/2cds.gif HTTP/1.1
   20-0 23447 0/54/54 _ 0.44 5 0 0.0 0.20 0.20 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/en.gif HTTP/1.1
   21-0 23450 0/39/39 _ 0.23 5 0 0.0 0.07 0.07 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/de.gif HTTP/1.1
   22-0 23451 0/39/39 _ 0.21 5 0 0.0 0.12 0.12 84.182.80.182 h927559.serverkompetenz.net GET /Templates/Standard/images/nuke.gif HTTP/1.1

PS. die hohen Swap werte kamen ja nach dem Absturz, ich denke die wurden einfach nicht gelöscht, normalerweise sind die Werte nicht so hoch, also bei 0.
 
Last edited by a moderator:
drbacke said:
mod_status hab ich ausgeführt, da ist jetzt bei normal Betrieb nix tolles zu sehen.
Natürlich nicht. Du sollst das einfach ein bischen beobachten. Vorallem wärend Zeiten mit erhöhten Traffic.

Hab KeepAlive nun aus, aber vorher war der auch nur auf 5 sec eingestellt
Dann warte einfach auf den nächsten Ausfall.
Du könntest natürlich auch zum Spaß warten KeepAlive einschalten um in mod_status wirklich das Problem raus zu finden. :)

die hohen Swap werte kamen ja nach dem Absturz
Nicht 'Absturz' sondern 'Ausfall'. Dein Apache war halt überlastet und hat dann den Speicher und die CPU belastet.
(Aber ich glaub ich wiederhole mich.)

huschi.
 
Ich glaube es liegt am SSL, ich habe SSL jetzt deaktiviert.
Das Problem ist das die Ausfälle ( Abstürze wie auch immer, ich denke man weiß was gemeint ist ) sehr unregelmäßig geschehen und ich kann nicht permanent vor dem Server hängen und mod_status begutachten ...
Gibt es da keine Logging möglichkeit ?

Es ist durchaus ein Absturz, der Server hängt sich danach für gewöhnlich komplett auf. Reset ist dann nötig.
 
Ajax ist nicht an KeepAlive gebunden.
Es kann zwar beschleunigen, muß aber nicht. Es kann aber genauso gut auch blocken.
Man spart man sich einen (unnötigen) TCP Verbindungsaufbau wenn KeepAlive an ist und der Browser bereits eine Verbindung zum Server hat, das dauert ungefähr so lange wie ein IMCP Ping. Wie (eine vernünftige Konfiguration vorrausgesetzt ;)) soll das Blocken?
Dein Apache war halt überlastet und hat dann den Speicher und die CPU belastet.
Laut dem top brauchen die Apache Prozesse bis zu 400MB Speicher(pro Prozess), davon sind ~50 MB geteilter Speicher/shared libraries und nur ~50MB (vermutlich die gleichen) sind im Ram, der Rest ist auf der auf der Swap Partition :(. Ein überlasteter Apache bläht sich AFAIK nicht so auf.

@drbacke: Was hält dich davon ab deine Konfiguration für SSL zu geben?
 
Last edited by a moderator:
Naja SSL ist nicht unbedingt notwendig, ich wollte den sowieso schon länger entfernen.
Das der Server einfach überlastet war, kann ich auch kaum glauben, dazu sind die Werte wie gesagt zu extrem.

Hier die SSL config :
Code:
<IfModule ssl_module>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLSessionCache dbm:/usr/server/apache/logs/ssl_gcache_data
SSLSessionCacheTimeout 300
SSLMutex sem
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

<VirtualHost *:443>
ServerName 85.214.38.181
SSLEngine On
DocumentRoot /usr/server/www
SSLCertificateFile /usr/server/apache/conf/server.crt
SSLCertificateKeyFile /usr/server/apache/conf/server_neu.key

ErrorLog  "|/usr/bin/cronolog /usr/server/apache/logs/%Y_%m_%d_error_log"
LogLevel warn
CustomLog "|/usr/bin/cronolog /usr/server/apache/logs/%Y_%m_%d_access_log" combined


RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

</VirtualHost>

Ich habe grade beobachtet das in de Top Stats oft ein httpd-defunc auftaucht, als Zombie ...
 
Last edited by a moderator:
HornOx said:
Wie (eine vernünftige Konfiguration vorrausgesetzt ;)) soll das Blocken?
Etwa zum 50ten mal hier im Board:
Ein Apache-Child wird durch KeepAlive wird für [KeepAliveTimeout] Sekunden blockiert, weil er wartet, ob der Client einen weiteren Request startet. Dies hat Sinn, wenn ausreichend viele Child's produziert werden können und wenn der Client sich wirklich an die HTTP/1.1 Spec hält und die noch offene Verbindung für den nächsten Request nutzt. Gerade letzteres ist aber äusserst Fraglich und Ersteres ist meist selten der Fall, weil irgendwann immer der Speicher ausgeht.
Womit wir bei Deiner seltsamen Rechenkünsten angekommen sind:
Im Vorher/Nacher-Vergeleich der Speicherzahlen ist eine Differenz von 2 GByte (Mem & Swap zusammen). Nicht von nur 400 MB.

Das ganze ist wahrscheinlich so gelaufen: Der Apache hatte keinen freien Child mehr, hat einen Neuen erzeugt, welcher wieder seine Wartezeit abgesessen hat. Wärend der Zeit kamen so viele neue Anfragen, daß wieder neue Childs erzeugt werden mußten, etc. etc.
Insgesammt kommen soviele Anfragen auf einmal, daß die ersten Childs in den Swap verschoben worden sind. (Aufgrund der select()-Funktion weiß das System über den Warte-Status bescheid.) Als bei denen dann die Zeit rum war, wollten sie weiter machen - entweder weitere Request beantworten ('defunc' != Zombi) oder sich beenden. Daher muß er aus dem Swap raus und ein anderer Child in den Swap rein.
Das ganze Swappen beschäftigt das System so sehr, daß es langsamer childs forken bzw. abarbeiten lassen kann. Apache erhält mehr Anfragen, will mehr Childs, das System muß mehr Swappen und steht kurz vorm Deadlock.
Dies kann man getrosst als DoS (Dienste-Ausfall) bezeichnen, auch wenn er evtl. nicht per Absicht erzeugt wurde.

Daher gilt die Grundregel: niemals mehr Apache-Clients zulassen (per MaxSpareServers, MaxClients), als physikalischer Ram vorhanden ist.

@drbacke:
Also zeig mal Deine Tuning-Config.

huschi.
 
Dies hat Sinn, wenn ausreichend viele Child's produziert werden können [...] ist meist selten der Fall, weil irgendwann immer der Speicher ausgeht.
Mein Server mit 256 MB Ram kann ~200 Apache Preforks laufen lassen ohne die Swap Partition nennenswert zu benutzten oder sonstige Probleme zu bekommen (Debian 3.1/Apache Prefork Standartpacket).
Code:
top - 22:14:13 up 196 days,  3:50,  2 users,  load average: 2.55, 1.27, 0.72
Tasks: 249 total,   3 running, 246 sleeping,   0 stopped,   0 zombie
Cpu(s): 77.2% us, 18.2% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  4.6% si
Mem:    248876k total,   242384k used,     6492k free,     1244k buffers
Swap:   506036k total,     1220k used,   504816k free,   125160k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
15696 root      25   0 14952 3572 5484 R  8.3  1.4   0:03.96 ab2
15695 root      16   0  2196 1172 1852 R  1.0  0.5   0:00.24 top
15777 www-data  15   0 16184 6140  13m S  1.0  2.5   0:00.16 apache2
15809 www-data  15   0 16184 6140  13m S  1.0  2.5   0:00.12 apache2
15690 www-data  15   0 16184 6140  13m S  0.7  2.5   0:00.88 apache2
15697 www-data  15   0 16184 6140  13m S  0.7  2.5   0:00.80 apache2
15699 www-data  15   0 16184 6140  13m S  0.7  2.5   0:00.59 apache2
15701 www-data  15   0 16184 6140  13m S  0.7  2.5   0:00.54 apache2
[...]
drbacke hat zum Auslastungszeitpunkt gerade mal 125 Prozesse insgesammt gehabt und hat 4 mal mehr Arbeitsspeicher.

wenn der Client sich wirklich an die HTTP/1.1 Spec hält und die noch offene Verbindung für den nächsten Request nutzt. Gerade letzteres ist aber äusserst Fraglich
IE, Firefox und Opera können und benutzten es, mit Etherreal kannst du dich selbst davon überzeugen. Clients die kein Keep-Alive können werden es sinnvollerweise erst gar nicht nicht im HTTP Header anfordern und Apache verhält sich dann auch entsprechend.

Womit wir bei Deiner seltsamen Rechenkünsten angekommen sind:
Im Vorher/Nacher-Vergeleich der Speicherzahlen ist eine Differenz von 2 GByte (Mem & Swap zusammen). Nicht von nur 400 MB.
Die 400 MB bezogen sich auf einen einzelnen Apache Prozess:
Code:
20779 daemon 25 0 [b]400m[/b] 54m 46m R 3.7 5.4 0:11.72 httpd
Das ganze Swappen beschäftigt das System so sehr, daß es langsamer childs forken bzw. abarbeiten lassen kann. Apache erhält mehr Anfragen, will mehr Childs, das System muß mehr Swappen und steht kurz vorm Deadlock.
Laut top ist die io wait time 0,0%, AFAIK sollte die höher sein wenn die CPU dauernd auf die Swap Daten von der Festplatte warten muß.
 
Last edited by a moderator:
HornOx said:
Die 400 MB bezogen sich auf einen einzelnen Apache Prozess
Stimmt, den hab ich übersehen.

Laut top ist die io wait time 0,0%
Auch das hab ich übersehen.
Bei dem hohen Speicherverbrauch von einigen Threads, muß man aber wirklich mit mod_status den Server ne Weile beobachten. Sonst findet man den Speicherfresser nie.

PS: Der hier benutzte Apache1 (httpd) nutzt noch ein anderes (unperformateres) Fork-Modell. Direkte Vergleiche mit einem Apache2 sind also mit vorsicht zu geniesen.

Auf der anderen Seite könnte ein Update auf Apache2 das Problem vieleicht ebenfalls lösen.

huschi.
 
drbacke said:
Hier die SSL config
äh, ganz vergessen: Die sieht normal aus, daran sollte es eigentlich nicht liegen. Wenn/Falls das Problem wieder auftritt wäre es gut wenn du mal ein Trace von einem Apache Prozess der viel Speicher verbraucht machen könntest.
http://www.die.net/doc/linux/man/man1/strace.1.html
btw, @Admin: Wäre es möglich einen Forencode einzuführen mit dem man auf die Hilfeseiten der Linuxbefehle verlinken kann? Also z.B. [man]strace[/man].
Ich habe grade beobachtet das in de Top Stats oft ein httpd-defunc auftaucht, als Zombie ...
So lange es nicht immer die gleiche PID ist kannst du das bei Apache1 AFAIK ignorieren, bei meinem Test gab's das auch aber die einzelnen Zombies verschwanden alle genauso schnell wieder wie sie gekommen waren.
http://de.wikipedia.org/wiki/Zombie_(EDV)

Huschi said:
Der hier benutzte Apache1 (httpd) nutzt noch ein anderes (unperformateres) Fork-Modell. Direkte Vergleiche mit einem Apache2 sind also mit vorsicht zu geniesen.
hmm, Apache1, hab ich übersehn...
Aber auch bei einem Test in einem chroot mit Apache 1 und 200 Childs habe ich keine Probleme gehabt. Es dauert vermutlich ein paar Sekunden länger bis die Forks abgearbeitet sind aber drbackes Probleme traten ja im laufenden Betrieb und laut logfile nur mit ein paar Zugriffen pro Sekunde auf.
btw, bei vServern kann das von dir weiter oben beschriebene Problem AFAIK wirklich auftretten weil Apache da von der scheinbar guten Hardware geblendet wird.
 
Ich sehe hier auch gerade :
[Wed Jul 05 13:03:11 2006] [info] [client 66.238.240.37] (32)Broken pipe: core_output_filter: writing data to the network

Das permanent, immer von dieser einen IP.
Gestern folgendes :
Code:
Jul  4 17:15:32 h927559 kernel: possible SYN flooding on port 80. Sending cookies.
Jul  4 17:15:32 h927559 kernel: TCPv6: dropping request, synflood is possible
Jul  4 17:15:35 h927559 kernel: TCPv6: dropping request, synflood is possible
Jul  4 17:17:16 h927559 kernel: possible SYN flooding on port 80. Sending cookies.
Jul  4 17:42:17 h927559 -- MARK --
Jul  4 17:44:35 h927559 kernel: possible SYN flooding on port 80. Sending cookies.
Jul  4 17:47:22 h927559 kernel: possible SYN flooding on port 80. Sending cookies.
Jul  4 17:47:22 h927559 kernel: TCPv6: dropping request, synflood is possible
Jul  4 17:47:32 h927559 last message repeated 3 times
Jul  4 17:48:42 h927559 kernel: possible SYN flooding on port 80. Sending cookies.
 
Ich habe das Problem gelöst, für die die es interessiert hier meine vorgehensweise:

1. Logs bei Apache auf debug und PHP E_ALL ^ E_NOTICES, außerdem die PHP Logs in die Log File vom Apache umgeleitet.
2. Habe ich PHP neu kompiliert, da ich vergas --enable-memory-limit mitanzugeben. Also sprich, vorher gabs kein Speicherlimit.
3. Speicherlimit auf 7 MB gesetzt.
4. Im Apache Log fiel mir auf, das zuwenig Server Prozesse liefen ( Server seems busy, spawning 8 children )
Ich habe mich dem hoffentlich optimalen Wert langsam angenähert ( von den Standard Werten Apaches ) auf die zwar recht extremen, aber problemlos funktionierenden Werte :
Code:
TimeOut 30
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 2

<IfModule mpm_prefork_module>
    StartServers          200
    MinSpareServers       20
    MaxSpareServers       200
    ServerLimit           300
    MaxClients            300
    MaxRequestsPerChild   20000
</IfModule>
Die Fehlermeldung ist bisher nicht wiedergekommen, aber ich werd das noch einige Zeit beobachten. Achja ein weiterer schöner Effekt ist, das man plötzlich viel mehr Besucher hat/haben kann.
5. mod_evasive + iptables mit folgenden Einstellungen :
Code:
DOSHashTableSize    3097
DOSPageCount        4
DOSSiteCount        100
DOSPageInterval     1
DOSSiteInterval     1
DOSBlockingPeriod   10
DOSLogDir		"/tmp"
DOSSystemCommand "/usr/bin/sudo /sbin/iptables -I INPUT -s %s -j DROP"
DOSWhitelist x.x.x.*
6. iptables einige limit Rules definiert, um mögliche SYN / ICMP (pod) Floods zu minimieren.
Code:
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

Verstohlene Portscanner:
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Ping of death:
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

7. SYN Cookies aktiviert :
Code:
/etc/sysctl.conf  # editieren und folgendes einfügen:

net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_syncookies = 1
 
Back
Top