Vai al contenuto
Home » Blog » Proteggere l’account root nei sistemi Unix/Linux con ‘sudo’ o ‘su’

Proteggere l’account root nei sistemi Unix/Linux con ‘sudo’ o ‘su’

'Sudo' vs 'su', il dilemma del sysadmin dei sistemi Unix-like.

È più sicuro utilizzare sudo o su, quando si ha bisogno di scalare i privilegi di un sistema Unix-like, ed in particolare in Linux?

Proteggere l’account root è sempre da considerarsi una buona pratica, quando si tratta di rendere più sicuri sistemi Unix.

Tuttavia, tra i sysadmins molto spesso serpeggia una domanda inquietante: Dal punto di vista della sicurezza, dovrei disabilitare l’account di root nei sistemi Unix-Like?

C’è da dire che questa domanda è molto sentita dagli amministratori Linux i quali sono sovente alle prese con diverse distribuzioni del sistema operativo del pinguino che adottano diversi tipi di approccio.

Alcune distribuzioni lasciano libero l’utente di utilizzare l’account root, altre invece optano per vietare categoricamente il login dall’esterno con l’utente root. Quale è la soluzione migliore da adottare per mantenere un elevato livello di sicurezza del sistema?

Questo post cerca di approfondire l’argomento per chiarire una volta per tutte quali misure adottare in questo contesto per la sicurezza del sistema per sfatare il dilemma del sysadmin: sudo vs su.

Sudo o su: differenti ragioni per disabilitare l’account root

Esistono diversi motivi per disabilitare l’account root, ad esempio:

  1. Il tuo sistema è disponibile su una rete poco sicura, oppure è esposto in insternet, e vuoi proteggerti dagli attacchi brute force, in modo che nessuno possa indovinare la password del tuo account root.
  2. Gli amministratori di sistema vogliono impedire agli utenti di poter eseguire un comando come su - per ottenere una shell root completa, perché ora è molto più facile fare qualcosa di sbagliato che causa danni al sistema. Tuttavia possono ancora usare qualcosa come sudo -isudo -ssudo /bin/some-shell o anche sudo su - se sono nel file /etc/sudoers.

Nel secondo punto qui sopra, l’idea è di forzare l’utente a usare sudo invece di condividere una singola password root tra tutti gli utenti e usare sudo ha alcuni vantaggi, ad esempio:

  • È meno probabile che l’utente lasci una shell aperta con accesso root completo; i permessi sudo scadono dopo un po’;
  • Il Sysadmin può definire regole più flessibili usando il file sudoers;
  • Il sistema registra chi sta facendo cosa, come e quando;
  • Si può evitare, come accennato sopra, di dover condividere l’unica password di root tra tanti utenti, con l’ovvio problema di sicurezza correlato.

L’account root in un sistema Unix-Like

Mettiamo subito in chiaro una cosa: Non si può eliminare l’account root in un sistema Unix-Like. Quello che i può fare, è disabilitare l’account root; esattamente ciò che accade nei moderni sistemi Unix-Like.

Un account con ID 0 (solitamente chiamato root) deve sempre esistere all’interno del sistema. Ciò che si potrebbe fare, e si fa in Ubuntu (e in alcune altre distribuzioni) è rimuovere la password dell’account root, ad evitare il login con l’utente root.

Quindi, nessun login con il nome utente root potrebbe avere successo, nessun ssh potrebbe accedere come root, non importa quanti tentativi si facciano. Un utente scalare i suoi privilegi a root solo accedendo preventivamente al sistema con uno user non-root e successivamente usando sudo per qualsiasi utilizzo privilegiato.

Dovresti farlo? Certo; perché no? È più sicuro? Sì, un po’. Purché nessun utente esegua shell come root per un tempo indefinito (sudo -i), senza mai abbandonare la shell privilegiata.

Disabilitare la password di root

Come accennato più sopra, è possibile disabilitare l’utente root, in modo molto semplice, rimuovendo la password dello user root ed agendo sul lock dello user root.

Rimuovere la password dell’account root:

sudo passwd -d root

Impostare il Lock per l’account root:

sudo passwd -l root

Da questo momento, l’utente root del tuo sistema Unix è locked ed inutilizzabile da chiunque intenda accedere al sistema.

Conclusioni

Nella sezione dedicata ai mini-tutorial di questo blog, abbiamo voluto affrontare sinteticamente l’annoso problema dell’usi di sudo o su per scalare i privilegi di un utente.

Aumentare la sicurezza dei sistemi informatici è sempre una buona pratica che tutti i Sysadmin dovrebbero adottare di default.

Nella fattispecie, limitare l’uso indiscriminato dello user root è oltretutto un modo per educare gli utenti del sistema ad utilizzare il proprio livello di privilegi e non abusare del privilege escalation allo user root, anche solo, ad esempio, per listare il contenuto della directory /opt.

Questa pagina potrebbe contenere link di affiliazione. Gli acquisti o gli ordini che effettuerai tramite tali link possono generare commissioni per a sostenere il nostro sito.