Come prevenire un attacco DDoS con Nginx

Cum să preveniți un atac DDoS cu Nginx
⏱️ 4 min read

Gli attacchi Distributed Denial of Service o “DDoS” sequestrano le risorse di un server attraverso tattiche di comunicazione digitale abusive. Questi tipi di attacchi sono i raid organizzati del mondo dei computer. Numerose fastidiose azioni anti-simili si combinano per creare una minaccia abbastanza formidabile da fermare un server esperto nelle sue tracce. Peggio ancora, ci sono molti mezzi per condurre una simile guerriglia web contro server ignari. Fortunatamente, i server possono essere configurati per reagire.

Nginx, un sistema server molto popolare per macchine Unix, è dotato di funzionalità integrate sufficienti per limitare notevolmente l’efficacia degli attacchi DDoS.

Ecco alcune opzioni efficaci per gestire tali minacce su un server alimentato da Nginx:

Eseguire il backup del file di configurazione

Prima di modificare qualsiasi impostazione, assicurati di eseguire un rapido backup della configurazione del tuo server. Il seguente comando funziona per questo:

Una volta fatto, sei pronto per andare avanti.

Controllo del traffico

Tenere d’occhio il traffico del tuo server semplifica l’ottimizzazione della sicurezza e l’implementazione di tattiche aggiuntive su tutta la linea. Nginx ha un modulo creato appositamente per questo.

Imposta una pagina di stato

Nginx viene tipicamente fornito con un modulo denominato “stub status” (http_stub_status_module) che consente di integrare questo tipo di funzionalità nell’ambiente del server piuttosto facilmente. Innanzitutto, verificalo utilizzando il seguente comando:

Modulo di ricerca Nginx

Oppure conduci quanto sopra a grep per trovarlo più velocemente:

Modulo Grep Nginx

Se il tuo output assomiglia all’output sopra, sei a posto; altrimenti, dovrai reinstallare o ricompilare la tua installazione di Nginx con il modulo incluso.

Configurare una pagina di stato che puoi controllare è semplice, ma dovrai anche limitare l’accesso ad essa al minimo (la tua macchina) per mantenerla sicura. Inizia aprendo il file di configurazione principale del tuo server che si trova in “/etc/nginx/nginx.conf”.

File di configurazione Nginx

Aprilo e aggiungi il seguente codice alla “direttiva http” per attivare il modulo, sostituendo le tue informazioni invece di “localhost”, “/ status_page” e “127.0.0.1”:

Nota: avrai bisogno dei privilegi sudo per modificare questo file.

Codice di stato Nginx

Ora prova la tua configurazione:

Nginx Test Config

Se tutto va bene, invia al tuo server un segnale di ricarica:

Server di ricarica Nginx

Per accedere alla tua pagina di stato, visita la tua posizione nome_server seguita da “/ status_page” in un browser web o utilizzando uno strumento da riga di comando come curl. (Questo è utile se la cache del browser non si aggiorna automaticamente.) Di seguito è riportato il comando curl per accedere alla pagina nei nostri esempi:

Stato del ricciolo di Nginx

Nel browser, quanto sopra appare come la seguente immagine.

Stato del browser Nginx

Controlla i log di accesso

Se noti del traffico anomalo durante il controllo della pagina di stato configurata sopra, potrebbe essere una buona idea controllare il registro degli accessi del server. Questo può essere trovato su “/var/log/nginx/access.log”. Il registro elenca i metodi HTTP utilizzati, la data / ora dei tentativi di accesso, i programmi utente e le pagine visitate.

Registro di accesso di Nginx

Limitazione delle connessioni

Tra le tante tattiche utili che vale la pena provare per respingere gli attacchi DDoS, una delle più semplici ed efficaci è la limitazione delle velocità di traffico in entrata.

Idealmente, dovresti limitare l’accesso quel tanto che basta per impedire ai bot dannosi di sopraffare il tuo server a tassi disumani mantenendo tariffe ragionevoli per i client umani. In Nginx, questo può essere ottenuto con il limit_req_zone e limit_req direttive. Il codice seguente imposta i vincoli di memoria e velocità per l’utilizzo in qualsiasi posizione in cui il server è configurato per mostrare:

“Zona” specifica il nome e la dimensione (in Megabyte in questo caso) dello spazio in memoria in cui sono archiviate le richieste dell’utente. “Rate” stabilisce il numero totale di richieste che Nginx accetterà ogni secondo (10 in questo esempio). Pensa a questo codice come a una regola e al codice che segue come all’uso di quella regola:

Il codice sopra in realtà fa qualcosa di più che implementare la nostra regola di limitazione; aggiunge anche una piccola coda di un massimo di venti richieste per gestire dolcemente le connessioni legittime che si presentano un po ‘più velocemente del normale, superando sia la regola che la coda si traduce in un errore 503 per il client. Ecco come appaiono entrambe le direttive in nginx.conf:

Codice limite Nginx

Indirizzo IP nella blacklist

Se riesci a ottenere l’indirizzo IP che sta causando attacchi DDoS al tuo server, puoi semplicemente inserirlo nella blacklist e interrompere qualsiasi connessione proveniente da questo indirizzo IP.

Aggiungi il seguente codice alla tua direttiva server:

Richiesta di blocco a determinati file

Se l’attacco DDoS prende di mira determinati file sul tuo server, ad esempio il file xmlrpc.php su WordPress (questo è un file fortemente mirato nella maggior parte dei server WordPress), puoi bloccare tutte le richieste ad esso. Aggiungi questo codice alla direttiva del tuo server:

Segui la procedura sopra e sarai in grado di limitare la maggior parte degli attacchi DDoS. Assicurati di controllare il Documentazione di Nginx per ulteriori opzioni di sicurezza che puoi mettere in atto.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar di Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Potrebbero interessarti anche...

Subscribe
Notificami
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x