Come disabilitare il login root in Ubuntu?


28

qualche tempo fa ho dato a root una password in modo da poter accedere come root e fare alcune cose. Ora voglio disabilitare il login root per rafforzare la sicurezza, poiché esporrò il mio servizio su Internet. Ho visto diversi modi per farlo ( sudo passwd -l root, armeggiare /etc/shadowe così via), ma da nessuna parte si dice quale sia il modo migliore / più sensato di farlo. Ho fatto sudo passwd -l rootma ho visto dei consigli che dicono che questo può influire sugli script di init e che non è così sicuro come sembra poiché richiede ancora una password se si tenta di accedere, piuttosto che negare completamente l'accesso. Quindi quale sarebbe il modo per raggiungerlo?

EDIT: per chiarire, questo è per il login locale come root; Ho già disabilitato l'accesso remoto tramite SSH. Anche se il tentativo di accedere come root su SSH richiede ancora la password di root (che non riesce sempre). È male?


1
La disabilitazione dell'accesso locale per root ha quasi zero vantaggi in termini di sicurezza. Un utente con accesso fisico può creare la tua scatola in innumerevoli modi.
jscott,

Punto preso. Non è necessario accedere come root se si possono semplicemente estrarre i dischi rigidi. Mi piacerebbe comunque sapere come ripristinare l'account di root com'era prima di modificarlo, anche se solo per curiosità ora.
Ben Hymers,

vedi l'aggiornamento alla mia risposta di seguito. Penso di capire ora cosa stai chiedendo.
jscott,

@jscott disabilitando root potrebbe non offrire vantaggi in termini di sicurezza contro le intrusioni, ma il mancato accesso come root fornisce un interruttore di sicurezza contro i sistemi di distruzione con rmcomandi fuori posto o simili. Qualcosa che ho imparato nel modo più duro. Sì, semplicemente NON si può accedere come root, ma disabilitarlo ha senso dal punto di vista dell'amministratore di sistema.
codechimp,

Sembra grandioso per VPS o hosting, non è un gioco da ragazzi davvero.
jjxtra

Risposte:


34

È discutibile, per me, che disabilitare la radice valga i potenziali problemi. Non ho mai testato un server configurato in questo modo. La mia preferenza è consentire solo l'accesso locale root. Se un utente malintenzionato ha accesso fisico al tuo server, puoi comunque dimenticare tutto ciò che hai fatto per "proteggere" l'installazione.

Disabilita l' sshaccesso root modificando /etc/ssh/sshd_configper contenere:

PermitRootLogin no

Giocherellando con /etc/shadow, chsh -s /bin/false roottutto può essere annullato con un semplice CD / thumbdrive avviabile.

Aggiornamento per il tuo commento:

Da help.ubuntu.com : "Per impostazione predefinita, la password dell'account di root è bloccata in Ubuntu ". Si prega di consultare la sezione "Riattivazione dell'account root" in modo specifico. Per ripristinare lo stato dell'account di root, per l'installazione predefinita, utilizzare il comando seguente:

sudo usermod -p '!' root

Nessun sistema è sicuro quando un attaccante ha accesso fisico a quel sistema. Quando puoi modificare / etc / shadow, cosa ti impedisce di modificare / etc / ssh / sshd_config?
Sven

@SvenW: esattamente. Questo è il motivo per cui discuto l'utilità, dal punto di vista della sicurezza, anche di preoccuparsi di "disabilitare" il root. Limitare l'accesso alla radice, sì. Disabilita l'account, no.
jscott,

4
sudo service ssh restart ....... dopo aver fatto questo.
Naweed Chougle,

Il file della guida di riferimento ora fornisce il seguente comando: sudo passwd -dl root
MrG

21

Presumo che ti riferisca al login remoto tramite ssh. Aggiungi la seguente riga a /etc/ssh/sshd_config:

PermitRootLogin no

e il riavvio del servizio ssh

sudo service ssh restart

Questo dovrebbe fare il lavoro e puoi mantenere il tuo account di root così com'è (o provare a disabilitarlo comunque se ritieni che sia necessario).


Spiacenti, avrei dovuto dirlo, questo è per gli accessi locali. Ho aggiornato la domanda.
Ben Hymers,

4

Alla domanda principale è stata data risposta più volte, ma la seconda no. SSH richiede la password dopo aver inserito root dopo che è stata disabilitata come funzione di sicurezza. Si attiverà anche se si tenta di accedere come lkjfiejlksji.

Questo per impedire a qualcuno di testare un mucchio di nomi utente, per provare a scoprire quali sono validi sul tuo sistema. Tuttavia, dal punto di vista della sicurezza, se avessi disabilitato il root su SSH, avrei anche impostato un programma di rilevamento di bruteforce (come fail2ban) e impostato in modo tale che se qualcuno tentasse persino di accedere come root, li bloccherebbe da provare altri attacchi.


Buona risposta, grazie! Ho fail2ban già impostato, lo configurerò per bloccare al primo tentativo di accesso come root, comunque, un buon consiglio.
Ben Hymers,

2

Sostituire la password crittografata con un * in / etc / shadow (secondo campo, dopo il primo ':') è il modo migliore, IMHO. Inoltre, disattiva il login root per ssh (in questo modo è semplicemente impossibile accedere tramite ssh come root) e forse limita ssh agli accessi certificati, che è molto più sicuro degli accessi basati su password.

Nella maggior parte dei casi, SSH dovrebbe essere l'unico servizio accessibile dall'esterno che potenzialmente consente l'accesso come root, quindi questa porta sarebbe bloccata.

Per limitare ulteriormente ciò, è possibile installare qualcosa come fail2ban, che vieta gli indirizzi IP per un certo periodo di tempo dopo un numero di tentativi di accesso non riusciti.


Ho la sensazione che '*' sia uguale a '!', Come per la risposta accettata, quindi voterò anche questa risposta.
Ben Hymers,

1

JR et al,

I tuoi utenti autorizzati mi hanno portato a questo https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

sudo vi / etc / ssh / sshd_config

PermitRootLogin yes (modificato in no)

(aggiungi la riga in fondo al file) DenyUsers user1 user2

salva ed esci e poi

sudo service ssh restart

Risolto il mio problema Grazie a tutti.


0

Se si desidera disabilitare l'accesso root locale, è possibile provare a modificare / etc / passwd e sostituire / bin / bash con / bin / false. TUTTAVIA, dal momento che non l'ho provato, direi di lasciare aperta una sessione di root sul lato, testarlo e, se c'è qualche strano effetto collaterale, cambiarlo indietro.


0

Ri: Sicurezza.

IMHO c'è solo così tanto che puoi fare, per quanto riguarda la sicurezza, a meno di scollegare la scatola, scollegarla dalla rete e saldarla in una scatola di acciaio al carburo a prova di proiettile da 3 "di spessore.

Pensala in questo modo - se la gente può hackerare il Dipartimento della Difesa, la CIA, l'FBI e Citibank - il resto di noi semplici mortali non può fare molto meglio.

Ri: sicurezza SSH.

Non solo proibisco l'accesso come root tramite ssh, ma ho anche impostato il parametro "AllowUsers" sul mio e solo sul mio nome utente. In questo modo nessuno tranne il mio utente può accedere tramite ssh. Questo può essere ridondante come nel mio caso, creo comunque UN SOLO utente non root.

Sfortunatamente, come altri hanno già detto molte volte, non appena qualcuno accede fisicamente al box, tutte le scommesse sono OFF!

Scambio di certificati per login ssh? Hmmmm. . . . suona bene. Come si fa?

Jim (JR)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.