L'uso di un sudo
utente per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. L'uso di un sudo
utente è spesso associato disabilitando l'accesso root diretto al proprio server nel tentativo di impedire l'accesso non autorizzato.
In questo tutorial, tratteremo i passaggi di base per disabilitare l'accesso root diretto, la creazione di un utente sudo e l'impostazione del gruppo sudo su CentOS, Debian e FreeBSD.
Prerequisiti
- Un server Linux appena installato con la tua distribuzione preferita.
- Un editor di testo installato sul server che si tratti di nano, vi, vim, emacs.
Passaggio 1: installazione di sudo
Debian
apt-get install sudo -y
CentOS
yum install sudo -y
FreeBSD
cd /usr/ports/security/sudo/ && make install clean
o
pkg install sudo
Passaggio 2: aggiunta dell'utente sudo
Un sudo
utente è un normale account utente su una macchina Linux o Unix.
Debian
adduser mynewusername
CentOS
adduser mynewusername
FreeBSD
adduser mynewusername
Passaggio 3: aggiunta del nuovo utente al gruppo ruote (opzionale)
Il gruppo di ruote è un gruppo di utenti che limita il numero di persone in grado di su
eseguire il root. L'aggiunta sudo
dell'utente al wheel
gruppo è del tutto facoltativa, ma è consigliabile.
Nota: in Debian, il sudo
gruppo viene spesso trovato al posto di wheel
. È comunque possibile aggiungere manualmente il wheel
gruppo usando il groupadd
comando Ai fini di questo tutorial, useremo il sudo
gruppo per Debian.
La differenza tra wheel
e sudo
.
In CentOS e Debian, un utente appartenente al wheel
gruppo può eseguire su
e salire direttamente a root
. Nel frattempo, un sudo
utente avrebbe usato il sudo su
primo. In sostanza, non vi è alcuna differenza reale tranne che per la sintassi utilizzata per diventare root e gli utenti appartenenti a entrambi i gruppi possono utilizzare il sudo
comando.
Debian
usermod -aG sudo mynewusername
CentOS
usermod -aG wheel mynewusername
FreeBSD
pw group mod wheel -m mynewusername
Passaggio 4: assicurarsi che il sudoers
file sia configurato correttamente
È importante assicurarsi che il sudoers
file in cui si trova /etc/sudoers
sia impostato correttamente per consentire sudo users
l'uso efficace del sudo
comando. A tale scopo, visualizzeremo i contenuti /etc/sudoers
e li modificheremo laddove applicabile.
Debian
vim /etc/sudoers
o
visudo
CentOS
vim /etc/sudoers
o
visudo
FreeBSD
vim /etc/sudoers
o
visudo
Nota: il visudo
comando si aprirà /etc/sudoers
usando l'editor di testo preferito del sistema (di solito vi o vim) .
Inizia a rivedere e modificare sotto questa riga:
# Allow members of group sudo to execute any command
Questa sezione di /etc/sudoers
assomiglia spesso a questo:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
In alcuni sistemi, potresti non trovare %wheel
invece di %sudo
; nel qual caso, questa sarebbe la linea sotto la quale inizieresti a modificare.
Se la riga che inizia con %sudo
Debian o %wheel
in CentOS e FreeBSD non è commentata (con il prefisso #) , ciò significa che sudo è già configurato e abilitato. È quindi possibile passare al passaggio successivo.
Passaggio 5: consentire a un utente che non appartiene wheel
né al sudo
gruppo né al gruppo di eseguire il sudo
comando
È possibile consentire a un utente che non fa parte di nessuno dei gruppi di utenti di eseguire il sudo
comando semplicemente aggiungendolo /etc/sudoers
come segue:
anotherusername ALL=(ALL) ALL
Passaggio 6: riavvio del server SSHD
Per applicare le modifiche apportate /etc/sudoers
, è necessario riavviare il server SSHD come segue:
Debian
/etc/init.d/sshd restart
CentOS 6
/etc/init.d/sshd restart
CentOS 7
systemctl restart sshd.service
FreeBSD
/etc/rc.d/sshd start
Passaggio 7: test
Dopo aver riavviato il server SSH, disconnettersi e riconnettersi come proprio sudo user
, quindi tentare di eseguire alcuni comandi di test come segue:
sudo uptime
sudo whoami
Uno dei comandi seguenti consentirà sudo user
di diventare root
.
sudo su -
sudo -i
sudo -S
Appunti:
- Il
whoami
comando tornerà root
quando accoppiato con sudo
.
- Ti verrà richiesto di inserire la password del tuo utente quando esegui il
sudo
comando, a meno che non indichi esplicitamente al sistema di non richiedere le sudo users
loro password. Si prega di notare che non è una pratica consigliata.
Opzionale: consentire sudo
senza inserire la password dell'utente
Come spiegato in precedenza, questa non è una pratica consigliata ed è inclusa in questa esercitazione a solo scopo dimostrativo.
Al fine di permettere al vostro sudo user
per eseguire il sudo
comando senza che venga richiesto per la loro password, suffisso la linea di accesso in /etc/sudoers
con NOPASSWD: ALL
il seguente:
%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALL
Nota: è necessario riavviare il server SSHD per applicare le modifiche.
Passaggio 8: disabilitare l'accesso diretto alla radice
Ora che hai confermato di poter utilizzare sudo user
senza problemi, è giunto il momento dell'ottavo e ultimo passaggio, disabilitando l'accesso diretto alla radice.
Innanzitutto, apri /etc/ssh/sshd_config
utilizzando il tuo editor di testo preferito e trova la riga contenente la seguente stringa. Può essere preceduto da un #
carattere.
PermitRootLogin
Indipendentemente dal prefisso o dal valore dell'opzione in /etc/ssh/sshd_config
, è necessario modificare quella riga come segue:
PermitRootLogin no
Infine, riavvia il server SSHD.
Nota: non dimenticare di testare le modifiche tentando di accedere a SSH sul server come root
. Se non sei in grado di farlo, significa che hai completato con successo tutti i passaggi necessari.
Questo conclude il nostro tutorial.