VServer F5 Crash

Master_FM

New Member
Guten Morgen Leute,

habe einen VServer von Hetzner Q19 seit ca. 3,5 Jahren

http://www.hetzner.de/hosting/produkte_vserver/vq19

Betreibe auf diesem VServer ein Teamspeak³ Server und ein Forum (WBB)

Wir hatten jetzt in letzter Zeit zahlreiche Angriffe (HTTP) etc...

Und zugleich wurde mir berichtet das wenn man F5 bei uns im Forum einfach gedrückt hält, dann zwingt es unseren VServer in die Knie und er stürzt ab bzw ist gar nicht mehr erreichbar.

Habe jetzt gegen die Angriffe

- mod_security2
- fail2ban
- xcache

drauf gespielt. Dachte vorerst das fail2ban das regeln würde mit F5, jedoch tut es das nicht! Dann dachte ich xcache hilft mir dabei, jedoch auch dies stimmt nicht.

Ablauf vor dem Absturz

Code:
[error] server reached MaxClients setting, consider raising the MaxClients setting

[error] could not make child process 17172 exit, attempting to continue anyway
... (SEHR OFT)

[notice] caught SIGTERM, shutting down

So habe schon gegoogelt und rausbekommen das es an den Clients liegt usw, jedoch war das alles ja schon ne ganze Zeit nicht und ich bin mir nicht sicher ob das alles nur von dem F5 kommt.

Was braucht ihr alles für Logs und Infos damit wir diesen F5 Bug beheben könnten. Wieso hat fail2ban und xcache da nicht eingegriffen?

Vielen Dank für eure Hilfe

Gruß Master_FM
 
Um das mal zu versinnbildlichen: hilft es einen Turbolader einzubauen, damit in ein Auto mit 2 Sitzen 15 Leute passen?

Deshalb hat es nicht funktioniert. Xcache ist ein Opcode Cache, wenn der Apache aber an seine von Dir konfigurierten Grenzen stößt hilft das auch nichts mehr.
Fail2ban blockiert potentielle Angreifer die es mit Brute Force u.ä. probieren.

Poste mal bitte die relevanten Teile der Config des Apaches.
 
Last edited by a moderator:
Ja war meine Vermutung... Dachte das würde einiges helfen.
Ich bin halt nur total erstaunt gewesen wieso das bis jetzt gar nicht passiert ist
und jetzt erst passiert. Kann man nicht Leuten die ständig F5 drücken irgendwie das verhindern bzw merkt Apache nicht das es die selbe Person ist?

Hier die Codeteile, denke die dürften relevant sein

Code:
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

Code:
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

Code:
<IfModule mpm_event_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

Finde das halt bisschen seltsam das jetzt nach solanger Zeit plötzlich der VServer an seine Grenzen stößt.
Naja hoffe mal das wir das hinkriegen
 
Ich schätze 'mal Prefork, da der TE sicher mittels 'apt-get install php5' PHP installiert hatte...
 
Ich schätze 'mal Prefork, da der TE sicher mittels 'apt-get install php5' PHP installiert hatte...

Interessant, dass du den verwendeten Paketmanager schon kennst, obwohl nirgendwo die verwendete Distro genannt wurde ;)
 
Sry Leute wie sehe ich das nach? War schon bei mir soweit vorinstalliert und ist schon ne Ewigkeit her...

Bringt die eine php.info was?
Müsste doch dort stehen oder?
 
Na dann fangen wir doch mal klein an:

Code:
cat /etc/issue; grep -ve " 0$" /proc/user_beancounters; php -v; mysql -V; apache2ctl -V

Damit dürften die notwendigsten Infos schonmal abgefrühstückt sein.
 
Code:
Debian GNU/Linux 6.0 \n \l

grep: /proc/user_beancounters: No such file or directory
PHP 5.3.3-7+squeeze14 with Suhosin-Patch (cli) (built: Aug  6 2012 14:18:06)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with the ionCube PHP Loader v4.0.14, Copyright (c) 2002-2011, by ionCube Ltd                                                                                                 ., and
    with XCache v1.3.0, Copyright (c) 2005-2009, by mOo
    with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
