Root beveiliging Het meest gewilde account op je machine is het root (superuser) account.
Dit account heeft zeggenschap over de gehele machine, wat ook zeggenschap kan
inhouden over andere machines op het netwerk. Onthoud dat je het root account
alleen moet gebruiken voor hele korte specifieke taken en dat het meestal
uitgevoerd moet worden als een normale gebruiker. Zelfs kleine foutjes als
je ingelogd bent als root kunnen problemen veroorzaken. Hoe korter je
ingelogd bent met root privileges, hoe veiliger het is. Enkele trucks om te voorkomen dat je je computer overhoop haalt als root: Als je bezig bent met een complex commando, probeer het dan eerst op
een niet-destructieve manier ... vooral commando's die wildcards gebruiken:
als je bijvoorbeeld "rm foo*.bar" wilt doen, doe dan eerst "ls foo*.bar" om zeker te weten dat je de bestanden verwijdert die je wilde
verwijderen. Het gebruik van echo in plaats van destructieve
commando's werkt soms ook. Voorzie je gebruikers van een standaard alias voor het rm commando om
een bevestiging te vragen voordat ze bestanden verwijderen. Wordt alleen root om enkele specifieke taken uit te voeren. Als je
jezelf erop betrapt dat je probeert uit te vinden hoe iets werkt, ga dan
eerst terug naar de gewone gebruiker-shell, totdat je zeker weet
wat er als root gedaan moet worden. Het command path voor de root gebruiker is erg belangrijk. Het command
path (dat wil zeggen de PATH omgevingsvariabele) specificeert de
directory's waarin de shell zoekt naar programma's. Probeer het command path
voor de root gebruiker zoveel mogelijk te beperken en zet nooit
een . (hetgeen betekent "de huidige directory") in je PATH. Zorg er
bovendien voor dat je nooit directory's met schrijfpermissie in je zoekpad
hebt, omdat dit aanvallers toestaat om bestaande binary's aan te passen of
nieuwe binary's aan je zoekpad toe te voegen, hetgeen hen toestaat als root te
opereren de volgende keer dat je dat commando uitvoert. Gebruik nooit de rlogin/rsh/rexec tools (genaamd de r-utility's) als
root. Ze zijn onderhevig aan vele soorten aanvallen en zijn ronduit gevaarlijk
als je ze uitvoert als root. Maak nooit een .rhosts bestand aan voor
root. Het /etc/securetty bestand bevat een lijst met terminals
waarop root in kan loggen. Standaard (onder Red Hat Linux) is dit ingesteld
op alleen de lokale virtuele consoles (vty's). Wees erg voorzichtig met het
toevoegen van iets anders aan dit bestand. Je zou indirect op je normale
gebruikersaccount in moeten kunnen loggen en vervolgens su als dat
nodig is (hopelijk via of een ander
versleuteld kanaal), zodat er geen reden is waarom je direct als root in zou
moeten loggen. Wees altijd langzaam en weloverwogen als je bezig bent als root. Je
acties kunnen een heleboel dingen beïnvloeden. Denk na voordat je typt! Als het absoluut noodzakelijk is om iemand (hopelijk erg vertrouwd)
roottoegang tot je machine toe te staan, zijn er een aantal tools
die kunnen helpen. sudo staat gebruikers toe hun wachtwoord te
gebruiken om toegang te krijgen tot een beperkte set commando's als root.
Zodoende kun je, bijvoorbeeld, een gebruiker in staat stellen om verwijderbare
media uit te werpen en te mounten op je Linux box, maar verder geen andere
root privileges te hebben. sudo houdt ook een log bij van alle
geslaagde en mislukte sudo pogingen, zodat je uit kunt zoeken wie welk
commando gebruikte om wat te doen. Om deze reden werkt sudo zelfs
goed op plaatsen waar een aantal mensen root toegang hebben, omdat het je
helpt om aangebrachte wijzigingen bij te houden. Hoewel sudo gebruikt kan worden om bepaalde gebruikers bepaalde
privileges voor bepaalde taken te geven, heeft het een aantal tekortkomingen.
Het moet alleen gebruikt worden voor een beperkt takenpakket, zoals een
server opnieuw opstarten of nieuwe gebruikers toevoegen. Elk programma
waarbij het uitwijken naar een shell mogelijk is, zal root toegang
verschaffen aan een gebruiker die het aanroept via sudo. Dit omvat de
meeste tekstverwerkers bijvoorbeeld. Ook een programma zo onschadelijk als
/bin/cat kan worden gebruikt om bestanden te overschrijven, waarmee
het mogelijk zou kunnen worden om root te misbruiken. Beschouw sudo
als een middel voor het toekennen van verantwoordelijkheden en verwacht niet
dat het de root gebruiker kan vervangen en tevens veilig is.