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/config
Su KDE (lancio rapido con Alt+F2):
kdesu kate /file/config
Nota: 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/fstab
Aggiungi 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 00
Se 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/shm
Negare 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/su
Questo 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/username
Se 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 localhost
Se 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_config
Cerca la riga:
PermitRootLogin yes
Sostituiscila con:
PermitRootLogin no
Poi riavvia il servizio SSH:
sudo systemctl restart sshd
Consiglio: 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 enable
e 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
fail2ban
per 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/fstab
e aggiornare /run/shm come consigliato - [ ] Applicare
dpkg-statoverride
su/bin/su
per limitare l’uso di su - [ ] Eseguire
chmod 0700 /home/username
o0750
secondo necessità - [ ] Verificare e disabilitare
PermitRootLogin
in/etc/ssh/sshd_config
se necessario - Abilitare UFW e consentire solo porte minime
- [ ] Installare
unattended-upgrades
efail2ban
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/shm
restituisce le opzioni corrette). /bin/su
è accessibile solo dagli amministratori (ls -l /bin/su
mostra 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@localhost
mostra 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.
Materiali simili

Come restituire un gioco su Steam — Guida rapida

Compra crypto con Apple Pay su iPhone

Profilo pubblico Snapchat: guida completa

Alternative open source essenziali su Linux

Installare CyanogenMod su Lenovo P780
