Dovremmo disabilitare l'utente root?


21

Dovremmo rimuovere la password di root, disabilitare l'accesso remoto e fondamentalmente richiedere agli amministratori di utilizzare sudo per eseguire azioni amministrative?

testo alternativo

Risposte:


16

Tutti i miei server hanno l'account root disabilitato ( sp_pwdpimpostato su *). Questo è necessario sudoper tutti gli accessi root. [1] Lo scopo è di controllare tutte le attività dei superutente, in modo che le persone possano vedere cosa è stato fatto al sistema.

Per un'opzione più hardcore, puoi sudoscrivere su un file di registro (al contrario di syslog) e rendere il file solo accodato (usando chattrsu Linux o chflagssu BSD). In questo modo, nessuno può modificare l'audit in seguito.

[1] Ho anche la politica di non eseguire una shell di root o di eseguire escape di shell da un processo di root. (Va bene usare sudo sh -c '...'per fare pipeline o reindirizzamenti, però.)


3
"Neanche una corsa di conchiglie!" Sai quanti programmi hanno un comando "drop to shell"? Anche prima di iniziare a guardare il controllo del lavoro della shell ...
womble

Sto parlando di "no shell" come politica, non come opzione sudo. (sudo ha un'opzione noexec, ma ovviamente non è a tenuta stagna a meno che non limiti i programmi specifici che un utente è in grado di eseguire.)
Chris Jester-Young

È possibile configurare sudo in modo che "sudo -s" non possa essere usato? Ho usato solo sudoer per configurare i singoli comandi.

@Graham: puoi. Tuttavia, come puoi vedere dai commenti sopra, ciò non ferma nulla, se i tuoi utenti possono eseguire qualsiasi cosa. L'unica soluzione a tenuta stagna è un approccio di whitelist, in cui elenchi un programma specifico che gli utenti possono eseguire e devono essere tutti collegati dinamicamente (in modo che l'opzione "noexec" possa fare la sua cosa).
Chris Jester-Young,

Questa è una politica in cui ti fidi degli amministratori. Puoi vedere quali comandi eseguono le persone che possono essere davvero utili quando provano a capire cosa è cambiato.
Hamish Downer,

15

Ho decisamente consiglio contro disabilitando l'utente root. Disabilita o limita gli accessi root (tramite securetty e via sshd_config e tramite PAM e tramite quello che hai) Se il tuo sistema lo consente, limita i privilegi di root o dividi il ruolo di root (simile a come lo fa RSBAC ). Ma per favore, per favore , fallo non disabilitare l'account root rimuovendo la password, altrimenti sarà impossibile accedere al sistema tramite sulogin. suloginviene utilizzato da tutti gli initscript che conosco in caso di errori gravi segnalati da fsck - e ciò significa che sarai bloccato fuori dal sistema se il file system di root viene danneggiato.

Per chiarire: "Disabilitando l'account root rimuovendo la password" intendo i vari meccanismi che finiscono con un! o un * nel campo password di / etc / shadow, o simile. Non intendo "modificare il meccanismo di accesso di root in modo da non ricevere una password".


È un problema in sistemi come Ubuntu che non impostano mai una password di root? Mi sembra di essere in grado di eseguire "sudo sulogin", ma forse non capisco un aspetto critico.
jldugger,

Sfortunatamente non ho familiarità con il modo in cui Ubuntu gestisce il root. Ma se sei in grado di fare "sudo sulogin" e ottenere una shell di root senza che ti venga richiesta una password di root, allora no, non è un problema, dal momento che probabilmente lo stesso meccanismo verrà applicato all'avvio. Potresti provare a cercare sulogin attraverso gli initscripts per verificare quando e come viene invocato.
Mihai Limbăşan,

1
Ubuntu non usa sulogin. Se si passa alla modalità utente singolo, si ottiene subito una shell di root. Tuttavia, leggi il mio commento (nel mio post) per vedere perché questo non è un problema, nella maggior parte dei casi.
Chris Jester-Young,

