La radice account è l'ultimo account su Linux e altri sistemi operativi simili a Unix. Questo account ha accesso a tutti i comandi e ai 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.
Perché la radice l'utente ha poteri assoluti, qualsiasi azione che esegue è fondamentale per un sistema. A questo proposito, eventuali errori da parte della root utente può avere enormi implicazioni sul normale funzionamento di un sistema. Inoltre, questo account può anche essere utilizzato in modo improprio utilizzandolo in modo improprio o inappropriato accidentalmente, in modo dannoso o per ignoranza forzata delle norme.
Pertanto, è consigliabile disabilitare l'accesso root nel proprio server Linux, invece, creare 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 alla root account, assicurati di aver creato un account amministrativo, in grado di utilizzare il comando sudo per ottenere i privilegi di utente root, con il comando useradd e fornire a questo account utente una password complessa. La bandiera -m
significa creare la home directory dell'utente e -c
permette 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 in cui aggiungere l'utente (wheel 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 di amministratore, passa a quell'account per bloccare l'accesso come 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 permetta l'accesso dell'utente) a /sbin/nologin
, in /etc/passwd file, che puoi aprire per la modifica utilizzando uno dei tuoi editor preferiti a riga di comando, come mostrato.
$ sudo vim /etc/passwd
Cambia la linea:
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 root l'utente effettua l'accesso, riceverà il messaggio "Questo account non è attualmente disponibile. ” Questo è il messaggio predefinito, ma puoi cambiarlo e impostare un messaggio personalizzato nel file /etc/nologin.txt .
Questo metodo è efficace solo con i programmi che richiedono una shell per l'accesso dell'utente, altrimenti sudo , ftp e e-mail i clienti possono accedere all'account root.
2. Disabilita l'accesso root tramite dispositivo console (TTY)
Il secondo metodo utilizza un PAM modulo chiamato pam_securetty , che consente l'accesso come root solo se l'utente sta effettuando l'accesso a un TTY "sicuro" , come definito dall'elenco in /etc/securetty .
Il file sopra ti consente di specificare quale TTY dispositivi su cui l'utente root può accedere, lo svuotamento di questo file impedisce l'accesso come 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 ha alcune limitazioni, riguarda solo programmi come login, display manager (ad esempio gdm , kdm e xdm ) e altri servizi di rete che avviano un TTY. Programmi come su, sudo, ssh e altri strumenti di 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 /etc/ssh/sshd_config file.
$ sudo vim /etc/ssh/sshd_config
Quindi decommenta (se è commentata) la direttiva PermitRootLogin e imposta il suo valore su no
come mostrato nello screenshot.
Al termine, salva e chiudi il file. Quindi riavvia sshd servizio per applicare la recente modifica alle configurazioni.
$ sudo systemctl restart sshd OR $ sudo service sshd restart
Come forse già saprai, questo metodo ha effetto solo sul set di strumenti di openssh, programmi come ssh, scp, sftp verranno bloccati dall'accesso all'account di root.
4. Limita l'accesso root ai servizi tramite PAM
Moduli di autenticazione collegabili (PAM in breve) è un metodo di autenticazione centralizzato, collegabile, modulare e flessibile su sistemi Linux. PAM, tramite /lib/security/pam_listfile.so modulo, consente una grande flessibilità nel limitare i privilegi di account specifici.
Il modulo sopra 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 di login e sshd. Innanzitutto apri e modifica il file per il servizio di destinazione in /etc/pam.d/ directory come mostrato.
$ sudo vim /etc/pam.d/login OR sudo vim /etc/pam.d/sshd
Quindi, aggiungi la configurazione di seguito in entrambi i file.
auth required pam_listfile.so \ onerr=succeed item=user sense=deny file=/etc/ssh/deniedusers
Quando hai finito, salva e chiudi ogni file. Quindi crea il file semplice /etc/ssh/deniedusers che dovrebbe contenere un elemento per riga e non leggibile da tutti.
Aggiungi la radice del nome, quindi salva e chiudi.
$ sudo vim /etc/ssh/deniedusers
Imposta anche le autorizzazioni richieste su questo.
$ sudo chmod 600 /etc/ssh/deniedusers
Questo metodo interessa solo i programmi e i servizi che sono in grado di riconoscere PAM. Puoi bloccare l'accesso root al sistema tramite ftp e client di posta elettronica e altro ancora.
Per ulteriori informazioni, consultare le relative pagine man.
$ 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. Hai commenti, suggerimenti o domande, non esitare a contattarci tramite il modulo di feedback qui sotto.