För oss som är verksamma på nätet finns det få saker som är värre än att bli utsatt för intrång. Ingen vill vakna en morgon och upptäcka att hemsidan plötsligt är fylld med länkar till skumma försäljare av mystiska preparat eller billiga märkesväskor och solglasögon.
När någon väl tar sig in på din server så har de åtkomst till allt: De kan sabotera hemsidan, de kan läsa av all information som du har sparat i databasen inklusive dina kunders uppgifter, de kan använda din server för att begå ytterligare brott som till exempel DDoS-attacker och mycket mer.
Vi har tidigare förklarat vad en VPS är, vilka kunskaper som krävs för att hantera en och vilka förberedelser som krävs för att du ska komma igång. Innan vi ger oss in på den roliga biten med att bygga vår hemsida så behöver vi först ordna något ännu viktigare: Säkerheten.
Så säkrar du upp din VPS hos Loopia med root och sudo
Du kommer upptäcka att du blir utsatt för alla möjliga typer av intrångsförsök, men vi ska börja med att skydda det mest kritiska hos en Internet-ansluten server: SSH.
SSH är protokollet som används för att ansluta till servern för att ge den kommandon. Ifall du har följt våra tidigare inlägg i serien om LoopiaVPS så känner du till att SSH är det du har använt dig av hittills för att ansluta till servern. Över 98% av alla intrångsförsök via SSH sker med användarnamnet root, vilket kanske inte så svårt att föreställa sig då root är ett standardkonto med administrativa rättigheter för alla Unix-baserade operativsystem, förutom de mest obskyra.
Det vi ska börja med är att skapa ett nytt konto med administrativa rättigheter och stänga av möjligheten att logga in som root via SSH. Det är viktigt att det sker i rätt ordning, annars kan du råka låsa ut dig helt!
I våra exempel använder vi Ubuntu, så instruktionerna kanske inte stämmer fullt ut ifall du använder en annan distro. Dessa instruktioner förutsätter även att du har läst och följt våra tidigare inlägg om LoopiaVPS.
Skapa ett nytt konto med administrativa rättigheter
Troligtvis har du redan programmet sudo installerat, men vi bör försäkra oss om detta med följande kommando:
apt-get install sudo
Ifall programmet redan är installerat så försöker det uppdateras. Ifall senaste versionen redan är installerad så sker inget särskilt.
sudo används för att tillfälligt ge en användare administrativa rättigheter, förutsatt att användaren har tillåtelse att använda sudo. Vi kommer prata mer om det snart.
Skapa en ny användare
Nästa steg är att skapa en ny användare. Jag har valt användarnamnet loopia-support, men du kan självklart välja vad du vill:
adduser loopia-support
Välj gärna ett personligt användarnamn som inte är kopplat till företaget, och undvik ”vanliga” användarnamn som till exempel admin, då intrångsförsök med även dessa är vanliga. När du kör kommandot får du välja ett lösenord och fylla i ett par andra uppgifter. Av dessa är det endast lösenordet som är viktigt, resten kan du lämna blankt om du önskar. Tänk på att användarnamnet, precis som allt annat i de flesta Unix-miljöer, är skiftlägeskänsligt! ”Loopia-Support” är inte detsamma som ”loopia-support”.
Lägg till tillfälliga administrativa rättigheter för en användare
Den användare du just skapat är just nu en ganska ordinär användare som inte har rätt att göra något spektakulärt. Att ge en användare möjlighet att köra vilket kommando som helst, när som helst, är en enorm säkerhetsrisk. Därför kommer vi att använda oss av sudo. sudo används för att ge användaren tillfälliga administrativa rättigheter.
För att köra ett kommando med administrativa rättigheter så skriver du helt enkelt sudo före kommandot du önskar köra, till exempel sudo apt-get update
Vi ger en användare sudo-rättigheter med följande kommando:
adduser loopia-support sudo
Detta kommando lägger till användaren loopia-support i gruppen sudo. Alla användare i gruppen sudo har full åtkomst till att använda kommandot.
Lägg till sudo-rättigheter med kommandot visudo
En alternativ metod att ge användaren sudo-rättigheter är genom kommandot visudo. Ifall du kör visudo så kommer en textfil att öppnas som innehåller bland annat en rad som ser ut såhär:
root ALL=(ALL:ALL) ALL
Kopiera hela den raden och klistra in precis under, men byt ut root mot ditt användarnamn:
root ALL=(ALL:ALL) ALL loopia-support ALL=(ALL:ALL) ALL
När du sparar denna fil så kommer användaren kunna använda sudo. För att testa kan du byta till din nya användare med kommandot su loopia-support. Du byter såklart ut loopia-support mot det användarnamn du har valt. Eftersom du är inloggad som root när du kör detta kommando så behöver du inte ange ett lösenord, utan loggas in direkt som den nya användaren.
Testa att sudo fungerar som det ska
För att testa ifall sudo fungerar korrekt så kan du köra till exempel följande kommandon, ett i taget:
apt-get update sudo apt-get update
När du ska köra sudo så måste du autentisera dig genom att skriva in användarens lösenord. När du väl har gjort det så kommer du att förbli autentiserad i fem minuter. Under denna period behöver du fortfarande använda sudo, men du behöver inte skriva in lösenordet för varje kommando. Det kallas ofta att ”köra ett kommando som root”, trots att det är inte användarnamnet root som används, när administrativa rättigheter krävs. För enkelhetens skull kommer vi att använda det uttrycket i fortsättningen då och då i dessa instruktioner.
Ifall allt verkar fungerar som det ska, stäng ned anslutningen till din VPS och anslut på nytt med ditt nya användarnamn istället.
Secure Shell, med extra Secure
Vi nämnde tidigare att över 98% av alla intrångsförsök via SSH sker med användarnamnet root, så en väldigt enkel metod för att skydda sig mot dessa intrång är att stänga av möjligheten att logga in som root. Detta gör vi genom att redigera filen /etc/ssh/sshd_config. Om du följt våra instruktioner till punkt och pricka har du troligtvis ingen enkel editor installerad, och då rekommenderar vi att du installerar programmet nano som är en väldigt enkel editor. Vi redigerar därefter filen med följande kommando:
sudo nano /etc/ssh/sshd_config
Leta upp denna rad:
PermitRootLogin yes
Här byter du helt enkelt ut ”yes” mot ”no”.
Som standard används SSH på port 22. För att höja säkerheten ännu mer så kan du byta ut den till något annat genom att ändra raden ”Port 22” till valfri port mellan 1-65535. Du bör dock välja en ganska hög siffra för att minska risken att kollidera med en annan port som du kan ha användning av senare.
Spara sedan filen och stäng. I nano gör du detta genom att trycka Ctrl+X. Ifall du har ändrat någonting kommer programmet fråga ifall du vill spara. Svara ja genom att trycka ”y” och enter. För att våra nya inställningar ska börja gälla behöver du starta om SSH-servern:
service ssh restart
När någon nu försöker logga in som root via SSH så kommer de få ett felmeddelande som säger att inloggningen misslyckades, som om de hade angett ett felaktigt lösenord. Ifall du har bytt SSH-port så behöver du manuellt ange detta i framtiden när du ansluter till din server.
Tips! Om du råkar låsa dig själv ute så kan du fortfarande logga in som root via Skärmkonsolen som du hittar i din Loopia Kundzon eftersom den inte ansluter via SSH.
Andra nyttigheter
Använd sunt förnuft
Det vi har gjort hittills är ett par väldigt konkreta åtgärder för att förhindra intrång, men du får inte glömma bort att du även behöver använda sunt förnuft. Du har säkert hört det hundratals gånger förut, men det tål att upprepas: Använd ett säkert lösenord som är både långt och svårt att gissa sig fram till, lämna inte ut dina uppgifter till personer du inte litar på till hundra procent.
Även ditt användarnamn bör vara något ”ovanligt”. I Intrångsförsök mot WordPress-sidor är sajterna med användarnamnet ”admin” de som utsätts allra mest.
Blockera IP-adresser efter för många misslyckade inloggningsförsök
Ett till bra program som du rekommenderas installera är fail2ban, som automatiskt blockerar IP-adresser efter för många misslyckade inloggningsförsök. Standardreglerna som följer med vid en installation av fail2ban brukar räcka för den genomsnittliga servern, men i vissa fall krävs särskilda regler. Vi kommer dock inte gå igenom de olika reglerna i dessa artiklar, utan du bör istället läsa officiella dokument och instruktioner från utvecklaren för mer information.
Använd filöverföringsprotokollet SFTP
För att föra över filer mellan dator och server så är FTP ett vanligt protokoll, men i grund och botten är FTP ett ganska osäkert protokoll om inte SSL används vid anslutningen. Vi rekommenderar att du istället använder SFTP, ett filöverföringsprotokoll som går över SSH. På så sätt använder du automatiskt alltid en säker anslutning, och loggar in med samma användarnamn och lösenord som du använder vid en vanlig SSH-inloggning.
De flesta moderna FTP-klienter, till exempel kostnadsfria FileZilla, har stöd för SFTP. Om du anger port 22 vid anslutningen så förstår FileZilla automatiskt att du försöker ansluta via SFTP istället för vanlig FTP. Om du har bytt port för SSH så behöver du dock ange den nya porten du har valt, och du kan behöva välja SFTP som protokoll manuellt.
Har du fler funderingar?
Det här är den tredje delen i en serie om LoopiaVPS där vi delar med oss av tips, råd och instruktioner som hjälper dig att snabbt och enkelt komma igång med din alldeles egen virtuella server.
I nästa inlägg om LoopiaVPS berättar vi hur du kommer igång med din hemsida. Har du fler frågor eller funderingar om din VPS är du varmt välkommen att maila oss på support@loopia.se.
//Stefan P, Loopia Support
Läs övriga delar i serien om LoopiaVPS:
När kommer Del 4? Spänningen stiger!
Hej Nils,
Det skrivs för fullt på fortsättningen av vår VPS-guide. Vi vågar dock inte säga exakt när del 4 kommer, men förhoppningsvis så snart som möjligt! Vi hojtar till när den är ute 🙂
Hej Nils!
Nu finns del 4 av vår VPS-guide ute, där vi förklarar hur du installerar WordPress på din VPS och kommer igång med din hemsida: https://blogg.loopia.se/2016/10/12/kom-igang-med-din-egen-vps-hos-loopia-installera-wordpress/ Trevlig läsning 🙂