mysql  Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (x86_64) using readline 6.                                                                                                 1
Server version: Apache/2.2.16 (Debian)
Server built:   Nov 30 2012 08:58:36
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.4.2, APR-Util 1.3.9
Compiled using: APR 1.4.2, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

Hier die Antworten ;-)

Edit: Kann mir jetzt keiner mehr weiterhelfen?
 
Last edited by a moderator:
Ich weiß, dass du diesen Satz wahrscheinlich nicht gerne hören willst.

Aber wenn du nicht weiß was an deinem Servr wie konfiguriert ist, solltest du erst mal klein anfangen und auf einem Rechner, welcher NICHT direkt am Internet hängt üben.

Keiner von uns ist mit dem vollen Wissen wie Serveradministration funktioniert geboren worden. ABER:

Einen Server der mit 100Mbit am Internet hängt zu spielen ist etwas anderes. Wahrscheinlich hast du auf dauer noch ganz andere Probleme als ein zu kleine eingestelltes MaxClients.

Also schaffe dir ein kleine VM auf deinem Rechner an und teste dort. Wenn du dabei Hilfe brauchst wirst du diese hier auch bekommen.
Solange solltets du über ein Webspace Angebot nachdenken oder dir den Server von jemanden administrieren lassen, der etwas davon versteht.

Mit einem gehackten Server ist nicht zu spaßen und kann im schlimmsten Falle auch zivilrechtliche oder strafrechtliche Kosequenzen für dich haben. Der Server steht unter deiner Administration und du bist dafür, was der Sever macht oder auch nicht macht 100% haftbar.

Unwissenheit schützt vor Strafe nicht
 
Vielen Dank für deine Lehrstunde jedoch ändert das immer noch nichts an meinem Problem.

Ihr wolltet die Infos wegen dem Server jetzt habt ihr sie und plötzlich kriege ich als Antwort ich soll üben gehen?

Leute das kann doch net euer Ernst sein...

Wozu gibt es dann solche Foren wenn man hier nicht mal Fragen darf bzw solche Infos kriegt? Dafür gibt es ja Foren für Anfänger etc um sich bei Problemen weiterzuhelfen.

Also kommt schon und helft mir doch einfach
 
Es geht nicht darum, dass du ein Anfänger bist und Fragen hast, sondern darum, dass du mit offensichtlich nicht ausreichenden Kenntnissen einen öffentlichen Server im Internet betreibst und damit zu der Gruppe Anfänger gehörst, welche durch ihre fehlende Erfahrung ein Risiko für alle anderen Teilnehmer des Internets darstellen.

Mit dem was du betreibst wärst du sicherheitstechnisch definitiv besser bei einem Webhosting untergebracht.
 
Last edited by a moderator:
Betreibe auf diesem VServer ein Teamspeak³ Server und ein Forum (WBB)

Wir hatten jetzt in letzter Zeit zahlreiche Angriffe (HTTP) etc...

Und zugleich wurde mir berichtet das wenn man F5 bei uns im Forum einfach gedrückt hält, dann zwingt es unseren VServer in die Knie und er stürzt ab bzw ist gar nicht mehr erreichbar.

Habe jetzt gegen die Angriffe

- mod_security2
- fail2ban
- xcache
...
Zum Thema Webhosting: damit liese sich ein TS3-Server schwer realisieren.

Jetzt zu Deinen Maßnahmen:

Gegen DOS-Angriffe direkt auf den Webserver helfen weder mod_security2 noch fail2ban. IMHO, beschleunigst Du damit nur noch den Untergang. Beide benötigen je nach Umfang des Regelwerkes in bemerkenswerten Umfang CPU-Zeit.

Du setzt 2 PHP-Beschleuniger ein. Das ist IMHO Unsinn. Für den Betrieb eines WBB (welche Version eigentlich) braucht es den Ioncube nicht. Also entweder XCache oder APC.

