GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie blockiert man automatisch und vorübergehend eine IP-Adresse, die in kurzer Zeit zu viele Zugriffe auf den Server verursacht?

Lösung 1:

Fail2Ban. Der Goldstandard/Standardlösung für dieses Problem auf der Linux-Plattform.

Lösung 2:

Sie sollten es vermeiden, dies mit PHP zu versuchen. Bis sich PHP einmischt, ist es bereits zu spät – der Speicher wurde bereits allokiert.

Sie können IP-Adressen auf jeder Ebene sperren, aber die niedrigste Ebene, die am wenigsten Ressourcen verbraucht, ist die Route, die Sie einschlagen möchten. Dies ist normalerweise die Firewall. Zumindest ist iptables (Linux-Firewall) das, was Sie verwenden möchten. Es gibt Tools, die andere erwähnt haben, wie z. B. Fail2Ban, die dies für Sie automatisieren können. Externe Firewall wäre besser.

Neben dem Versuch, anstößige IP-Adressen zu sperren, sollten Sie versuchen, Ihre Ressourcen besser zu nutzen. Wenn eine Anfrage weniger Ressourcen benötigt, dauert es länger, bis ein Angriff wirksam ist.

Apache verbraucht auch viel Speicher. Wenn Sie mod_php verwenden, ist es sogar noch schlimmer, weil PHP in jeden untergeordneten Apache-Prozess geladen wird. Das bedeutet, dass sogar Anforderungen an statische Inhalte (css/js/images) PHP laden, selbst wenn PHP nicht verwendet wird. Sie können dieses Problem lösen, indem Sie stattdessen FastCGI verwenden. mod_fcgid ist eine gute Option.

Es gibt auch andere Webserver, die ressourceneffizienter sind. Nginx ist mein Favorit. Es gibt auch Lighttpd. Viele Leute mögen Litespeed (Drop-in-Ersatz für Apache).

Wenn Sie bei Apache bleiben möchten, sollten Sie es so gut wie möglich tunen. Erwägen Sie, .htaccess zu deaktivieren. Hier ist eine gute Erklärung warum.

Lösung 3:

iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

ossec kann so etwas automatisch und transparent auf der Grundlage der Syslogs erledigen.

Lösung 4:

Um HTTP-Datenverkehr zu kontrollieren oder zu blockieren, können Sie Folgendes verwenden:

  • Apache-Modul.
  • iptable
  • fail2ban wie hier von HopelessN0ob angegeben.

Beachten Sie jedoch, dass diese Tools auch Webspider blockieren/verlangsamen und sich daher auf die Suchmaschinenoptimierung auswirken können.


Linux
  1. Warum hat der Server meine IP blockiert?

  2. Wie überwacht man den TCP-Verkehr zwischen dem Localhost und der IP-Adresse?

  3. Wie kann ich den Port und die IP-Adresse mit Firewalld, IP-Tabellen und UFW unter Linux zulassen oder blockieren?

  4. So umgehen Sie das Linux-Limit zu viele Argumente

  5. Wie bestimme ich die Blockgröße einer ext3-Partition unter Linux?

So installieren Sie Linux, Apache, MySQL und PHP (LAMP) auf einem Ubuntu 20.04 Cloud Server

So installieren Sie Nginx, MySQL und PHP (LEMP) auf einem Ubuntu 15.04-Server

So installieren Sie Linux, Apache, MySQL und PHP (LAMP) auf einem Ubuntu 12.04-Cloud-Server

So installieren Sie den OpenLiteSpeed-Webserver mit MariaDB und PHP

So installieren und konfigurieren Sie den Caddy Web Server mit PHP unter Rocky Linux 8

So installieren und konfigurieren Sie die CSF-Firewall für Linux