Mettere il sito dietro una CDN è come assumere un buttafuori davanti all'ingresso. Funziona benissimo, finché qualcuno non scopre che sul retro c'è una porta aperta. La porta sul retro, per un sito, è l'indirizzo IP del server d'origine: se chi attacca lo conosce, può colpirlo direttamente e la CDN non vede nemmeno passare il traffico.
Come funziona, in breve
Senza CDN, il dominio punta all'IP del tuo server e ogni visitatore si collega lì. Con la CDN, il dominio punta ai nodi della rete: i visitatori si collegano ai nodi, e sono i nodi a chiedere le pagine al tuo server.
Se tutto è configurato bene, nessuno all'esterno ha bisogno di sapere l'IP del server. Se è configurato male, basta conoscerlo per saltare tutte le protezioni.
Come si scopre l'IP vero di un sito
Chi attacca ha diversi modi per trovarlo, quasi tutti banali.
Lo storico dei DNS
Esistono servizi che registrano da anni i record DNS di milioni di domini. Se il sito puntava direttamente al server prima di passare alla CDN, l'IP di allora è ancora lì, consultabile da chiunque. Se nel frattempo non l'hai cambiato, è ancora quello giusto.
Altri nomi dello stesso dominio
mail.tuosito.it, ftp.tuosito.it, cpanel.tuosito.it, webmail.tuosito.it: spesso puntano allo stesso server del sito, e non passano dalla CDN. Basta provarli uno per uno.
Il record MX e le email
Se la posta del dominio è gestita dallo stesso server del sito, il record MX lo indica. E le email che il sito invia (conferme d'ordine, reset della password) portano nelle intestazioni l'indirizzo del server che le ha spedite.
Il certificato HTTPS
Ci sono motori che scansionano tutto Internet e registrano quale certificato risponde a ogni indirizzo IP. Se il tuo server risponde con il certificato di tuosito.it a chiunque si colleghi al suo IP, si trova in pochi secondi.
Il sito stesso
Alcune funzioni fanno uscire richieste dal server verso l'esterno: i pingback di WordPress, i webhook, le immagini caricate da un indirizzo, le anteprime dei link. Chi controlla il sito di destinazione vede arrivare la richiesta dal tuo IP.
Come chiudere la porta sul retro
1. Il server risponde solo ai nodi
È la misura più importante, e rende quasi inutili tutte le altre scoperte: nel firewall del server lascia aperte le porte 80 e 443 solo agli indirizzi dei nodi della CDN. Chi conosce l'IP e prova a collegarsi non riceve nemmeno una risposta.
Con ufw, per ogni nodo:
sudo ufw allow proto tcp from INDIRIZZO_DEL_NODO to any port 80,443
e poi si tolgono le regole che aprivano 80 e 443 a tutti. L'accesso SSH resta a parte, meglio se limitato ai tuoi indirizzi o con sole chiavi.
Con 1PrimeCDN l'elenco aggiornato dei nodi è nel pannello, in Pull Zone → Origin, insieme ai comandi pronti per Nginx e alle righe per WordPress su hosting condiviso.
2. Tutti i nomi passano dalla CDN, o puntano altrove
Controlla ogni record del dominio. Quelli che servono al sito (il dominio principale, www) vanno in CDN. Quelli che non possono passarci (la posta, per esempio) dovrebbero puntare a un servizio diverso dal server del sito: un servizio di posta dedicato, non lo stesso server.
3. Cambia IP dopo il passaggio
Se il sito ha puntato per anni direttamente al server, il suo IP è nello storico dei DNS. Dopo aver messo tutto dietro la CDN e chiuso il firewall, chiedere un nuovo indirizzo all'hosting è la soluzione definitiva: il nuovo IP non compare da nessuna parte.
4. Non rispondere a chi non si presenta
Configura il server web in modo che, se qualcuno si collega all'IP senza indicare il nome del sito, riceva un errore generico e non il tuo sito o il tuo certificato.
5. Controlla cosa esce dal server
Spegni i pingback di WordPress se non li usi, fai partire le email da un servizio dedicato e verifica i plugin che contattano servizi esterni.
Lo abbiamo fatto anche noi
Il pannello di 1PrimeCDN e il servizio di posta dei nostri pannelli girano su un server che, fino a poco tempo fa, aveva l'IP pubblicato nel DNS. Lo abbiamo messo dietro i nostri stessi nodi e chiuso il firewall: oggi quel server accetta connessioni web solo dai nodi della rete, e il suo DNS solo dai nostri nameserver. È la stessa procedura che consigliamo ai clienti.
In sintesi
- una CDN protegge solo se il traffico passa da lei;
- l'IP del server si trova facilmente: storico DNS, sottodomini, email, certificati;
- la difesa vera è il firewall che accetta solo i nodi;
- se l'IP è noto da tempo, cambialo dopo il passaggio.
Se l'attacco continua anche con la CDN attiva, scrivici dalla pagina «Sei sotto attacco?»: controlliamo insieme da dove arriva.
Vuoi un sito che regge anche sotto attacco?
1PrimeCDN mette il tuo sito dietro 8 nodi europei con cache, HTTPS e lo Shield contro bot e attacchi, a canone fisso dal 9,90 € al mese.