Inoltre, si afferma che avere suo sudonel proprio sistema disponibile per gli utenti significhi più rischi per la sicurezza che è possibile evitare se si hanno solo utenti root dedicati. Questa è una posizione sostenuta dagli autori della distribuzione sicura di Owl (e dal designer solare tra loro) - unix.stackexchange.com/questions/8581/… cerca di presentare la loro posizione con riferimenti.
imz - Ivan Zakharyaschev,

Ho appena avuto questo problema: ho bloccato il mio utente root e un fsck è stato forzato a causa di un hard reset. Fortunatamente ho potuto avviare il mio Linux difettoso con l' fastbootopzione, sbloccare l'account di root e riavviare per eseguire finalmente fsckmanualmente.
Tommy,

3

Ho l'account di root abilitato su tutti i miei server. Tutti gli amministratori hanno il proprio utente e devono accedere tramite quello. Da lì passano alla radice. (root ssh è disabilitato)

Mantieni basso il conteggio degli amministratori. Solo le persone che hanno davvero bisogno dell'accesso root su quel server hanno la password.

Non sono un fan di sudo. È troppo facile fare semplicemente "sudo bash" per una shell root. Sono consapevole che questo può essere disabilitato, ma perché preoccuparsi? Basta limitare gli utenti che possono eseguire compiti di amministratore e parlare tra loro. Abbiamo una politica per non consentire l'apertura automatica dei terminali root. Quindi è il login, su, fare il lavoro, disconnettersi.

Nota: lavoro in un'azienda abbastanza piccola (50 dipendenti) e ci spostiamo con solo 2 amministratori part-time (1 windows / 1 linux). Questo modo di fare le cose potrebbe non essere il migliore quando hai ordini di grandezza più utenti. Personalmente non userei ancora sudo. Esistono altri modi per registrare l'attività di root.


Se vuoi una shell root da una console puoi semplicemente fare 'sudo -i' invece di aprirla da sudo bash. Personalmente non mi piace l'idea di accedere direttamente come utente root poiché è troppo rischioso per comportamenti dannosi (ovvero lasciare accidentalmente il computer sbloccato con la shell root aperta).
Spoike,

Tuttavia, si perde la registrazione / il controllo. Fai in modo che tutti utilizzino sudo e proibisca alle persone di fare sudo bash, o sudo -i o sudo -s con la politica aziendale. Questo ti dà una pista di controllo e se stai trasferendo tutti i tuoi log in un loghost centrale, è facile verificare che le persone stiano seguendo i criteri.
Christopher Cashell,

Questo è l'approccio adottato e sostenuto dagli autori della distribuzione sicura Owl (e dal designer Solar tra loro) - unix.stackexchange.com/questions/8581/… cerca di presentare la propria posizione con riferimenti.
imz - Ivan Zakharyaschev,

2

Disabilitare la password di root è una falsa "buona idea". Il giorno in cui ne avrai bisogno, ne avrai davvero bisogno. (in base alla configurazione, potrebbe essere necessario accedere per esempio in modalità utente singolo)

La disabilitazione dell'accesso remoto alla radice potrebbe essere rilevante ma solo se si è in grado di accedere localmente.

E sì, sudo dovrebbe essere installato su ognuno dei tuoi server. È utile e facile da configurare. Perché vorresti non usarlo?


Cosa succede se l'avvio in modalità utente singolo è un'opzione grub?
jldugger,

Qual è lo scopo di disabilitare l'account root? Cosa farai se freni il tuo binario sudo o la tua configurazione (o qualunque strumento tu usi)?
Benoit,

Disabling root remote login might be relevant but only if you are able to log on locally.Questo è palesemente falso. Puoi accedere in remoto con qualsiasi account; la disabilitazione dell'accesso remoto di root non limita l'accesso locale.
Dan,

2

