Un’installazione Linux predefinita è comoda, non sicura. L’hardening del server Linux è il processo di riduzione della superficie di attacco di un server e di irrigidimento della sua configurazione, in modo che l’inevitabile scansione proveniente da internet non trovi nulla di facilmente sfruttabile. Questa guida illustra i passaggi di hardening che contano di più nel 2026, in un ragionevole ordine di priorità.
TL;DR
- SSH è la tua più grande superficie esposta: usa l’autenticazione a chiave, disabilita il login root e le password e limita la frequenza delle connessioni
- Esegui un firewall che nega tutto per impostazione predefinita e disattiva ogni servizio e porta che non ti serve
- Mantieni il sistema aggiornato automaticamente e applica l’hardening di kernel e account
- Usa SELinux o AppArmor, abilita l’audit dei log e misurati rispetto al CIS Benchmark per la tua distribuzione
1. Blinda SSH
SSH è il modo in cui amministri il server e il modo in cui gli aggressori cercano di entrare. Rafforzalo per primo.
- Usa l’autenticazione a chiave e disabilita completamente l’autenticazione con password (
PasswordAuthentication no). - Disabilita il login root diretto (
PermitRootLogin no); accedi come utente normale e usasudo. - Limita quali utenti possono accedere via SSH.
- Limita la frequenza e rallenta i tentativi falliti ripetuti (ad esempio con
fail2ban) per attenuare gli attacchi di forza bruta. - Mantieni SSH su una versione supportata e disabilita i cifrari deboli e i protocolli obsoleti.
2. Esegui un firewall che nega per impostazione predefinita
- Configura il firewall (
nftables,ufw,firewalldo CSF) per negare per impostazione predefinita e consentire solo le porte che effettivamente servi. - Esponi il minimo: tipicamente SSH (limitato), HTTP e HTTPS per un server web, e nient’altro.
- Limita le porte di gestione a indirizzi sorgente noti o a una VPN dove possibile.
3. Minimizza la superficie di attacco
- Disinstalla o disabilita i servizi e i daemon che non usi. Ogni servizio in ascolto è un potenziale punto di ingresso.
- Verifica le porte aperte (
ss -tulpn) e conferma che ognuna sia intenzionale. - Rimuovi i pacchetti e i compilatori non necessari dagli host di produzione.
4. Mantieni il sistema aggiornato
- Abilita gli aggiornamenti di sicurezza automatici (
unattended-upgradessu Debian/Ubuntu,dnf-automaticsui sistemi della famiglia RHEL). - Tieni traccia delle date di fine vita della tua distribuzione e aggiorna prima che il supporto termini. Eseguire un sistema operativo non supportato è un rischio permanente.
5. Rafforza account e accessi
- Applica policy robuste per password e account e rimuovi gli account inutilizzati.
- Usa
sudocon il privilegio minimo invece di un accesso root condiviso, e registra l’uso di sudo. - Imposta valori
umaskpredefiniti ragionevoli e blocca i permessi sui file sensibili. - Valuta l’autenticazione a due fattori per gli accessi amministrativi.
6. Applica l’hardening di kernel e rete
- Regola le impostazioni
sysctlper ridurre il rischio a livello di rete (ad esempio disabilitando l’IP source routing e i redirect ICMP, e abilitando il reverse-path filtering). - Limita l’accesso ai log e ai puntatori del kernel e abilita le mitigazioni degli exploit disponibili.
- Disabilita i moduli del kernel e i filesystem inutilizzati.
7. Abilita il controllo degli accessi obbligatorio
- Mantieni SELinux (famiglia RHEL) o AppArmor (Debian/Ubuntu) abilitato e in modalità enforcing.
- Resisti alla tentazione di disabilitarlo per “far funzionare le cose”; regola o scrivi invece una policy. Il MAC contiene i danni quando un servizio viene compromesso.
8. Logging, auditing e integrità dei file
- Abilita il daemon di audit di Linux (
auditd) per registrare gli eventi rilevanti per la sicurezza. - Centralizza i log al di fuori dell’host, in modo che un aggressore non possa semplicemente cancellarli.
- Implementa il monitoraggio dell’integrità dei file (ad esempio AIDE) per rilevare modifiche inattese ai file di sistema.
- Rivedi i log regolarmente, oppure convogliali nel monitoraggio e negli alert.
9. Misurati rispetto al CIS Benchmark
Il Center for Internet Security (CIS) pubblica benchmark di hardening dettagliati e specifici per distribuzione. Usa il CIS Benchmark per il tuo sistema operativo come checklist oggettiva e analisi dei gap; trasforma “pensiamo sia rafforzato” in una baseline misurabile su cui puoi fare audit nel tempo.
Punti chiave
- Inizia da SSH: solo chiavi, nessun login root, limitazione della frequenza.
- Firewall che nega per impostazione predefinita e rimozione di ogni servizio non necessario.
- Automatizza le patch e applica l’hardening di account, kernel e MAC (SELinux/AppArmor).
- Abilita l’audit dei log e l’integrità dei file, e confrontati con il CIS per rendere l’hardening misurabile.
Ottieni un hardening del server Linux da esperti
Rafforzare un singolo server a mano è fattibile; farlo in modo coerente su un intero parco server, senza rompere le applicazioni, è dove l’esperienza fa la differenza. Il servizio di hardening del server Linux copre il blocco SSH, l’architettura del firewall, il tuning del kernel, la policy SELinux/AppArmor, l’analisi dei gap CIS e un runbook di manutenzione. Per una panoramica incentrata sul firewall, la guida alla messa in sicurezza dei server Linux con CSF , più datata ma ancora utile, tratta in modo approfondito ConfigServer Security & Firewall.
Domande frequenti (FAQ)
Qual è il passaggio di hardening Linux più importante? Blindare SSH: usa l’autenticazione a chiave, disabilita il login con password e il login root diretto, e limita la frequenza dei tentativi falliti. SSH è il punto di ingresso più comunemente attaccato su un server esposto a internet.
Devo disabilitare SELinux o AppArmor per risolvere un problema? No. Disabilitare il controllo degli accessi obbligatorio rimuove un importante livello di contenimento. Regola o scrivi invece una policy per consentire il comportamento legittimo. Mantenerlo in modalità enforcing limita i danni se un servizio viene compromesso.
Che cos’è il CIS Benchmark? Uno standard di hardening dettagliato e specifico per distribuzione, pubblicato dal Center for Internet Security. Ti fornisce una checklist oggettiva su cui configurarti e con cui fare audit dei tuoi server nel tempo, rendendo l’hardening misurabile.
Ho ancora bisogno di un firewall se il mio host ha un firewall di rete? Sì, usali entrambi. Un firewall basato sull’host, che nega per impostazione predefinita, protegge il server anche se i controlli di rete sono configurati male o aggirati, e applica il principio di esporre solo le porte che effettivamente servi.
Con quale frequenza va rivisto un server rafforzato? Regolarmente, perché le configurazioni derivano e compaiono nuove vulnerabilità. Riverifica rispetto alla tua baseline CIS dopo modifiche significative e con cadenza periodica, e mantieni abilitati gli aggiornamenti di sicurezza automatici nel frattempo.
Commenti