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 you@example.com
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 nginx
quando visiti il tuo sito web, dovresti visualizzare un errore simile a ERR_EMPTY_RESPONSE.