Zu Deinen Apache-Einstellungen. Soweit ich das richtig gesehen habe, hat der vServer 2 GB RAM. Du könntest also vermutlich mehr max clients zulassen, denn an genau das Limit stößt Du lt. der von Dir geposteten Fehlermeldung (Erläuterung dazu: http://www.sirmark.de/computer/apache-maxclients-mpm_prefork_module-optimal-einstellen-1118.html).

Wenn die Besucher "F5 drücken" ist das kein Bug sondern über den Browser wird ein Reload der Seite angefordert. Aber solange das nicht ein paar hundert User gleichzeitig tun, ist das i.d.R. kein wesentliches Problem.

Es gibt natürlich noch fortgeschrittenere Möglichkeiten zur Ressourcen- und Bandbreitenkontrolle (z.B. http://www.dokuwiki.tachtler.net/do...server_-_mod_cband_-_bandbreitenbeschraenkung). Aber für einen effektiven Einsatz brauchst Du da deutlich mehr Know-how.
 
Hallo TerraX,

vielen Dank erstmal für deine Hilfe.
Wir hatten ein Webserver lange Zeit jedoch hat uns der Teamspeak gefehlt und beide getrennt sich holen wäre viel teurer wie ein VServer. Aber zurück zum Thema!

Wegen D-Dos Angriffe ist mir klar das wir uns kaum schützen können jedoch waren es Angriffe auf SSH (hat fail2ban erfolgreich geblockt) und sehr viele Sachen blockt im Moment von mod_security2 (sogar genau genommen enorm viel)

Also bringen tun sie mir schon mal was, bei DDos wäre es na klar fatal aber das ist halt dann so :-))

Habe WBB 3.1.7 (aktuellste) und habe eigentlich nur xcache drauf und sonst kein PHP Beschleuniger drauf ausser das bei WBB von Standard aus dabei wäre. Wie kommst du auf APC?

Doch leider ist es so wenn eine Person F5 gedrückt hält dann schickt der soviele Anfrage das Apache in die Knie geht und dann später folgt der VServer
sprich in der Zeit komm ich nicht ans Forum, kurz noch per ssh rein und später nirgends mehr es braucht alles ne Ewigkeit.

Deswegen bin ich ja verzweifelt und weiß net weiter wieso das so ist. Ich mein wenn sich das rumspricht dann könnte jeder Besucher das Forum so lahm legen.

//Edit:

Also dein Tutorial hat einiges gebracht!
Jetzt stürzt TS etc nicht mehr ab durch die Begrenzung auf MaxRequestPerChild etc...
Aber mein MYSQL Server kackt noch ab jetzt durch ständiges F5 drücken muss nur noch das in Griff kriegen!

Hab auch mal ein Bild gemacht während dauerhaft F5 drücken

http://www.ur-upload.de/i/2013/01/30/8ykvi.jpg
 
Last edited by a moderator:
Wir hatten ein Webserver lange Zeit jedoch hat uns der Teamspeak gefehlt und beide getrennt sich holen wäre viel teurer wie ein VServer
Beide getrennt würden aber diese Probleme nicht aufweisen.
Es gibt übrigens sehr guten Free- und Lowcost-Webspaces. Im Freehosting-Bereich will ich keine öffentliche Eigenwerbung machen, Low-Cost wird oft uberspace.de verlinkt.

Falls du nun auf Biegen und Brechen einen vServer für TS3 behalten willst: das ist durch die TS3 Nutzungsbedingungen bereits seit Monaten nur ohne NPL-Lizenz und somit maximal 32 Slots erlaubt.
Die Nutzungsbedingungen sagen deutlich: "It is prohibited to use your license on a shared physical server with other NPL licensees. No exceptions."
Du kannst aber davon ausgehen dass zig andere Leute auf der gleichen physischen Machine (IP-unabhängig) TS3-Instanzen betreiben weshalb du wissentlich gegen die AGB verstösst.
32 Hosts von einem professionellen Anbieter kommen gleich teuer oder sogar günstiger als ein 4€/Monat vServer - ganz ohne Arbeit und mit meist bequemer Systemoberfläche.


und sehr viele Sachen blockt im Moment von mod_security2 (sogar genau genommen enorm viel)
mod_security blockt Requests. Ob die Request erfolgreich verlaufen wäre respektiv ob das Softwarepaket überhaupt installiert ist verrät dir die Logfile nicht.

