Come bloccare i bot e prevenire DDOS su Nginx

In questo tutorial imparerai come bloccare bot dannosi, spam di referrer e prevenire DDOS sul tuo server web Nginx. Per raggiungere questo obiettivo, utilizzeremo il progetto open source chiamato Nginx Ultimate Bad Bot e Referrer Blocker.

Alla fine di questo tutorial, il tuo server Nginx bloccherà user-agent indesiderati, referrer di spam, adware, malware, ransomware e clickjacker.

1. Scarica Nginx Bad Bot Blocker

Per scaricare Ultimate Bad Bot Blocker, esegui i seguenti comandi sul tuo sistema

sudo wget  -O /usr/local/sbin/install-ngxblocker
sudo chmod +x /usr/local/sbin/install-ngxblocker
sudo install-ngxblocker -x
sudo chmod +x /usr/local/sbin/setup-ngxblocker
sudo chmod +x /usr/local/sbin/update-ngxblocker
sudo setup-ngxblocker -x

2. Controllare il corretto posizionamento degli include

A volte, soprattutto se hai installato un certificato SSL Let’s Encrypt, lo script di installazione riportato sopra inserirà erroneamente gli include nel file di configurazione Nginx. Assicurati che “Nginx Bad Bot Blocker Include” venga prima del primo blocco di posizione nei file di configurazione in /etc/nginx/sites-available/.

# configuration of the server
server {
    server_name micro.domains www.micro.domains;
    root /home/microdomains/public/;
    ##
    # Nginx Bad Bot Blocker Includes
    # REPO: 
    ##
    include /etc/nginx/bots.d/ddos.conf;
    include /etc/nginx/bots.d/blockbots.conf;
    location /static {
        alias /home/microdomains/public/static;
    }
    ....

3. Come aggiornare automaticamente Nginx Bad Bot Blocker

Esegui il sudo crontab -e comando e aggiungi la seguente istruzione per aggiornare automaticamente Nginx Bad Bot Blocker ogni giorno alle 22:00, ora del server. Facoltativamente è possibile aggiungere il -e contrassegnare e fornire un indirizzo email per le notifiche.

00 22 * * * /usr/local/sbin/update-ngxblocker -e [email protected]

4. Configura Nginx Bad Bot Blocker

Le regole predefinite per Nginx Bad Bot Blocker si trovano in /etc/nginx/conf.d/globalblacklist.conf. Non modificare questo file! Se desideri aggiungere regole personalizzate, puoi farlo in uno dei seguenti file di configurazione all’indirizzo /etc/nginx/bots.d/.

  • bad-referrer-words.conf
  • blacklist-ips.conf
  • blacklist-user-agents.conf
  • blockbot.conf
  • custom-bad-referreres.conf
  • ddos.conf
  • whitelist-domains.conf
  • whitelist-ips.conf

5. Provalo

Da un altro indirizzo IP, puoi eseguire uno dei seguenti comandi curl per vedere se il blocco funziona. Se ricevi una risposta vuota dal server, funziona come previsto.

curl -A "Xenu Link Sleuth/1.3.8" -I 
curl -I  -e http://zx6.ru

Come prova temporanea, puoi anche inserirti nella lista nera aggiungendo il tuo indirizzo IP a /etc/nginx/bots.d/blacklist-ips.conf. Dopo aver riavviato il server Nginx per applicare le modifiche systemctl restart nginxquando visiti il tuo sito web, dovresti visualizzare un errore simile a ERR_EMPTY_RESPONSE.

Autore

Classe Novanta3, Fondatore di TrgtKLS. Appassionato in Sec IT & Tech. Expert per l'amministrazione web server e supporto in Back-&, ottimizzazione e manutenzione di esso. • Metà Free e Metà Freelancer • [email protected]

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *