La prima regola da ricordare è che non esegui attività come root a meno che non debbano essere eseguite come root.
Questa parte riduce il rischio di danni causati da errori di battitura o altri errori. Riduce inoltre il rischio di danni se gli strumenti in uso presentano una vulnerabilità di sicurezza.
Gli account aggiuntivi dovrebbero avere solo i privilegi di cui hanno bisogno e nient'altro.
Con quelle parti dichiarate, esaminiamo gli argomenti per i due approcci all'accesso root.
Argomenti per l'accesso come non root e usando sudo
Hai una pista di controllo in cui è più facile capire chi ha fatto cosa. Non esegui tutti i comandi come root, ma solo quelli che prefissi con sudo
.
Argomenti perché potrebbe non fornirti la stessa sicurezza di chi dice
La pista di controllo funziona solo finché le persone rispettano le regole. È conveniente se ci sono più di due persone con sudo
di accesso o se proprio non riesci a ricordare tutto quello che hai fatto tu stesso. Quindi puoi cercare chi ha fatto qualcosa e chiedere loro perché l'hanno fatto.
Ma se qualcuno vuole bypassare la pista di controllo, possono farlo. Se si tenta di impedire a qualcuno di aggirare la traccia di controllo, è probabile che tali restrizioni impediscano loro di svolgere il proprio lavoro.
Le persone possono mettere sudo
davanti a ogni comando per riflesso, anche quando non era necessario. E in caso di una vulnerabilità della sicurezza, l'esecuzione senza il comando sudo
non ti darà molti vantaggi in quanto se un utente malintenzionato compromette un processo in esecuzione, non importa se è stato eseguito con sudo
o meno, perché può solo execve
sudo
per ottenere gli stessi privilegi.
Argomenti perché usare sudo può essere cattivo
La password utente dà accesso a più privilegi. L'utente può digitare la password dell'utente frequentemente. Se un utente malintenzionato ottiene questa password, può essere utilizzata per eseguire comandi attraverso sudo
.
Un account utente compromesso fornisce effettivamente i privilegi di root
. Ricorda la parte in cui non si esegue come root
a meno che non sia necessario e dando agli account non più privilegi del necessario?
Se si accede come utente non root per tutte le attività che non richiedono i privilegi di root, si riduce l'esposizione. Non ottieni questo vantaggio se l'account ha accesso sudo
. Quelle attività che non sono state eseguite come root diventano un obiettivo più prezioso per un utente malintenzionato, se lo stesso account ha accesso sudo
.
Che altro puoi fare?
Se si desidera il meglio da entrambi i lati, è possibile assegnare a ciascun amministratore due accessi sul server. Un accesso per le attività quotidiane, che non hanno bisogno dei privilegi di root. E un accesso secondario con sudo
di accesso per quando ne ha bisogno. Ma poi l'unica cosa che è diversa tra quel secondo account e il login direttamente come root è la pista di controllo. Ma potrebbe essere più facile per le persone dimenticare che non dovrebbero utilizzare l'account con sudo
per tutto il tempo. Ricordare di non accedere come root
tutto il tempo sembra un po 'più facile da ricordare per la gente.
E riguardo la forzatura brute delle password?
Alcuni sostengono che è più facile forzare una password per un utente malintenzionato che deve solo indovinare una password e non il nome utente e la password. In realtà questo è un argomento debole.
Puoi configurare sshd
per consentire solo accessi utilizzando una chiave. Non è necessario consentire il login utilizzando una password. Se gli accessi alle password non sono consentiti, la forzatura bruta della password non è più un problema. Non c'è nemmeno bisogno di esistere una password, che dia accesso all'account root. E nessuno ha intenzione di indovinare la chiave segreta per l'autenticazione ssh.
Quando /root/.ssh/authorized_keys
contiene una chiave pubblica per ciascun amministratore, quelle chiavi pubbliche potrebbero essere utilizzate come traccia di controllo per mostrare chi ha fatto cosa. Ed è altrettanto semplice revocare l'accesso rimuovendo una chiave da authorized_keys
come con qualsiasi altro mezzo.