Doch leider ist es so wenn eine Person F5 gedrückt hält dann schickt der soviele Anfrage das Apache in die Knie geht und dann später folgt der VServer
Die Betonung in TerraX's Beitrag lag vermutlich auf "idR". Bei korrekt konfigurierten Systemen ist es einem Besucher gar nicht möglich so viele Requests an das System zu schicken dass es zusammenbricht.
Cloudflare wäre ein potentieller temporärer "Hotfix" für dein Problem, aber keine Lösung.

Ich mein wenn sich das rumspricht dann könnte jeder Besucher das Forum so lahm legen.
Du willst gar nicht wissen wie viele kommerzielle Webhoster sogar durch Slowloris und andere mit einem einzigen DSL-Uplink betreibbaren Angriffe möglich sind.
 
AW: VServer F5 Crash

managed vServer fuer das Forum und einen TS3 Hoster deiner Wahl. Kostet dich am Ende ca. 15€ pro Monat mehr, hast aber gleichzeitig keine Probleme und musst nicht im SSF um Hilfe betteln.

Wuerde Dir helfen, aber eine einmalige Hilfestellung reicht meist nicht aus.

Sent from my Lumia 800 using Board Express
 
Ich möchte eines vorweg schicken und ich sage es - gemäß der Vereinbarung vor einiger Zeit hier - auch nur einmal. Es ist offenkundig, dass Dein Know-how deutlich zu gering ist, um einen Server im Internet zu betreiben. Du solltest wirklich auf eine managed-Server-Variante ausweichen oder ggf. Webspace und TS3-Slots mieten. Dürfte vermutlich auf das gleich summa summarum hinauslaufen und Du bist eine Menge Stress los.

So nun aber zu den bisherigen Ausführungen ...
Wegen D-Dos Angriffe ist mir klar das wir uns kaum schützen können jedoch waren es Angriffe auf SSH (hat fail2ban erfolgreich geblockt) und sehr viele Sachen blockt im Moment von mod_security2 (sogar genau genommen enorm viel)

Also bringen tun sie mir schon mal was, bei DDos wäre es na klar fatal aber das ist halt dann so :))

Habe WBB 3.1.7 (aktuellste) und habe eigentlich nur xcache drauf und sonst kein PHP Beschleuniger drauf ausser das bei WBB von Standard aus dabei wäre. Wie kommst du auf APC?

Die Betonung in TerraX's Beitrag lag vermutlich auf "idR". Bei korrekt konfigurierten Systemen ist es einem Besucher gar nicht möglich so viele Requests an das System zu schicken dass es zusammenbricht.
Cloudflare wäre ein potentieller temporärer "Hotfix" für dein Problem, aber keine Lösung.
Von Deiner geposteten Moment-Aufnahme (Screenie top) sieht es mir aus, wie ein 0815-Clanserver. Die CPU scheint sich zu langweilen. Insofern ist die hohe Anzahl an Zugriffen verwunderlich.

Eine Idee wäre - vorausgesetzt Du setzt Web-Statistiken ein wie Webalizer oder AW-Stats - mal in die Web-Statistiken zu schauen, woher die Masse an anfragen kommt. Das Ergebnis ist manchmal überraschend. Sind das Zugriffe aus Russland, Südamerika oder China etc. pp. könnte man ganze IP-Adress-Bereiche per IP-Tables oder .htaccess sperren. Das ist aber eine fragile und eher temporäre Lösung.

Zu SSH: Fail2Ban ist nach meiner Meinung Snakeoil. Eine sichere SSH-Konfig (Begrenzung auf dezidierte non-root-User und public-key-auth-only) lässt Dich sicherer schlafen als ein Pflaster zur Bekämpfung der Symptome aka Fail2Ban.

mod_security ist nur sinnvoll nach eigener Erfahrung mit einem eigenen ganz individuell angepassten Regelwerk. Standard-Rules oder sonstige Muster-Rules einzusetzen, zieht die nur die Performance unter den Füßen weg.

