Einer meiner LAMP-Server wurde kürzlich von einem Skript-Bot heruntergefahren, der nach Exploits suchte. So wie es aussah, wurden so viele Anfragen pro Sekunde gestellt, dass der RAM auf dem Server überlastet und meine gesamte Site für eine Stunde heruntergefahren wurde. Das "Attack" kam alles von einer einzigen IP-Adresse.
Wie kann ich also eine IP-Adresse, die in kurzer Zeit zu viele Treffer auf meinem LAMP-Server macht, automatisch und vorübergehend blockieren? Was ist das beste Tool für den Job, und sollte ich dies auf Betriebssystemebene oder über PHP lösen?
Versuchen Sie dies nicht mit PHP. Zum Zeitpunkt, an dem PHP beteiligt ist, ist es bereits zu spät - der Speicher wurde bereits zugewiesen.
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 möchten Sie iptables (Linux-Firewall) verwenden. Es gibt Tools wie Fail2Ban, die dies für Sie automatisieren können. Externe Firewall wäre besser.
Neben dem Versuch, beleidigende IP-Adressen zu sperren, sollten Sie versuchen, Ihre Ressourcen besser zu nutzen. Wenn eine Anfrage weniger Ressourcen beansprucht, dauert es länger, bis ein Angriff effektiv ist.
Apache verwendet auch viel Speicher. Wenn Sie mod_php verwenden, ist es noch schlimmer, da PHP in jedem untergeordneten Apache-Prozess geladen wird. Dies bedeutet, dass auch Anforderungen an statischen Inhalt (CSS / JS / Images) PHP laden, auch 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 (Ersatz für Apache).
Wenn Sie bei Apache bleiben möchten, sollten Sie ihn so gut wie möglich optimieren. Deaktivieren Sie .htaccess. Hier ist eine gute Erklärung, warum .
quelle
Um den HTTP-Verkehr zu steuern oder zu blockieren, können Sie Folgendes verwenden:
Beachten Sie jedoch, dass diese Tools möglicherweise auch Webspider blockieren / verlangsamen und sich daher auf die SEO auswirken können.
quelle
ossec kann dies automatisch und transparent basierend auf den Syslogs tun.
quelle
man iptables
was jede Flagge bedeutet und wie sie zusammenarbeiten.NoooBS,
--- Flut ---
iptables -N logdrop iptables -A logdrop -m kürzlich --set --name schwarze Liste
iptables -A logdrop -m limit --limit 1 / s --limit-burst 1 -j LOG --log-Präfix "Flood:"
iptables -A logdrop -j DROP
iptables -N ddos iptables -A ddos -m kürzlich --rcheck --name blacklist --seconds 300 --hitcount 1 -j logdrop iptables -A ddos -m kürzlich --set --name erneut iptables -A ddos -m kürzlich --update --name again --seconds 60 --hitcount 2 -j logdrop iptables -A ddos -j RETURN
quelle