OffshoreVps
Sicurezza19 ott 20268 min di letturaDi il team di OffshoreVps

Nascondi l’IP del tuo server di origine: proxy, CDN e perdite

Una CDN nasconde il tuo server solo se nient’altro lo tradisce. Scopri come gli IP di origine trapelano da cronologia DNS, posta e certificati e come blindare l’origine.

Mettere una CDN o un reverse proxy davanti a un sito assorbe il traffico e nasconde l'indirizzo del server, ma solo finché l'IP reale resta sconosciuto. Gli attaccanti raramente violano la CDN. Cercano direttamente l'origine. Questa guida elenca dove le origini trapelano e come fare in modo che l'origine rifiuti tutto tranne il tuo proxy.

Illustrazione di uno scudo e un lucchetto con le etichette Proxy davanti, Allow-list dell’origine, Nessuna perdita, che rappresenta come mantenere segreto l’IP del tuo server di origine
Le idee chiave trattate in questo articolo.

Come vengono trovate le origini

  • Cronologia DNS: alcuni servizi conservano i vecchi record, quindi un IP usato prima di aggiungere la CDN è ancora elencato.
  • Sottodomini: record come mail., ftp. o dev. che puntano direttamente al server.
  • Intestazioni email: la posta in uscita dallo stesso host rivela il suo IP nelle intestazioni.
  • Certificate transparency e scansioni di internet: gli scanner associano un certificato a ogni IP che lo serve.
  • Comportamento dell'applicazione: webhook, scaricatori di immagini e funzioni "controlla questo URL" si connettono all'esterno dall'origine.

Passo 1: parti da zero

Se il server è già stato esposto, la soluzione più sicura è un nuovo IP, oppure un nuovo server con migrazione. Nascondere un indirizzo già pubblico non funziona. Pianifica il passaggio con la guida alla migrazione senza downtime.

I passaggi di questa guida in ordine: 1. Come vengono trovate le origini; 2. parti da zero; 3. accetta traffico solo dal proxy; 4. separa tutto ciò che può far trapelare informazioni; 5. testa come un attaccante
I passaggi di questa guida, in ordine.

Passo 2: accetta traffico solo dal proxy

Consenti le porte web solo dagli intervalli pubblicati dal proxy e nient'altro. Con UFW appare come segue, usando gli intervalli che il tuo provider pubblica.

sudo ufw default deny incoming
sudo ufw allow OpenSSH
for ip in $(cat proxy-ranges.txt); do sudo ufw allow from "$ip" to any port 443 proto tcp; done
sudo ufw enable

Aggiorna l'elenco periodicamente, perché gli intervalli cambiano. Per una garanzia maggiore usa le authenticated origin pull (mutual TLS) così Nginx rifiuta qualsiasi client senza il certificato del proxy.

Passo 3: separa tutto ciò che può far trapelare l'origine

  • Invia la posta tramite un host o relay diverso, mai dall'origine.
  • Tieni i sottodomini non web lontani dall'IP dell'origine.
  • Fai passare le richieste in uscita dell'applicazione attraverso un proxy o un worker separato.
  • Servi un server block Nginx predefinito che restituisce una risposta vuota per un Host sconosciuto, così una scansione del solo IP non mostra nulla.
server {
    listen 443 ssl default_server;
    ssl_reject_handshake on;
}

Passo 4: testa come un attaccante

Cerca il tuo dominio negli strumenti di cronologia DNS, scansiona il tuo intervallo di IP alla ricerca del certificato e controlla le intestazioni di un messaggio di prova. Se uno di questi mostra l'origine, cambia IP e ripeti.

Ricorda cosa fa e cosa non fa: protegge la disponibilità e la riservatezza dell'indirizzo. Non nasconde chi possiede l'account. Per questo leggi quanto è davvero anonimo l'hosting anonimo, e per gli attacchi che superano il livello di rete vedi le difese Layer 7.