Du setzt den Apache als mpm-prefork ein. D.h. für jeden Client wird ein eigenständiger Apache-Prozess geladen. Und genau erst dann greift auch mod_security. Das eigentliche Dilemma ist damit schon bereits entstanden. Der Speicher wird "vollgemacht" :) und CPU-Zeit wird verbraucht. Dann wird der Request durch das Regelwerk bearbeitet (noch mehr CPU-Zeit und RAM) und dann im positiven Falle wird der Request erst durch den Apache verarbeitet. mod_security setzt man als "chirugisches Skalpell" ein, nicht als Breitband-Antibiotikum.

Zu den PHP-Beschleunigern:

Laut der von Dir geposteten Angabe (https://serversupportforum.de/threads/vserver-f5-crash.50305/post-328857) läuft auch noch Ioncube. Wbb bringt, AFAIK, keinen PHP-Beschleuniger mit wie auch, ist ja selbst eine PHP-Anwendung.

Warum ich APC empfehle? Hmm, aus eigener persönlicher Erfahrung - lief bisher sehr problemlos und wird auch aktiv weiterentwickelt, AFAIK. XCache verfolgt aber das gleiche Ziel. Du kannst gern nach Performance-Tests googlen und Dir selbst ein Urteil bilden, was evtl. für Deinen Zweck besser ist.

So zu dem mySQL-Problem und dem was D4F zu meinen Ausführungen anmerkte:

Ich hatte aus persönlicher Erfahrung (Admin WC3CL) ein einziges Mal mit dem "F5-Problem" zu kämpfen. Das war der erste Spieltag einer neuen Ligasaison mit einem neuen Ligascript (was ich mit heißer Nadel gestrickt hatte). Die Situation war folgende:

Die Deadline für Eingabe der obligatorischen Lineups war auf 18:45 Uhr gesetzt. Bis zu diesem Zeitpunkt waren die Lineups verdeckt also für den Gegner nicht sichtbar. Exakt 18:45 Uhr + 1 Sekunde wurden die Lineups systemseitig für alle angezeigt.

Damals hatten wir noch über 100 Clans in der Liga und dementsprechend haben ca. 800 User zu diesem Zeitpunkt ständig F5 gehämmert, um zu erfahren, wer gegen wen antreten wird. Zu diesem Zeitpunkt hatten wir einen kleinen vServer mit ca. 512 MB RAM und zu allem Übel Apache auf mpm-prefork mit PHP als reine CGI-Anwendung. Es hat knapp 5 Minuten gedauert bis die Kiste in die Knie gegangen ist.

Für den darauf folgenden Spieltag ein Wochenende später hatte ich dann meine Hausaufgaben gemacht inkl. bessere Hardware bei Hetzner damals.

Ergo, das o.g. ist eine klassische F5-Situation. Die kann ich mir bei Dir nicht vorstellen. Wenn Du natürlich die max_clients hochsetzt, bedeutet das natürlich, dass aus der PHP-Script-Abarbeitung mehr Anfragen an die mySQL-DB gesendet und verarbeitet werden müssen. Evtl. hast Du das zu radikal nach oben gesetzt.

Wie auch immer und da sind wir wieder am Anfang. Woher kommen die Anfragen.

Last but not least - ich bevorzuge Apache im mpm-worker-Betrieb mit PHP als fastCGI. Auch dafür gibt es genügend gute Tutorials.

P.S.: Wenn wir präzise wüssten, um welche Domain es sich handelt, könnten wir uns das System und evtl. die Foren-Statistiken mal anschauen - von außen ohne was "kaputt zu machen".
 
Last edited by a moderator:
Sehr schöne Antwort mit viel Infos! Ioncube entferne ich demnächst.
Es handelt sich um die Seite

www.my2life.de

Schau mir das alles mal daheim genauer an und versuche da mal noch rumzuschrauben. Habe laut deinem Tutorial die apache config und mysql config angepasst (Daten habe ich leider daheim).

Werde dann falls das alles nichts gebracht hat das Zeug umstellen.

Ja habe mir schon oft überlegt ein Webspace und kleinen VServer für TS zu holen und Lizens habe ich schon seit einer Ewigkeit :-)))

Jedoch warte ich erstmal ab ob das alles funktioniert
 
Back
Top