(Plesk) Server bzw. Webseite/Shop überlastet aufgrund eines Angriffs? – Erste Hilfe gegen Webserver-Flooding

(Plesk) Server bzw. Webseite/Shop überlastet aufgrund eines Angriffs? – Erste Hilfe gegen Webserver-Flooding

Euer Server liefert keine Webseiten mehr aus oder antwortet nur noch mit dem Error Code 502? Dann könnte es sich um einen Angriff auf Euren Server bzw. Eure Webseite/Shop handeln. Dieser wird insbesondere an Plesk-Fehlern wie z. B. „1024 worker_connections are not enough while connecting to upstream“ oder sehr vielen Anfragen mit dem mysteriösen Status Code „PRI * HTTP/2.0“ erkennbar.

Zur Zeit erfolgen vermehrt Angriffe – aus vermutlich Russland – gegen scheinbar wahllose ausgewählte Ziele in Deutschland.

Erste Sofortmaßnahme sollte das Aktivieren der Firewall für alle nicht unbedingt notwendigen Ports sein. Auch sollten der SSH und Plesk-Administrationsport geschlossen werden bzw. nur Eure (feste) IP-Adresse erlaubt sein.

Anschließend solltet Ihr versuchen die Quellen mit dem Befehl

netstat 

zu ermitteln. Diese Ausgabe lässt sich noch besser auswerten mit dem folgenden Befehl:

netstat -ant | egrep '(:80|:443) .*:.*ESTABLISHED' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

Dieser Befehl listet Euch alle IPs mit einer Verbindung zu Eurem Server auf und gibt zusätzlich die Anzahl der offenen Verbindungen an. So lassen sich Angreifer relativ leicht an der hohen Anzahl der Verbindungen erkennen.

Zusätzlich könnt Ihr die IP-Adresse auch über einen Who-Is-Dienst abfragen. Im nächsten Schritt könnt Ihr die IP-Adresse mit iptables blockieren, „2.2.2.2“ ist die Beispiel-Angreifer-IP-Adresse im folgenden Befehl:

iptables -I INPUT -s 2.2.2.2 -j DROP

Auch solltet Ihr sicherstellen das Fail2Ban und ModSecurity aktiviert ist – nur für den Fall der Fälle.

Hinweis: Nach einem Neustart sind die Regeln wieder gelöscht.

Ihr benötigt weitergehende Unterstützung weil Euer Server oder Euer Shop gerade angegriffen wird bzw. aus unerklärlichen Gründen nur eingeschränkt erreichbar ist? Dann schreibt mir einfach über mein Kontaktformular.

Ihr wollt eine ganze IP-Range mit iptables blockieren? Dies ist z. B. mit diesem Befehl möglich:

iptables -I INPUT -m iprange --src-range 24.152.57.0-24.152.57.255 -j DROP

Ihr benötigt eine umfangreiche Blockliste für iptables die Länder wie z. B. Russland und andere Bedrohungen umfasst?

Dann habe ich hier ein Shellskript zum Download für Euch (hier zum ungetesteten Shellskript der Blockliste).

Die Benutzung erfolgt auf eigene Gefahr! Ich habe nämlich noch nicht getestet ob diese umfangreiche Liste ein Problem darstellen könnte (weil Sie so groß ist).

Der Download unter Linux und die Ausführung selbst erfolgt mit

wget https://www.lautenbacher.io/wp-content/uploads/2022/03/blocklist.sh
chmod 775 ./blocklist.sh
./blocklist.sh

Sollte Euch die Blockliste geholfen haben schreibt in die Kommentare, dann stelle ich auch gerne ein Update bereit.

Anzahl der Worker erhöhen

Natürlich könnt Ihr auch versuchen die Anzahl der worker zu erhöhen, ermittelt hierzu zuerst die Anzahl der CPU-Kerne mit

cat /proc/cpuinfo |grep processor

Öffnet anschließend die Konfiguration

nano /etc/nginx/nginx.conf

und setzt worker_processes auf mindestens die Hälfte der CPU-Kerne.

worker_processes  4;

Die worker_connections können ebenfalls problemlos auf 2048 erhöht werden.

worker_connections  2048;

Die Anzahl der maximalen Verbindungen errechnet sich dann mit Prozesse * Verbindungen = maximale Anzahl der Verbindungen.

Danach muss der Service natürlich neu gestartet werden mit

service nginx restart

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert