Bachsau
Member
Guten Morgen!
Gerade ist es jemand / einem Script, das vermutlich auf einem gehackten Server läuft gelungen, meine Websites durch massive Zugriffe auf ein MediaWiki lahm zu legen. Das führte zu einer Out-of-Memory-Situation, und dazu, dass der Kernel den MySQL-Server geschlachtet hat.
Ich frage mich jetzt wie ich möglichst gezielt verhindern kann, dass das wieder passiert. Kann ich irgendwie priorisieren was gekillt werden darf, und was nicht? Wenn er in solchen Fällen die laufende PHP-CGI instanz killt, ist das ja kein so großes Problem, wie wenn der Datenbankserver dran glauben muss. Vor allem würde ich solchen Situationen aber generell gerne vorbeugen. Anpassung von MaxClients und der Grenzwerte von mod_evasive ist dabei keine Option, weil das ja auch Zugriffe auf statische Resourcen betreffen würde, die so gut wie keinen Speicher benötigen. Das Problem entsteht ja nur dann, wenn resourcenlastige Scripte innerhalb von Sekundenbruchteilen dreißig mal gestartet werden.
Die Kiste hat ein Giga RAM und ein Giga Swap. Apache MaxClients 150, MySQL max_connections 200.
Gerade ist es jemand / einem Script, das vermutlich auf einem gehackten Server läuft gelungen, meine Websites durch massive Zugriffe auf ein MediaWiki lahm zu legen. Das führte zu einer Out-of-Memory-Situation, und dazu, dass der Kernel den MySQL-Server geschlachtet hat.
Ich frage mich jetzt wie ich möglichst gezielt verhindern kann, dass das wieder passiert. Kann ich irgendwie priorisieren was gekillt werden darf, und was nicht? Wenn er in solchen Fällen die laufende PHP-CGI instanz killt, ist das ja kein so großes Problem, wie wenn der Datenbankserver dran glauben muss. Vor allem würde ich solchen Situationen aber generell gerne vorbeugen. Anpassung von MaxClients und der Grenzwerte von mod_evasive ist dabei keine Option, weil das ja auch Zugriffe auf statische Resourcen betreffen würde, die so gut wie keinen Speicher benötigen. Das Problem entsteht ja nur dann, wenn resourcenlastige Scripte innerhalb von Sekundenbruchteilen dreißig mal gestartet werden.
Die Kiste hat ein Giga RAM und ein Giga Swap. Apache MaxClients 150, MySQL max_connections 200.