Come mettere in sicurezza un'installazione pulita di Ubuntu
Introduzione
Un sistema Linux appena installato è generalmente meno vulnerabile a malware e spyware rispetto a un sistema Windows appena installato. Tuttavia, molte distribuzioni — Ubuntu incluso — scelgono impostazioni di default orientate alla comodità dell’utente piuttosto che alla massima sicurezza. Queste scelte possono lasciare alcune debolezze sfruttabili. Le istruzioni che seguono sono misure pratiche, collaudate e a basso impatto che migliorano significativamente la postura di sicurezza di una macchina Ubuntu appena installata.
Definizione rapida: per “postura di sicurezza” si intende l’insieme delle configurazioni e delle misure che riducono la probabilità e l’impatto di un attacco.
Importante: molte delle modifiche richiedono accesso root. Esegui i comandi con attenzione e, se possibile, prova le modifiche in un ambiente non di produzione prima di applicarle su macchine critiche.
Come aprire file di configurazione con privilegi di root
Per modificare i file di configurazione di sistema è necessario usare privilegi di amministratore. Tre metodi comuni per aprire un file (qui usiamo esempi con “/file/config”):
Aprire via terminale:
sudoedit /file/config
Su Gnome (lancio rapido con Alt+F2):
gksudo gedit /file/configSu KDE (lancio rapido con Alt+F2):
kdesu kate /file/configNota: negli esempi e negli screenshot seguenti tutte le modifiche vengono effettuate tramite terminale usando sudoedit.
Impostazioni di base consigliate
Queste modifiche dipendono dall’uso che farai del sistema. Alcuni punti chiave:
- Imposta una password robusta per il tuo account utente principale. Anche se sei l’unico utente, la password protegge l’accesso e i segreti locali.
- Se presti la macchina a visitatori, crea un account “Guest” con permessi limitati e password separata.
- Applica il principio del minimo privilegio: usa sudo solo quando necessario.
Riconfigurare la memoria condivisa (/run/shm)
Per impostazione predefinita lo spazio di memoria condivisa (/run/shm) è montato in lettura/scrittura con esecuzione abilitata. Questo può essere sfruttato come vettore d’attacco in alcuni scenari. Per ridurre il rischio, monta /run/shm come sola lettura o, se necessario per determinate applicazioni, con esecuzione disabilitata.
Apri il file /etc/fstab:
sudoedit /etc/fstabAggiungi questa riga alla fine per montare /run/shm in sola lettura (opzione consigliata per la maggior parte dei desktop e server):
none /run/shm tmpfs defaults,ro 00Se usi Google Chrome (o altre applicazioni che richiedono scrittura in /run/shm), usa invece questa riga per mantenere la scrittura ma disabilitare l’esecuzione e gli attributi pericolosi:
none /run/shm tmpfs rw,noexec,nosuid,nodev 00
Nota: se modifichi /etc/fstab e vuoi applicare la nuova configurazione senza riavviare, puoi smontare e rimontare la risorsa (usare con cautela):
sudo umount /run/shm && sudo mount /run/shmNegare l’uso di su agli account non amministrativi
Il programma su consente a un utente di eseguire comandi come un altro utente. Per impedire che account come “Guest” possano usare su per scalare i privilegi, modifica i permessi di /bin/su in modo che l’esecuzione sia consentita solo agli amministratori (gruppo sudo). Un modo standard è usare dpkg-statoverride per impostare proprietario, gruppo e permessi del binario:
sudo dpkg-statoverride --update --add root sudo 4750 /bin/suQuesto comando imposta /bin/su con modalità 4750, proprietario root e gruppo sudo, rendendo il comando eseguibile solo per gli utenti del gruppo sudo.