Disabilito l'accesso SSH per root e richiedo agli utenti (spesso sono solo sviluppatori) di usare le chiavi ssh. Ci sono troppi attacchi ai dizionari e cambiare la porta SSH non è un'opzione per noi.

In questo modo non devi fidarti della capacità di nessuno di scrivere una buona password. Una volta dentro, solo gli amministratori hanno i permessi per sudo.


Cambiare la porta SSH è comunque inutile. Un portcan semplice lo regala facilmente. Quando telnet alla porta 22 sulla mia macchina, ottengo SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1.2
Matt Simmons

@MattSimmons Sì, ma la maggior parte degli attacchi ai dizionari sono automatizzati e molto elementari. Non si preoccupano della scansione delle porte; tentano di connettersi a indirizzi IP casuali sulla porta 22 e, se scadono, passano all'IP successivo nel loro elenco. Non è una misura di sicurezza, aiuta solo a sbarazzarsi degli attacchi automatizzati alla porta 22. Ovviamente un attacco mirato è un gioco di palla completamente diverso.
Dan,

2

So che questo thread è davvero vecchio ma ci sono alcuni importanti difetti nella logica degli articoli collegati e mi sento "rant'ie" - sudo consente sia la whitelisting che la blacklist. Non solo nero come specificato nell'articolo collegato - Salta l'idea di AAA (autenticazione, autorizzazione e controllo) - su & sudo consentono sia l'autenticazione graduale che la responsabilità.

Scenario 1 Un amministratore introduce accidentalmente del codice non valido in un sistema, ha effettuato l'accesso come root al codice con accesso completo e l'amministratore potrebbe non sapere mai cosa è successo. Almeno con accessi classificati (ad es. Su / sudo) all'amministratore verrà richiesto di autenticarsi se il codice canaglia tenta di utilizzare diritti elevati ... Se non viene elevato, si limita ai diritti degli utenti che dovrebbero comportare un danno minimo.

Scenario 2 Un amministratore non autorizzato desidera ottenere informazioni / apportare una modifica. Si connettono alla console (accesso alla console fisica, HP iLo / simile o accesso alla console vGuest), effettuano il login come root e fanno tutto ciò che desiderano. A meno che non vi sia una carta di accesso / account denominata utilizzata per ottenere l'accesso alla console, probabilmente non c'è molto di una pista di controllo.

  1. Assicurati di essere davvero quello che dicono di essere. Il furto di identità non è il problema, lo è la verifica dell'identità.
  2. Controlla la loro autorizzazione, dai loro solo ciò di cui hanno bisogno in quel momento. L'autorizzazione graduale consente loro di elevarsi quando ne hanno bisogno.
  3. Controlla tutto, registra, in modo da sapere chi, cosa ha fatto, quando e dove. Preferibilmente anche perché

1

Dovresti richiedere a tutti di usare sudo per ogni comando di root come criterio. Non c'è mai un motivo per eseguire "sudo bash" o simili, è solo per comodità, a causa dell'ignoranza, o per coprire le proprie tracce.

Se si disabilitano direttamente gli accessi all'account root, si paralizza la capacità di riparare il sistema in caso di problemi gravi.

Se non riesci a convincere i tuoi amministratori ad accedere come se stessi ed eseguire sudo per ogni comando eseguito come root e a non dividerlo in una shell, hai seri problemi per i quali non esiste una soluzione tecnica.


1

Gli autori di Owl Secure Distribion ​​(e Solar designer) hanno un punto di vista opposto, accuratamente giustificato; vedere, ad esempio, la risposta /unix/8581/which-is-the-safest-way-to-get-root-privileges-sudo-su-or-login/8660#8660 per una presentazione delle loro affermazioni. Il problema del controllo delle azioni del superutente (quale persona ha fatto cosa) è anche affrontato dal loro punto di vista (in sostanza, la soluzione è avere diversi utenti root con nomi diversi).

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.