VPS-säkerhet: de första 10 inställningarna
Vi går igenom inställningarna för SSH, brandvägg, fail2ban och uppdateringar på en ny virtuell server i rätt ordning, med fungerande kommandon och vanliga misstag.

Det första för VPS-säkerhet är att uppdatera systemet, skapa en användare med sudo-behörighet i stället för root och sätta upp inloggning med SSH-nyckel. Därefter stänger du SSH-inloggning för root och med lösenord, öppnar bara nödvändiga portar i brandväggen, installerar fail2ban, aktiverar automatiska säkerhetsuppdateringar och planerar regelbunden backup.
Var börjar man med VPS-säkerhet?
En nystartad virtuell server är ett mål för automatiska skannrar från det ögonblick den ansluts till internet. De här botarna riktar sig inte mot något visst företag utan provar varje maskin där de hittar en öppen SSH-port och ett svagt lösenord. Att tusentals inloggningsförsök hamnar i serverloggarna redan under de första timmarna är helt normalt.
Därför börjar VPS-säkerhet med några grundinställningar under den första timmen efter installationen. De tio stegen nedan är skrivna för servrar baserade på Ubuntu och Debian; i andra distributioner skiljer sig pakethanterare och tjänstenamn, men logiken är densamma.
Om serverdrift är nytt för dig, eller om du driver webbplatsen med ett utvecklingsteam, bör du från början klargöra vem som ansvarar för de här stegen. Säkerhetsinställningar är inte något som görs en gång och glöms utan en process som kräver regelbundet underhåll.
Det här bör du veta innan du börjar
Innan du går vidare till installationen bör du ha följande: serverns IP-adress, den första root- eller administratörsåtkomsten från leverantören och en terminal på din egen dator. I Windows 10 och 11 finns OpenSSH-klienten inbyggd i PowerShell; i macOS och Linux räcker Terminal.
Det är också en bra vana att spara kommandona i en anteckningsfil medan du arbetar. Att veta vilken inställning du ändrade och när gör det lättare att hitta orsaken om ett problem uppstår senare, och gör att du kan upprepa samma installation på en andra server. Fastnar du under installationen kan du fråga vårt team via sidan kontakt.
System- och användarinställningar
De två första stegen är att rensa servern från kända sårbarheter och att sköta det dagliga arbetet med ett annat konto än root.
1. Uppdatera systemet
Leverantörens färdiga image kan ha skapats för flera månader sedan. Det första du gör är att uppdatera alla paket med aktuella säkerhetsrättningar. Kom det en kärnuppdatering ska du starta om servern.
sudo apt update && sudo apt upgrade -y
sudo reboot2. Skapa en användare med sudo-behörighet
Att arbeta med root-kontot innebär att ett enda felaktigt kommando kan påverka hela systemet. Skapa en egen användare och lägg till den i sudo-gruppen; använd administratörsbehörighet bara när det behövs.
sudo adduser yonetici
sudo usermod -aG sudo yoneticiSSH-säkerhet
SSH är serverns ytterdörr. De två mest effektiva stegen för SSH-säkerhet är att använda nycklar i stället för lösenord och att stänga inloggning för root.
3. Sätt upp inloggning med SSH-nyckel
Skapa ett nyckelpar på din egen dator och kopiera den publika nyckeln till servern. I macOS och Linux gör kommandot ssh-copy-id det i ett steg; i Windows kan du överföra den publika nyckeln till servern med PowerShell. Att ge nyckeln en lösenfras (passphrase) ger ett extra skydd även om din dator skulle hamna i orätta händer.
ssh-keygen -t ed25519
ssh-copy-id yonetici@SUNUCU_IPssh-keygen -t ed25519
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh yonetici@SUNUCU_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"4. Stäng inloggning för root och med lösenord
När du har bekräftat i en andra terminal att inloggning med nyckel fungerar, skärper du SSH-konfigurationen. Att testa konfigurationen före ändringen förhindrar att en felaktig rad stoppar tjänsten.
Obs: i vissa molnimages kan extra filer i mappen /etc/ssh/sshd_config.d/ öppna lösenordsinloggning igen. Kontrollera även den mappen efter att du har gjort inställningen.
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yessudo sshd -t
sudo systemctl restart sshBrandvägg och Fail2ban
På servern ska bara de portar vara öppna som verkligen tjänar omvärlden. Rätt brandväggsinställningar minskar angreppsytan, och fail2ban blockerar automatiskt adresser som envist försöker.
5. Aktivera brandväggen
I Ubuntu ger UFW ett enkelt gränssnitt ovanpå iptables. Tillåt SSH först och aktivera sedan brandväggen; blir ordningen den omvända bryts din anslutning.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose6. Installera Fail2ban
Fail2ban bevakar loggarna och blockerar IP-adresser med upprepade misslyckade inloggningar under en viss tid. Gör inställningarna inte direkt i huvudfilen utan i filen jail.local, som inte skrivs över vid uppdateringar.
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban[sshd]
enabled = true
maxretry = 5
bantime = 1h
findtime = 10msudo systemctl restart fail2ban
sudo fail2ban-client status sshdUppdateringar och tjänster
En stor del av säkerhetshålen kommer från programvara där rättningen för länge sedan publicerats men inte installerats. Varje tjänst som körs i onödan är dessutom en risk i sig.
7. Automatiska säkerhetsuppdateringar
Paketet unattended-upgrades installerar säkerhetsrättningar utan att du behöver ingripa. Större versionsbyten gör du i stället kontrollerat och för hand, efter att du har tagit en backup.
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades8. Kontrollera öppna portar och tjänster
Lista vilken tjänst som lyssnar på vilken port. Tjänster som bara ska nås inifrån servern, som databasen, ska lyssna på adressen 127.0.0.1 och inte vara öppna mot omvärlden. Stäng tjänster du inte använder.
sudo ss -tulpn
sudo systemctl disable --now SERVIS_ADIÖvervakning och backup
Publicerar du en webbplats på servern ska HTTPS läggas till de här stegen; installation och automatisk förnyelse av det kostnadsfria certifikatet har vi beskrivit i inlägget installera SSL-certifikat.
9. Övervaka loggar och resurser
Det enklaste sättet att upptäcka ett angrepp är loggarna. Kontrollera regelbundet SSH-inloggningar, diskutrymme och ovanlig processoranvändning. Att serverns klocka går rätt är också nödvändigt för att loggarna ska ge mening.
sudo journalctl -u ssh --since today
df -h
timedatectl10. Planera backup och ögonblicksbilder
Ingen säkerhetsåtgärd är hundra procent; den sista försvarslinjen är backupen utanför servern. Använd leverantörens funktion för ögonblicksbilder, men förlita dig inte enbart på den: skicka även backup av databas och filer till ett separat lagringsutrymme och testa återställningen regelbundet. För strategin kan du titta på vår guide om hur man tar backup.
Om du använder Docker
Portar som publiceras med Docker redigerar iptables-reglerna direkt och kan därför kringgå UFW-reglerna. Alltså kan en databasport som ser stängd ut i UFW ändå vara nåbar utifrån om den har publicerats med docker run -p.
Lösningen är att binda containerportar som bara ska nås inifrån servern till adressen 127.0.0.1 och bara öppna portarna 80 och 443 utåt via en omvänd proxy (reverse proxy). För detaljer kan du titta på Dockers officiella nätverksdokumentation.
docker run -d -p 127.0.0.1:5432:5432 postgresVanliga misstag och nästa steg
De här tio stegen är en början. Själva applikationen som körs på servern ska också hållas uppdaterad, administrationspaneler ska skyddas med tvåstegsverifiering och en plan för snabb reaktion ska finnas vid misstänkta händelser. Vad du gör efter ett angrepp har vi gått igenom steg för steg i inlägget webbplatsen har blivit hackad.
Vill du inte sköta serverdriften med ditt eget team tar vår tjänst hastighet och prestanda, som hanterar webbplatsens hosting, säkerhet och snabbhet tillsammans, över den bördan. I våra projekt inom e-handelsplattform, webbdesign och branschanpassade mjukvarulösningar planeras serversäkerheten som en del av driftsättningen.
| Misstag | Slutsats | Rätt sätt |
|---|---|---|
| Att aktivera UFW utan att tillåta SSH | Åtkomsten till servern bryts | Först ufw allow OpenSSH |
| Att stänga lösenordsinloggning utan att testa nyckeln | Du låser ut dig själv | Testa i en andra terminal |
| Att lämna databasen öppen utåt | Data som är direkt utsatt för angrepp | Bind den till 127.0.0.1 |
| Att förvara backupen på samma server | Backupen försvinner tillsammans med servern | Använd ett separat lagringsutrymme |
| Att skjuta upp uppdateringar i månader | Kända sårbarheter står kvar öppna | Automatisk säkerhetsuppdatering |
Vanliga frågor
01Ökar säkerheten om man byter SSH-port?
Att byta standardporten 22 minskar den automatiska bottrafiken och trängseln i loggarna, men det är ingen verklig säkerhetsåtgärd. Det verkliga skyddet kommer från åtgärder som inloggning med nyckel, avstängd lösenordsinloggning och fail2ban. Byter du port, glöm inte att tillåta den nya porten i brandväggen.
02Hanterad server eller sköta den själv?
Behärskar du Linux-administration och kan avsätta tid för regelbundet underhåll kan du sköta VPS:en själv. Om inte ser en hanterad tjänst eller ett erfaret team till att uppdateringar och övervakning inte glöms; eftersatt underhåll är den vanligaste orsaken till säkerhetshål.
03Vad gör jag om Fail2ban blockerar mig själv?
Logga in på servern via leverantörens webbkonsol och häv blockeringen med kommandot sudo fail2ban-client set sshd unbanip IP_ADRESI. Har du en fast IP-adress kan du förhindra upprepning genom att lägga till den på raden ignoreip i filen jail.local.
På en ny VPS gör de här tio inställningarna att den allra största delen av de automatiska angreppen går i tomma intet redan från första dagen; tillsammans med regelbundna uppdateringar och testade backuper bildar de en stabil grund. Vill du sköta serverns säkerhet och snabbhet tillsammans, med mätningar, kan du läsa om Auroras tjänst hastighet och prestanda.


