Praktisk Guide: Linux Hardening på Ubuntu 25.04
Når man installerer en frisk Ubuntu-server, uanset om det er på en cloud-VPS, en Raspberry Pi eller en lokal maskine, er den designet til at være brugervenlig – ikke nødvendigvis maksimalt sikker ud af kassen. Mange services kører som standard, firewalls er ofte slået fra, og SSH er åbent for alt og alle.
“Hardening” er processen, hvor man mindsker serverens angrebsflade (Attack Surface) ved at fjerne unødige services, opstramme adgangskontroller og aktivere defensive mekanismer.
Her er en praktisk, trin-for-trin guide til basal hardening af en Ubuntu 25.04 server.
1. Step Zero: Hold Systemet Opdateret
Hackere elsker kendte sårbarheder (CVE’er). Det allerførste skridt efter en installation er at sikre, at alle pakker og kernen er fuldt opdateret.
sudo apt update && sudo apt upgrade -y
Automatiser det: For at slippe for at huske det manuelt, bør du aktivere unattended-upgrades, som automatisk installerer sikkerhedsopdateringer i baggrunden:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
2. Hardening af SSH (Secure Shell)
SSH er hoveddøren til din server, og det er oftest her automated botnets banker på med brute-force angreb hele døgnet rundt. Vi skal have strammet konfigurationen i filen /etc/ssh/sshd_config.
Åbn filen i nano:
sudo nano /etc/ssh/sshd_config
Tilføj eller ret følgende linjer:
- Forbyd root-login: Man bør aldrig logge direkte ind som root. Log ind som din “sudo” bruger først.
PermitRootLogin no - Slå password-baseret login fra (Brug SSH-Nøgler): Passwords kan brute-forces. Krypterede Nøgler (Ed25519 eller RSA) kan ikke.
PasswordAuthentication no - Ændr standardporten (Optional, men støjreducerende): Bots scanner primært port 22. Flytter du den til fx port 22022, undgår du 99% af larmen i dine logs. Pssst… Husk blot at åbne porten i din firewall først!
Port 22022
Genstart SSH-servicen, når du har gemt filen:
sudo systemctl restart ssh
Tip: Luk ikke din nuværende SSH-forbindelse før du har bekræftet, at du kan logge ind via en ny terminal, ellers kan du låse dig selv ude!
3. Opsætning af UFW (Uncomplicated Firewall)
Ubuntu kommer med UFW indbygget. Som standard tillader den al indgående og udgående trafik, hvis den overhovedet er aktiveret. En hardening best practice er “Default Deny” (Afvis alt, som ikke specifikt er tilladt).
Kør følgende som sudo:
# Sæt standardregler
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Tillad SSH (VIGTIGT! Sæt reglen til port 22, eller den port du ændrede til ovenfor)
sudo ufw allow 22022/tcp
# Tillad web-trafik (hvis serveren kører en web-app)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Aktivér firewallen
sudo ufw enable
Tjek at reglerne blev sat korrekt med sudo ufw status verbose.
4. Forsvar mod Brute-Force med Fail2Ban
Selv hvis din SSH bygger på nøgler, vil bots blive ved med at forsøge. Fail2Ban er en genial daemon, der analyserer dine authentication-logs (f.eks. /var/log/auth.log). Hvis en IP-adresse fejler login gentagne gange (f.eks. 5 gange i træk), indsætter Fail2Ban proaktivt en regel i firewallen (UFW) for at blokere pågældende IP.
Installation:
sudo apt install fail2ban -y
Konfiguration:
Du konfigurerer det ved at kopiere .conf til .local (så det ikke overskrives ved opdateringer):
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Find [sshd]-blokken og sikre dig at parameteren enabled = true er sat. Genstart derefter:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
5. Slå Ubrugte Netværks-protokoller fra (IPv6)
Hvis din applikation eller server-infrastruktur ikke bevidst anvender IPv6-adresser, anbefales det ud fra et “Least Privilege” / “Attack Surface Reduction” perspektiv at deaktivere det helt for at fjerne en stribe protokol-sårbarheder og undslippende trafikveje.
Åbn sysctl:
sudo nano /etc/sysctl.conf
Træn koden ned i bunden:
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
Anvend ændringerne:
sudo sysctl -p
6. Del og Hersk: Fil-rettigheder og Systemsegmentering
Hvis en angriber formår at uploade et malicious script (f.eks. et PHP eller perl script via en websårbarhed), bør vi proaktivt forhindre, at det kan eksekveres i kritiske tidsrum og mapper (f.eks. /tmp).
Man kan forhindre /tmp-mappen i at eksekvere scripts ved at tweake /etc/fstab og bede systemet om at mounte den med flagene noexec, nosuid og nodev.
Desuden bør du køre automatiserede rettighedstjek, f.eks. med værktøjet Lynis, som scanner din voksende Ubuntu-maskine og fremhæver svage adgangskontroller på kerneniveau.
sudo apt install lynis
sudo lynis audit system
Konklusion
Hardening er ikke en statisk opgave, man gør én gang – det er en iterativ proces (Life Cycle). Ovenstående 6 trin sikrer dig dog den fundamentale “baseline”, der tager dig fra en åben standard-installation til et solidt, forsvaret system, der vil holde de bredeste spray-and-pray botnets afvisende væk fra din Ubuntu 25 dør.
Kilder
- CIS Ubuntu Linux Benchmarks - Den globale industri-standard for hardening af Linux-systemer.
- Ubuntu Security Guide (USG) - Canonicals officielle dokumentation for sikkerhed og compliance.
- NIST SP 800-123 - NIST guide til generel server-sikkerhed.
- Fail2Ban Project - Officiel kildekode og dokumentation for Fail2Ban.
> Quiz: Test din viden
1. Hvad er det første trin i Linux Hardening ifølge artiklen?
2. Hvad automatiserer unattended-upgrades?
3. Hvilken konfigurationsfil bruges til SSH hardening?
4. Hvad er formålet med SSH hardening?