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.