📬 En uppföljare till Linux-grunderna och SSH-inlägget
Nästa steg efter säker inloggning

Vi har gått igenom Linux-grunderna och hur du loggar in säkert med SSH-nycklar. Nu tar vi hand om resten av dörrarna in till servern — med ufw, Ubuntus förenklade brandvägg.

En server utan brandvägg litar blint på att varje tjänst som råkar lyssna på ett nätverksuttag ska vara korrekt konfigurerad och säker. Det håller sällan i praktiken. En brandvägg vänder på steken: allt är stängt som standard, och du öppnar bara det du faktiskt behöver.

ufw (Uncomplicated Firewall) är ett enkelt gränssnitt ovanpå Linux egentliga brandväggsmotor (iptables/nftables). Namnet är ingen överdrift — det är den enklaste vägen in i brandväggshantering på Linux.

Testa direkt: status och installation
Öppna en terminal och prova
Kolla nuvarande status
$ sudo apt install ufw # installera om det inte redan finns $ sudo ufw status # visar om brandväggen är aktiv och vilka regler som gäller Status: inactive
⚠️ Aktivera aldrig ufw på en server du bara når via SSH innan du lagt till en regel som tillåter SSH. Gör du det låser du dig ute direkt, och sitter servern på distans är den enda vägen tillbaka in en fysisk konsol eller en molnkonsol.
Grundkommandon
Sex saker du kommer använda om och om igen
01 — Tillåt SSH innan du aktiverar

Detta är alltid första steget, i den ordningen:

$ sudo ufw allow ssh # eller: sudo ufw allow 22/tcp $ sudo ufw enable # aktivera brandväggen — bekräfta med y
02 — Släpp in fler tjänster vid behov

Kör du en webbserver, öppna bara det porten kräver:

$ sudo ufw allow 80/tcp # HTTP $ sudo ufw allow 443/tcp # HTTPS
03 — Applikationsprofiler

Många installerade program registrerar färdiga profiler så du slipper komma ihåg portnummer:

$ sudo ufw app list # visa tillgängliga profiler $ sudo ufw allow 'Nginx Full' # öppnar både port 80 och 443 på en gång
04 — Ta bort eller neka en regel

Ångrat en regel, eller vill blockera något specifikt?

$ sudo ufw status numbered # visa regler med nummer $ sudo ufw delete 3 # ta bort regel nummer 3 $ sudo ufw deny from 203.0.113.7 # blockera en specifik IP helt
05 — Begränsa brute-force med rate limiting

ufw kan automatiskt strypa en IP som gör för många anslutningsförsök på kort tid — perfekt för SSH:

$ sudo ufw limit ssh # blockerar tillfälligt IP:er med för många försök
06 — Logga trafik

Vill du se vad som faktiskt blockeras eller släpps igenom:

$ sudo ufw logging on $ sudo tail -f /var/log/ufw.log # följ loggen i realtid
"En brandvägg som tillåter allt skyddar ingenting. Poängen är inte att öppna portar — det är att medvetet välja vilka du inte stänger."
Fällan alla missar: Docker och ufw
En vanlig och förvirrande överraskning

Kör du Docker på samma server är det värt att veta redan nu: Docker manipulerar iptables-reglerna direkt och kan därför öppna portar som ser stängda ut enligt ufw status — trots att du aldrig gav ett explicit tillstånd. En container som publicerar en port med -p 8080:80 kan bli nåbar utifrån även om ufw säger nej.

💡 Kör du både ufw och Docker på samma maskin, dubbelkolla alltid faktisk exponering med ett verktyg som nmap mot serverns egen IP utifrån — lita inte enbart på ufw status. Vi återkommer med djupare Docker-härdning i ett kommande inlägg.

// Sammanfattning — ufw

  • ufw är ett enkelt gränssnitt ovanpå Linux egentliga brandväggsmotor
  • Standardprincipen: allt stängt, öppna bara det du faktiskt behöver
  • Tillåt alltid SSH innan du aktiverar brandväggen på en fjärransluten server
  • ufw allow, ufw delete och ufw deny täcker de flesta vardagliga behov
  • ufw limit bromsar automatiskt brute-force-försök mot en tjänst
  • Docker kan kringgå ufw-regler genom att skriva direkt till iptables — verifiera med nmap utifrån

En brandvägg löser inte allt, men den täpper till den enklaste vägen in: tjänster som av misstag lyssnar mot hela internet utan att någon bett dem om det. Tillsammans med nyckelbaserad SSH-inloggning har du nu de två grundstenarna i att härda en Linux-server som faktiskt går att lita på.