Checklista för härdning av Linux-server
15 min läsning - 8 maj 2026

Steg-för-steg-checklista för att härda en Linux-server. Täcker SSH, brandväggar, patchning, filbehörigheter, SELinux/AppArmor och revisionsloggning
Checklista för säkerhetsåtgärder för Linux-servrar
En standardinstallation av Linux är inte en säker Linux-installation. Felkonfigurationer som öppen root-åtkomst via SSH, svaga brandväggar och opatchad programvara står för majoriteten av säkerhetsöverträdelserna. Nya servrar utsätts för automatiska skanningar inom några minuter efter att de har gått online, så säkerhetsåtgärder bör vidtas före allt annat.
Denna checklista täcker de viktigaste stegen: låsa SSH, konfigurera brandväggar, installera uppdateringar, skärpa filbehörigheter, aktivera obligatoriska åtkomstkontroller och ställa in loggning av granskningar.
Lås SSH
SSH är din primära åtkomstpunkt och det första som angripare undersöker. Standardkonfigurationen (lösenordsautentisering, root-inloggning, port 22) är precis vad automatiserade skannrar letar efter.
Skapa ett Ed25519-nyckelpar, som erbjuder bättre säkerhet och prestanda än RSA:
ssh-keygen -t ed25519När nyckelbaserad inloggning fungerar, uppdatera /etc/ssh/sshd_config:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers yourname
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2Ändra standardporten från 22 till något mindre uppenbart. Detta kommer inte att stoppa en beslutsam angripare, men det minskar störningarna från automatiserade skanningar avsevärt.
Testa alltid ändringar från en andra terminal innan du stänger din aktuella session. Kör sudo sshd -t för att kontrollera om det finns syntaxfel, och sedan systemctl reload sshd för att tillämpa utan att avbryta aktiva anslutningar.
Lägg till tvåfaktorsautentisering
2FA innebär att en angripare behöver både din SSH-nyckel och fysisk åtkomst till din enhet. Installera Google Authenticator PAM-modulen:
sudo apt install libpam-google-authenticator # Debian/Ubuntu
sudo dnf install google-authenticator # RHEL/FedoraKör google-authenticator för varje användare för att generera en hemlig nyckel och återställningskoder. Förvara återställningskoderna offline.
Lägg till denna rad i /etc/pam.d/sshd:
auth required pam_google_authenticator.soUppdatera sedan /etc/ssh/sshd_config:
KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactiveHåll en aktiv session öppen under testningen. TOTP-koder är beroende av korrekt systemtid, så se till att NTP körs.
Konfigurera brandväggar och Fail2Ban
Kör en värdbaserad brandvägg även om din server sitter bakom en nätverksbrandvägg. Principen är enkel: neka all inkommande trafik som standard, och tillåt sedan endast det du behöver.
För Ubuntu/Debian (UFW):
ufw default deny incoming
ufw default allow outgoing
ufw limit ssh
ufw enableFör RHEL/Rocky/AlmaLinux (Firewalld):
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadSäkerhetsförstärk kärnans nätverksstack genom att lägga till följande i /etc/sysctl.conf:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1Installera Fail2Ban
Fail2Ban övervakar inloggningsförsök och blockerar IP-adresser efter upprepade misslyckanden. Skapa /etc/fail2ban/jail.local (redigera inte jail.conf direkt, uppdateringar kommer att skriva över den) och konfigurera den så att den blockerar IP-adresser i en timme efter tre misslyckade försök inom 10 minuter. Ställ in rätt backend för din brandvägg (banaction = ufw eller banaction = nftables).
granskningstjänster och ta bort äldre protokoll
Kontrollera vad som lyssnar med ss -tlnp och vad som körs med systemctl list-units --type=service --state=running. Inaktivera allt du inte behöver: Bluetooth, CUPS, avahi-daemon, rpcbind.
Ta bort äldre protokoll som överför data i klartext:
| Gammalt protokoll | Port(ar) | Säker alternativ |
|---|---|---|
| Telnet | 23 | SSH |
| RSH / Rlogin | 512, 513, 514 | SSH |
| FTP | 21 | SFTP / FTPS |
| TFTP | 69 | SFTP / SCP |
| NIS | Variabel | LDAP / Kerberos |
På Debian/Ubuntu: sudo apt-get --purge remove xinetd nis tftpd telnetd rsh-server. På RHEL-baserade system: yum erase xinetd ypserv tftp-server telnet-server rsh-server. Verifiera borttagningen med ss -tulpn.
Patcha och automatisera uppdateringar
Att uppdatera ditt system är det snabbaste sättet att täppa till kända säkerhetsluckor. Kör uppdateringar omedelbart efter installation:
apt update && apt upgrade -y # Debian/Ubuntu
dnf update -y # RHEL/RockyAutomatisera sedan säkerhetsuppdateringar. På Debian/Ubuntu installerar du unattended-upgrades och konfigurera det så att endast säkerhetsuppdateringar installeras. På RHEL/Rocky, installera dnf-automatic och ställ in upgrade_type = security i /etc/dnf/automatic.conf.
Ställ in e-postaviseringar för uppdateringsresultat. Inaktivera automatiska omstarter på produktionsservrar (Automatic-Reboot = false) så att omstarter sker under planerade underhållsfönster. För miljöer med hög drifttid bör du överväga live-patchning med Canonical Livepatch (Ubuntu) eller kpatch (RHEL).
Säkerhetsanpassa filsystem och behörigheter
Granska först SUID- och SGID-binärfiler. Dessa filer körs med utökade behörigheter och är primära mål för utnyttjande:
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -lsSkärp behörigheterna för kritiska filer: /etc/shadow bör 600, /etc/passwd bör 644, /etc/ssh/sshd_config bör vara 600. Ställ in en global umask på 027 i /etc/profile för att förhindra att nya filer blir läsbara för alla.
Hitta och åtgärda filer som är skrivbara för alla med find / -xdev -type f -perm -0002 -ls. För kataloger som måste förbli skrivbara för alla (som /tmp), använd sticky-biten: chmod 1777 /tmp.
Säkra monteringsalternativ
Redigera /etc/fstab för att begränsa vad som kan hända på kritiska partitioner:
| Partitions | Monteringsalternativ | Syfte |
|---|---|---|
/tmp | nodev, nosuid, noexec | Förhindrar att skadlig kod körs i ett område som är skrivbart för alla |
/var/tmp | nodev, nosuid, noexec | Samma skydd som /tmp |
/dev/shm | nodev, nosuid, noexec | Säkrar delat minne |
/home | nodev, nosuid | Blockerar setuid-binärer och enhetsnoder |
/var/log | nodev, nosuid, noexec | Skyddar loggarnas integritet |
Testa ändringar med mount -o remount innan du startar om för att undvika startproblem.
Aktivera obligatoriska åtkomstkontroller
SELinux och AppArmor lägger till begränsningar på kernelnivå för vad processer kan göra. Använd det som medföljer din distribution: SELinux för RHEL/CentOS/Fedora, AppArmor för Ubuntu/Debian/SUSE. Att växla mellan dem orsakar kompatibilitetsproblem.
SELinux: Kontrollera status med getenforce. Starta i tillåtande läge (setenforce 0) i minst två veckor för att få en bild av arbetsbelastningens beteende utan att störa något. Övervaka överträdelser med ausearch -m avc -ts recent. Använd audit2why för att diagnostisera blockeringar och audit2allow -M [module_name] för att skapa policy-moduler. När loggarna är rena, växla till strikt läge med setenforce 1, och gör det sedan permanent i /etc/selinux/config.
AppArmor: Kontrollera aktiva profiler med aa-status. Installera apparmor-utils för hanteringskommandon. Starta profiler i klagomålsläge med aa-complain, och gå sedan över till tillämpningsläge med aa-enforce när du känner dig säker. Använd aa-genprof för att skapa profiler för anpassade applikationer.
Konfigurera loggning och övervakning
Utan loggning lämnar incidenter inga spår. Installera auditd:
sudo apt-get install auditd audispd-pluginsLägg till filsystemövervakning för kritiska filer:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identitySpåra all kommandokörning på rotnivå:
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commandsLadda regler med augenrules --load och lägg till -e 2 i slutet av din regel-fil för att göra konfigurationen manipuleringssäker (ändringar kräver omstart).
Övervakning av filintegritet med AIDE
AIDE upptäcker obehöriga filändringar genom att jämföra det aktuella tillståndet mot en känd, korrekt baslinje. Installera det, initialisera databasen med aideinitoch flytta den resulterande filen till /var/lib/aide/aide.db.gz. Ställ in ett dagligt cron-jobb för att köra aide --check och skicka resultaten via e-post till administratörer.
Centralisera loggar
Lokala loggar är värdelösa om en angripare med root-åtkomst raderar dem. Vidarebefordra loggar till en fjärrserver i realtid med hjälp av rsyslog med TLS-kryptering. Lägg till /etc/rsyslog.conf:
*.* @@remote-host:514Set LogLevel VERBOSE i din SSH-konfiguration så att loggarna innehåller nyckelfingeravtryck för varje lyckad inloggning. För produktionsmiljöer som hanterar flera servrar erbjuder verktyg som Wazuh eller OSSEC värdbaserad intrångsdetektering med centraliserad logganalys.
Löpande underhåll
Säkerhetsåtgärder är inte en engångsuppgift. Konfigurationer förändras, nya sårbarheter uppstår och personalförändringar lämnar efter sig övergivna konton.
Varje vecka: Granska Fail2Ban-loggar, kontrollera om det finns misslyckade uppdateringar och verifiera säkerhetskopior.
Månadsvis: Granska användarkonton och behörigheter, granska aktiva tjänster, kör en fullständig skanning med Lynis eller OpenSCAP.
Varje kvartal: Rotera inloggningsuppgifter, uppdatera brandväggsregler, testa katastrofåterställning.
Använd verktyg för infrastruktur som kod, såsom Ansible med dev-sec.io-härdningsroller, för att säkerställa enhetliga konfigurationer i hela din miljö och förhindra avvikelser mellan granskningarna.
FDC:s dedikerade servrar ger dig fullständig root-åtkomst och full kontroll över din säkerhetsstack. Utforska alternativen för dedikerade servrar för att bygga på en plattform där du kontrollerar varje lager.

Trött på långsamma driftsättningar eller bandbreddsbegränsningar? FDC Servers erbjuder omedelbar dedikerad kraft, global räckvidd och flexibla planer som är byggda för alla skalor.
Uppgradera nu
Linux minneshantering: Swap, OOM Killer & Cgroups
Hur Linux swap, OOM-dödaren och cgroups fungerar tillsammans - med konfigurationsexempel för databaser, webbservrar och VPS-värdar med flera hyresgäster.
12 min läsning - 31 maj 2026
Installationsguide för Prometheus och node_exporter
15 min läsning - 29 maj 2026

Har du frågor eller behöver du en anpassad lösning?
Flexibla alternativ
Global räckvidd
Omedelbar driftsättning
Flexibla alternativ
Global räckvidd
Omedelbar driftsättning