Ricerca nel sito web

4 modi per disabilitare l'account root in Linux


L'account root è l'account definitivo su Linux e altri sistemi operativi simili a Unix. Questo account ha accesso a tutti i comandi e file su un sistema con autorizzazioni complete di lettura, scrittura ed esecuzione. Viene utilizzato per eseguire qualsiasi tipo di attività su un sistema; per creare/aggiornare/accedere/eliminare account di altri utenti, installare/rimuovere/aggiornare pacchetti software e molto altro ancora.

Poiché l'utente root ha poteri assoluti, qualsiasi azione che esegue è fondamentale per il sistema. A questo proposito, eventuali errori da parte dell'utente root possono avere enormi implicazioni sul normale funzionamento di un sistema. Inoltre, è possibile che si abusi di questo account utilizzandolo in modo improprio o inappropriato, accidentalmente, in modo dannoso o per artificiosa ignoranza delle politiche.

Pertanto, è consigliabile disabilitare l'accesso root nel tuo server Linux e creare invece un account amministrativo che dovrebbe essere configurato per ottenere i privilegi di utente root utilizzando il comando sudo, per eseguire attività critiche sul server.

In questo articolo, spiegheremo quattro modi per disabilitare l'accesso all'account utente root in Linux.

Attenzione: prima di bloccare l'accesso all'account root, assicurati di aver creato un account amministrativo, in grado di utilizzare il comando sudo per ottenere root privilegi utente, con il comando useradd e fornire a questo account utente una password complessa. Il flag -m significa creare la directory home dell'utente e -c consente di specificare un commento:

useradd -m -c "Admin User" admin
passwd admin

Successivamente, aggiungi questo utente al gruppo appropriato di amministratori di sistema utilizzando il comando usermod, dove l'opzione -a significa aggiungere account utente e -G specifica un gruppo a cui aggiungere l'utente in (ruota o sudo a seconda della distribuzione Linux):

usermod -aG wheel admin    #CentOS/RHEL
usermod -aG sudo admin     #Debian/Ubuntu 

Dopo aver creato un utente con privilegi amministrativi, passa a quell'account per bloccare l'accesso root.

su admin

1. Cambia la shell dell'utente root

Il metodo più semplice per disabilitare l'accesso dell'utente root è cambiare la sua shell da /bin/bash o /bin/bash (o qualsiasi altra shell che consenta l'accesso dell'utente) a /sbin/nologin, nel file /etc/passwd, che puoi aprire per la modifica utilizzando uno qualsiasi dei tuoi editor a riga di comando preferiti, come mostrato.

  
sudo vim /etc/passwd

Cambia la riga:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

Salva il file e chiudilo.

D'ora in poi, quando l'utente root accede, riceverà il messaggio "Questo account non è attualmente disponibile.". Questo è il messaggio predefinito, ma puoi cambialo e imposta un messaggio personalizzato nel file /etc/nologin.txt.

Questo metodo è efficace solo con programmi che richiedono una shell per l'accesso dell'utente, altrimenti i client sudo, ftp e email possono accedere all'account root.

2. Disabilitare l'accesso root tramite dispositivo console (TTY)

Il secondo metodo utilizza un modulo PAM chiamato pam_securetty, che consente l'accesso root solo se l'utente accede su un TTY “sicuro”, poiché definito dall'elenco in /etc/securetty.

Il file precedente consente di specificare su quali dispositivi TTY l'utente root può accedere, lo svuotamento di questo file impedisce l'accesso root su qualsiasi dispositivo collegato al sistema informatico.

Per creare un file vuoto, esegui.

sudo mv /etc/securetty /etc/securetty.orig
sudo touch /etc/securetty
sudo chmod 600 /etc/securetty

Questo metodo presenta alcune limitazioni, riguarda solo programmi come login, display manager (ad esempio gdm, kdm e xdm) e altri servizi di rete che avviare un TTY. Programmi come su, sudo, ssh e altri strumenti openssh correlati avranno accesso all'account root.

3. Disabilita l'accesso root SSH

Il modo più comune per accedere a server remoti o VPS è tramite SSH e per bloccare l'accesso dell'utente root sotto di esso, è necessario modificare il file /etc/ssh/sshd_config.

sudo vim /etc/ssh/sshd_config

Quindi decommenta (se è commentata) la direttiva PermitRootLogin e imposta il suo valore su no come mostrato nello screenshot.

Una volta terminato, salva e chiudi il file. Quindi riavvia il servizio sshd per applicare la recente modifica alle configurazioni.

sudo systemctl restart sshd 
OR
sudo service sshd restart 

Come forse già saprai, questo metodo influisce solo sul set di strumenti openssh, programmi come ssh, scp, sftp non potranno accedere all'account root.

4. Limitare l'accesso root ai servizi tramite PAM

Pluggable Authentication Modules (PAM in breve) è un metodo di autenticazione centralizzato, collegabile, modulare e flessibile sui sistemi Linux. PAM, attraverso il modulo /lib/security/pam_listfile.so, consente una grande flessibilità nel limitare i privilegi di account specifici.

Il modulo precedente può essere utilizzato per fare riferimento a un elenco di utenti a cui non è consentito accedere tramite alcuni servizi di destinazione come login, ssh e qualsiasi programma compatibile con PAM.

In questo caso, vogliamo disabilitare l'accesso dell'utente root a un sistema, limitando l'accesso ai servizi login e sshd. Per prima cosa apri e modifica il file per il servizio di destinazione nella directory /etc/pam.d/ come mostrato.


sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

Successivamente, aggiungi la configurazione seguente in entrambi i file.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

Una volta terminato, salva e chiudi ciascun file. Quindi crea il file semplice /etc/ssh/deniedusers che dovrebbe contenere un elemento per riga e non leggibile da tutti.

Aggiungi il nome root al suo interno, quindi salvalo e chiudilo.

sudo vim /etc/ssh/deniedusers

Imposta anche le autorizzazioni richieste su questo.

sudo chmod 600 /etc/ssh/deniedusers

Questo metodo influisce solo sui programmi e sui servizi che supportano PAM. Puoi bloccare l'accesso root al sistema tramite client ftp e di posta elettronica e altro ancora.

Per ulteriori informazioni, consultare le pagine man pertinenti.

man pam_securetty
man sshd_config
man pam

È tutto! In questo articolo, abbiamo spiegato quattro modi per disabilitare l'accesso (o account) dell'utente root in Linux. Se hai commenti, suggerimenti o domande, non esitare a contattarci tramite il modulo di feedback sottostante.