Importante: verifica che il gruppo sudo contenga solo gli amministratori desiderati.
Proteggere la directory home
Per impostazione predefinita la tua home directory può essere leggibile da altri utenti locali. Se condividi un computer o hai account guest, limita l’accesso alla tua home:
Per rendere la home leggibile solo dal proprietario:
chmod 0700 /home/usernameSe preferisci consentire l’accesso al gruppo (es. per collaborazioni interne), usa 0750:
chmod 0750 /home/username
Nota: sostituisci username con il tuo nome utente reale.
Disabilitare il login root via SSH
Di default Ubuntu non consente l’accesso diretto SSH come root, ma se hai abilitato o assegnato una password a root è buona norma assicurarsi che SSH non lo permetta. Verifica prima se hai un server SSH in ascolto:
ssh localhostSe ricevi “Connection refused”, non hai un server SSH installato — puoi ignorare la sezione SSH. Se invece risponde, modifica il file di configurazione di sshd:
sudoedit /etc/ssh/sshd_configCerca la riga:
PermitRootLogin yesSostituiscila con:
PermitRootLogin noPoi riavvia il servizio SSH:
sudo systemctl restart sshdConsiglio: preferisci sempre l’uso di chiavi SSH per l’autenticazione rispetto alle password e, ove possibile, limita l’accesso SSH tramite firewall o configurazioni per indirizzi IP.
Ulteriori misure consigliate
Le misure precedenti sono efficaci ma non esaustive. Ecco altre azioni facilmente applicabili per innalzare il livello di sicurezza:
- Attiva il firewall UFW:
sudo ufw enablee poi apri solo le porte necessarie comesudo ufw allow ssh(se usi SSH). - Abilita aggiornamenti automatici dei pacchetti critici: installa e configura
unattended-upgrades. - Installa e configura
fail2banper bloccare tentativi di login ripetuti:sudo apt install fail2ban. - Rimuovi servizi e pacchetti non usati (riduce la superficie d’attacco).
- Usa AppArmor (attivo su Ubuntu) e rivedi i profili per servizi esposti.
- Valuta la cifratura del disco con LUKS se la macchina contiene dati sensibili.
- Mantieni aggiornato il firmware (UEFI/BIOS) e considera l’uso di Secure Boot su hardware supportato.
Quando queste misure potrebbero non bastare (controesempi)
- Macchine che eseguono software legacy/chiuso che richiede permessi speciali o scrittura in /run/shm: le impostazioni più vincolanti possono interrompere quei programmi.
- Ambienti con amministrazione centralizzata (config management come Ansible/Puppet) dove le modifiche manuali vengono sovrascritte: integra le modifiche nei playbook.
- Sistemi che richiedono accesso root per task automatizzati: valuta invece l’uso di sudo con regole molto restrittive.
Checklist rapida per lockdown iniziale (SOP breve)
- Impostare password utente forte e account guest separato
- [ ] Eseguire
sudoedit /etc/fstabe aggiornare /run/shm come consigliato - [ ] Applicare
dpkg-statoverridesu/bin/super limitare l’uso di su - [ ] Eseguire
chmod 0700 /home/usernameo0750secondo necessità - [ ] Verificare e disabilitare
PermitRootLoginin/etc/ssh/sshd_configse necessario - Abilitare UFW e consentire solo porte minime
- [ ] Installare
unattended-upgradesefail2ban
Ruoli suggeriti:
- Utente desktop: concentra su home protetta, password forte, blocco schermo automatico.
- Amministratore di sistema: oltre alle misure sopra, integra in gestione configurazione, revisiona AppArmor, monitora log e update.
Diagramma decisionale rapido (Mermaid)
graph LR
A[Hai SSH installato?] -- No --> B[Ignora SSH e procedi con lockdown locale]
A -- Sì --> C[Hai bisogno di login root via SSH?]
C -- No --> D[Imposta PermitRootLogin no e usa chiavi SSH]
C -- Sì --> E[Usa sudo remoto limitato e MFA, documenta eccezioni]Controlli di accettazione (Критерии приёмки)
- /run/shm è montato con le opzioni desiderate (
mount | grep /run/shmrestituisce le opzioni corrette). /bin/suè accessibile solo dagli amministratori (ls -l /bin/sumostra 4750 e gruppo sudo).- La tua home ha i permessi impostati come previsto (
stat -c %a /home/username). - SSH non permette login root (
ssh -v root@localhostmostra rifiuto se locale o tentativo bloccato).
Note su privacy e conformità (GDPR)
Queste misure tecniche riducono l’esposizione dei dati locali e i rischi di fuga di informazioni. Se gestisci dati personali soggetti a regolamenti come il GDPR, assicurati di integrare queste azioni con politiche di accesso, auditing e conservazione dati adeguate (registrazione dei consensi, minimizzazione dei dati, cifratura at-rest e in-transit).
Best practice e modelli mentali
- Difesa in profondità: combinare firewall, hardening dei servizi, restrizioni di file e monitoraggio.
- Minimo privilegio: concedere la minima capacità necessaria per svolgere un compito.
- Riduzione della superficie d’attacco: disinstallare software inutilizzato, chiudere porte, disabilitare servizi.
Risorse successive
- Wiki di Ubuntu per approfondimenti su AppArmor, gestione pacchetti e sicurezza.
- Documentazione ufficiale di UFW, fail2ban e unattended-upgrades per configurazioni dettagliate.
Riepilogo
Hai eseguito i passi fondamentali per migliorare la sicurezza di un’installazione fresca di Ubuntu: gestione dei privilegi per su, isolamento della memoria condivisa, protezione della home e blocco dell’accesso root via SSH. Completa queste azioni con firewall, aggiornamenti automatici e controllo dei servizi per ottenere una postura di sicurezza solida.