GNU/Linux >> Linux Esercitazione >  >> Linux

Come Bloccare Automaticamente e Temporaneamente un indirizzo IP effettuando troppi hit sul Server in un breve lasso di tempo?

Soluzione 1:

Fail2Ban. La soluzione gold standard/predefinita a questo problema sulla piattaforma Linux.

Soluzione 2:

Dovresti evitare di provare a farlo con PHP. Quando PHP viene coinvolto, è già troppo tardi:la memoria è già stata allocata.

Puoi vietare gli indirizzi IP a qualsiasi livello, ma il livello più basso che utilizza la minor quantità di risorse è il percorso che desideri intraprendere. Di solito è il firewall. Per lo meno, iptables (linux firewall) è ciò che vuoi usare. Ci sono strumenti che altri hanno menzionato, come Fail2Ban, che possono automatizzarlo per te. Sarebbe meglio un firewall esterno.

Oltre a provare a vietare gli indirizzi IP offensivi, dovresti provare a fare un uso migliore delle tue risorse. Se una richiesta richiede meno risorse, ci vorrà più tempo perché un attacco sia efficace.

Apache usa anche molta memoria. Se stai usando mod_php, è anche peggio perché PHP viene caricato all'interno di ogni processo figlio di Apache. Ciò significa che anche le richieste a contenuto statico (css/js/images) stanno caricando PHP anche quando PHP non viene utilizzato. Puoi risolvere questo problema usando invece FastCGI. mod_fcgid è una buona opzione.

Esistono anche altri server Web più efficienti in termini di risorse. Nginx è il mio preferito. C'è anche Lighttpd. A molte persone piace Litespeed (calo in sostituzione di Apache).

Se vuoi rimanere con Apache, considera di ottimizzarlo nel miglior modo possibile. Prendi in considerazione la possibilità di disabilitare .htaccess. Ecco una buona spiegazione del perché.

Soluzione 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 può fare questo tipo di cose automaticamente e in modo trasparente sulla base dei syslogs.

Soluzione 4:

Per controllare o bloccare il traffico http, puoi utilizzare :

  • modulo apache.
  • iptable
  • fail2ban come affermato qui da HopelessN0ob.

Tuttavia, tieni presente che questi strumenti potrebbero anche bloccare/rallentare i webspider e quindi avere un impatto sulla SEO.


Linux
  1. Come bloccare l'indirizzo IP su un server Linux

  2. Come ottenere il proprio indirizzo IP e salvarlo in una variabile in uno script di shell?

  3. Come monitorare il traffico TCP tra l'host locale e l'indirizzo IP?

  4. Come aggirare il limite di Linux Too Many Arguments

  5. Come posso determinare la dimensione del blocco di una partizione ext3 su Linux?

Come Installare Linux, Apache, MySQL e PHP (LAMP) su un Cloud Server Ubuntu 20.04

Come installare Nginx, MySQL e PHP (LEMP) su un server Ubuntu 15.04

Come installare Linux, Apache, MySQL e PHP (LAMP) su un server cloud Ubuntu 12.04

Come installare il server Web OpenLiteSpeed ​​con MariaDB e PHP

Come installare e configurare Caddy Web Server con PHP su Rocky Linux 8

Come installare e configurare il firewall CSF per Linux