Perché conta
Il firewall blocca ciò che non vuoi raggiungibile, ma la
difesa migliore è che il servizio non ascolti affatto dove non deve. Un database, una cache, un pannello
di amministrazione interni spesso non hanno alcun bisogno di essere raggiungibili dalla rete: devono
parlare solo con processi sullo stesso host. La differenza tra legarli a 0.0.0.0 (tutte le interfacce)
o a 127.0.0.1 (solo loopback) è enorme — e si risolve con una riga di configurazione.
Vedere cosa ascolta
ss (il moderno sostituto di netstat) mostra i socket in ascolto, su quale indirizzo e di quale
processo.
|
|
La colonna da leggere è Local Address:
|
|
Un 0.0.0.0 su un servizio che dovrebbe essere interno è il bersaglio da correggere.
Legare al loopback
La correzione sta nella configurazione del servizio. Esempi tipici:
|
|
Dopo il riavvio del servizio, ss -tulpn deve mostrare 127.0.0.1 al posto di 0.0.0.0. Se un
processo esterno deve comunque raggiungerlo, la via corretta non è aprirlo al mondo ma esporlo tramite
un reverse proxy o un tunnel, controllando l’accesso a monte.
Il ragionamento completo
|
|
Questo intreccia i tre strumenti: spegnere (systemd), legare bene (binding), filtrare (nftables). Nessuno dei tre, da solo, copre tutto; insieme riducono la superficie di rete al minimo reale.
Verifica dall’esterno
Il modo più onesto di sapere cosa è esposto è guardare da fuori, come farebbe un attaccante:
|
|
Ciò che nmap vede aperto dall’esterno è la tua vera superficie di rete pubblica. Idealmente coincide
con la manciata di porte che intendi pubblicare, e nient’altro.
Conclusione
Scoprire cosa ascolta con ss, legare al loopback tutto ciò che è interno, e verificare dall’esterno:
la superficie di rete si riduce al minimo con poche modifiche di binding. Un sistema sicuro va però
anche mantenuto sicuro nel tempo: il software invecchia e le vulnerabilità emergono. La manutenzione è
il prossimo tema — aggiornamenti e gestione pacchetti.