Come proteggere un VPS dagli attacchi DDoS
Un attacco DDoS (distributed denial-of-service) inonda un server o la sua connessione di rete con traffico, fino a impedire agli utenti reali di accedere. Alcuni attacchi sono troppo grandi per essere gestiti dal solo server, quindi la protezione funziona meglio a più livelli: prima il filtraggio sul perimetro della rete, poi firewall e impostazioni applicative sul VPS. ONIE protegge cloud server a Ho Chi Minh City con DDoS Shield sul perimetro della rete senza costi aggiuntivi, e puoi attivare un VPS con protezione DDoS in pochi minuti.
Tipi di attacco
- Volumetrici (layer 3 e 4): inondazioni di pacchetti che saturano il collegamento di rete, ad esempio flood UDP.
- Attacchi al protocollo: abuso della gestione delle connessioni, come i SYN flood che riempiono la tabella delle connessioni.
- Livello applicativo (layer 7): molte richieste HTTP dall'aspetto valido che esauriscono il web server o il database.
Ogni tipo richiede una difesa diversa. Il traffico volumetrico va bloccato prima che raggiunga il server; i flood applicativi si possono ridurre direttamente sul server.
1. Filtrare sul perimetro della rete
Il filtraggio perimetrale scarta il traffico malevolo prima che raggiunga il VPS, così il collegamento non viene saturato. Con DDoS Shield il filtraggio avviene sul perimetro della rete tramite XDP/eBPF, e la console mostra traffico ed eventi di attacco per ogni IP. Chiedi a ogni provider che valuti cosa è incluso, dove avviene il filtraggio e se comporta costi aggiuntivi.
2. Chiudi ciò che non usi
sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enableNon esporre database o pannelli di amministrazione su internet. Associali a 127.0.0.1 oppure a una rete privata.
3. Ottimizza il kernel contro i SYN flood
I SYN cookie sono attivi per impostazione predefinita nella maggior parte delle distribuzioni. Verifica con:
sysctl net.ipv4.tcp_syncookiesMantieni limitate le altre modifiche al kernel e testale, perché valori errati possono compromettere il traffico normale.
4. Limita le richieste in Nginx
Nel blocco http:
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=connperip:10m;Nel blocco server o location:
limit_req zone=perip burst=20 nodelay;
limit_conn connperip 20;Ricarica con sudo nginx -t && sudo systemctl reload nginx. Servi i file statici dalla cache e usa un plugin di caching su WordPress per ridurre il costo di ogni richiesta. Vedi installare WordPress con Nginx.
5. Monitora il traffico
ss -s
sudo ss -ntu state established | wc -l
sudo apt install -y nload && nloadUn improvviso aumento di connessioni o di banda, oppure un server lento con basso utilizzo della CPU, può indicare un attacco. Configura degli avvisi per accorgerti in anticipo.
6. Checklist in caso di incidente
- Verifica dalla console se il traffico è un attacco o un picco reale.
- Controlla gli eventi di attacco e l'IP colpito.
- Blocca gli indirizzi sorgente abusivi o gli intervalli che riesci a identificare.
- Attiva limiti di richiesta più severi oppure una pagina di manutenzione.
- Contatta il supporto del provider indicando orario e IP.
- Successivamente, analizza i log e aggiorna questo piano. Mantieni aggiornati backup e snapshot.
Domande frequenti
Un firewall sul VPS può fermare un DDoS di grandi dimensioni?
Non da solo. Se il traffico satura il collegamento di rete, il server non può filtrarlo. Serve un filtraggio a monte del server.
Un CDN aiuta?
Per i siti web, un CDN o un reverse proxy può assorbire il traffico web, purché l'IP reale del server non sia esposto nei record DNS o negli header delle email.
Serve un piano speciale per la protezione DDoS?
Dipende dal provider. Verifica cosa è incluso nel tuo piano e nella tua location.