La prossima cosa da controllare è la sicurezza contro attacchi di utenti locali. Abbiamo detto solo utenti locali? Si!
Ottenere l'accesso all'account di un utente locale è uno dei primi tentativi che gli intrusi fanno per arrivare all'account di root. Con una debole sicurezza locale, possono "promuovere" il loro accesso di utente ad accesso di root usando una serie di bug e servizi locali mal configurati. Se si stringeranno le maglie della sicurezza locale, un intruso dovrà saltare un ulteriore ostacolo.
Gli utenti locali possono creare un sacco di danni anche se sono veramente chi dicono di essere. È una pessima idea fornire account a persone che non si conoscono o che non si sa come contattare.
Bisognerà essere certi di accordare agli utenti solo i privilegi indispensabili per il lavoro che devono svolgere. Se si da al proprio figlio (10 anni) un account, si potrebbe volere che abbia accesso solo a un programma di scrittura o di disegno, ma che non possa cancellare dati non suoi.
Diverse regolette da seguire quando si fornisce ad altri un accesso legittimo al sistema Linux:
Dare loro solo i privilegi di cui hanno bisogno.
Fare attenzione dove e quando fanno un login, o da dove dovrebbero farlo.
Assicurarsi di rimuovere gli account inutilizzati, che possono essere determinati usando il comando "last" e/o controllando se nei file di log ci sono segni di attività dell'utente.
È consigliabile, per facilitare la manutenzione degli account e per permettere una più facile analisi dei log, l'uso della stessa userid su tutti i computer e le reti.
La creazione di gruppi di utenti dovrebbe essere assolutamente proibita. Gli account degli utenti permettono l'attribuzione delle responsabilità, e questo non è possibile con account di gruppo.
Molti account utente locali che vengono usati per compromettere la sicurezza non sono stati utilizzati per mesi o anni. Visto ciò, forniscono un ideale mezzo di attacco.
L'account più preso di mira sulla vostra macchina è quello di root (superutente) . Questo account ha autorità su tutta la macchina e può anche includere l'autorità su altre macchine della rete. Si ricordi che si dovrebbe usarlo solo per compiti specifici e molto brevi, usando quindi per la maggior parte del tempo l' utente normale. Anche piccoli errori fatti da root possono causare problemi. Meno si useranno i privilegi di root, più si sarà al sicuro.
Alcuni trucchi per evitare di fare danni da root sul computer:
Quando si esegue un comando complesso, provare prima ad eseguirlo in modo non distruttivo... soprattutto comandi che usano le wildcard: per es., se si vuole eseguire rm foo*.bak, prima si usi ls foo*.bak e ci si assicuri che si stanno per cancellare i file giusti. Anche usare echo al posto di comandi distruttivi può andare bene.
Si fornisca agli utenti un alias predefinito per il comando rm per chiedere conferma della cancellazione dei file.
Si usi root solo per portare a termine singoli compiti specifici. Se ci si trova a cercare di immaginare come fare qualcosa, si torni alla shell di utente normale finché non si sarà sicuri di cosa fare da root.
Il percorso dei comandi per l'utente root è molto importante. Questo (cioè la variabile d'ambiente PATH) specifica le directory in cui la shell cerca i programmi. Si provi a limitare il percorso di root il più possibile e non si includa mai . (che significa "la directory corrente") nella variabile PATH. Inoltre, non si abbiano mai directory scrivibili nel percorso di ricerca, perché questo potrebbe permettere a degli intrusi di modificare o inserire nuovi eseguibili nel percorso, permettendo loro di divenire root la prossima volta che verrà eseguito quel comando.
Non usare mai la suite di comandi rlogin/rsh/rexec (dette le r-utilities) da root. Sono soggette a molti tipi di attacco e sono decisamente pericolose se eseguite da root. Non creare mai un file .rhosts per root.
Il file /etc/securetty contiene una lista di terminali da cui root può fare login. Per default (su RedHat Linux) è impostata sulle sole console virtuali locali (vtys). Si stia attenti quando si aggiunge qualcosa a questo file. Sarebbe meglio loggarsi da remoto come utente normale e poi usare su se se ne ha bisogno (preferibilmente attraverso la Sezione 6.4 o un altro canale cifrato), in modo che non sia necessario fare un login remoto da root.
Si cerchi di essere sempre calmi e riflessivi quando si è root. Le proprie azioni possono avere effetti su molte cose. Pensare prima di digitare!
Se si deve assolutamente permettere a qualcuno (possibilmente molto fidato) di accedere da root alla macchina, ci sono un paio di strumenti che possono essere d'aiuto. sudo permette agli utenti di usare la loro password per accedere a una gamma limitata di comandi come root. Questo permette, per esempio, di lasciare che un utente espella e monti media removibili sul computer, senza avere altri privilegi di root. sudo inoltre tiene un log di tutti i tentativi, riusciti e non, di usarlo, permettendo di rintracciare chi ha usato il comando per fare cosa. Per questa ragione sudo funziona bene persino in posti dove molte persone hanno accesso di root, perché permette di rintracciare i cambiamenti fatti.
Nonostante sudo possa essere usato per dare a specifici utenti specifici privilegi per specifici lavori, ha alcune mancanze. Dovrebbe essere usato solo per una limitata serie di compiti, come riavviare un server o aggiungere utenti. Ogni programma che offre un modo per tornare alla shell darà un accesso di root a un utente che lo usi attraverso sudo. Questo include la maggior parte degli editor, per esempio. Inoltre, un programma innocuo come /bin/cat può essere usato per sovrascrivere file, il che permetterebbe di prendere possesso del superuser. Si consideri sudo come un mezzo per conoscere le responsabilità di certe azioni, e non si speri che possa sostituire root rimanendo sicuro.