L'uso di un sudoutente 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 sudoutente è 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 sudoutente è 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 sueseguire il root. L'aggiunta sudodell'utente al wheelgruppo è del tutto facoltativa, ma è consigliabile.
Nota: in Debian, il sudogruppo viene spesso trovato al posto di wheel. È comunque possibile aggiungere manualmente il wheelgruppo usando il groupaddcomando Ai fini di questo tutorial, useremo il sudogruppo per Debian.
La differenza tra wheele sudo.
In CentOS e Debian, un utente appartenente al wheelgruppo può eseguire sue salire direttamente a root. Nel frattempo, un sudoutente avrebbe usato il sudo suprimo. 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 sudocomando.
Debian
usermod -aG sudo mynewusername
CentOS
usermod -aG wheel mynewusername
FreeBSD
pw group mod wheel -m mynewusername
Passaggio 4: assicurarsi che il sudoersfile sia configurato correttamente
È importante assicurarsi che il sudoersfile in cui si trova /etc/sudoerssia impostato correttamente per consentire sudo usersl'uso efficace del sudocomando. A tale scopo, visualizzeremo i contenuti /etc/sudoerse li modificheremo laddove applicabile.
Debian
vim /etc/sudoers
o
visudo
CentOS
vim /etc/sudoers
o
visudo
FreeBSD
vim /etc/sudoers
o
visudo
Nota: il visudocomando si aprirà /etc/sudoersusando 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/sudoersassomiglia spesso a questo:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
In alcuni sistemi, potresti non trovare %wheelinvece di %sudo; nel qual caso, questa sarebbe la linea sotto la quale inizieresti a modificare.
Se la riga che inizia con %sudoDebian o %wheelin 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 wheelné al sudogruppo né al gruppo di eseguire il sudocomando
È possibile consentire a un utente che non fa parte di nessuno dei gruppi di utenti di eseguire il sudocomando semplicemente aggiungendolo /etc/sudoerscome 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 userdi diventare root.
sudo su -
sudo -i
sudo -S
Appunti:
- Il
whoamicomando tornerà rootquando accoppiato con sudo.
- Ti verrà richiesto di inserire la password del tuo utente quando esegui il
sudocomando, a meno che non indichi esplicitamente al sistema di non richiedere le sudo usersloro password. Si prega di notare che non è una pratica consigliata.
Opzionale: consentire sudosenza 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 userper eseguire il sudocomando senza che venga richiesto per la loro password, suffisso la linea di accesso in /etc/sudoerscon NOPASSWD: ALLil 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 usersenza problemi, è giunto il momento dell'ottavo e ultimo passaggio, disabilitando l'accesso diretto alla radice.
Innanzitutto, apri /etc/ssh/sshd_configutilizzando 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.