Checklista för härdning av Linux-server

15 min läsning - 8 maj 2026

hero section cover
Innehållsförteckning
  • Checklista för härdning av Linux-server
  • Lås ner SSH
  • Konfigurera brandväggar och Fail2Ban
  • Patch och automatisera uppdateringar
  • Hårdare filsystem och behörigheter
  • Aktivera obligatoriska åtkomstkontroller
  • Konfigurera revisionsloggning och övervakning
  • Löpande underhåll
Dela

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 härdning av Linux-server

En standardinstallation av Linux är inte en säker Linux-installation. Felkonfigurationer som öppen root SSH-åtkomst, svaga brandväggar och ouppdaterad programvara står för majoriteten av intrången. Nya servrar utsätts för automatiserade skanningar inom några minuter efter att de har kopplats upp, så härdning bör ske före allt annat.

Den här checklistan omfattar de viktigaste stegen: låsa SSH, konfigurera brandväggar, patcha, skärpa filbehörigheter, aktivera obligatoriska åtkomstkontroller och konfigurera granskningsloggning.

Lås ner SSH

SSH är din primära åtkomstpunkt och det första som angripare undersöker. Standardkonfigurationen (lösenord auth, root-inloggning, port 22) är exakt vad automatiserade skannrar letar efter.

Generera ett Ed25519-nyckelpar, som erbjuder bättre säkerhet och prestanda än RSA:

ssh-keygen -t ed25519

När nyckelbaserad inloggning fungerar uppdaterar du /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 bruset från automatiska skanningar avsevärt.

Testa alltid ändringar från en andra terminal innan du stänger din nuvarande session. Kör sudo sshd -t för att kontrollera syntaxfel, sedan systemctl reload sshd för att tillämpa utan att släppa 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 PAM-modulen för Google Authenticator:

sudo apt install libpam-google-authenticator   # Debian/Ubuntu
sudo dnf install google-authenticator           # RHEL/Fedora

Kö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 den här raden i /etc/pam.d/sshd:

auth required pam_google_authenticator.so

Uppdatera sedan /etc/ssh/sshd_config:

KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive

Hå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 bara det du behöver.

För Ubuntu/Debian (UFW):

ufw default deny incoming
ufw default allow outgoing
ufw limit ssh
ufw enable

Fö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 --reload

Härda kärnans nätverksstack genom att lägga till dessa i /etc/sysctl.conf:

net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1

Installera Fail2Ban

Fail2Ban övervakar inloggningsförsök och bannar IP-adresser efter upprepade misslyckanden. Skapa /etc/fail2ban/jail.local (redigera inte jail.conf direkt, uppdateringar skriver över den) och konfigurera den så att IP-adresser förbjuds 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).

Granska tjä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 som du inte behöver: Bluetooth, CUPS, avahi-daemon, rpcbind.

Ta bort äldre protokoll som överför data i klartext:

Legacy-protokollPort(ar)Säkert alternativ
Telnet23SSH
RSH / Rlogin512, 513, 514SSH
FTP21SFTP / FTPS
TFTP69SFTP / SCP
NISVariabelLDAP / 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.

Patch och automatisera uppdateringar

Uppdatering av systemet är det snabbaste sättet att täppa till kända säkerhetsluckor. Kör uppdateringar omedelbart efter driftsättning:

apt update && apt upgrade -y      # Debian/Ubuntu
dnf update -y                      # RHEL/Rocky

Automatisera sedan säkerhetspatchar. På Debian / Ubuntu, installera obevakade uppgraderingar och konfigurera den för att endast tillämpa säkerhetsuppdateringar. På RHEL/Rocky, installera dnf-automatic och ställa in upgrade_type = säkerhet i /etc/dnf/automatic.conf.

Ställ in e-postmeddelanden för uppdateringsresultat. Inaktivera automatiska omstarter på produktionsservrar(Automatic-Reboot = false) så att omstart sker under planerade underhållsfönster. För miljöer med hög upptid bör du överväga live-patchning med Canonical Live patch (Ubuntu) eller kpatch (RHEL).

Hårdare filsystem och behörigheter

Granska SUID- och SGID-binärfiler först. Dessa filer körs med förhöjda privilegier och är primära mål för exploatering:

find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -ls

Dra åt behörigheterna för kritiska filer: /etc/shadow bör vara 600, /etc/passwd bör vara 644, /etc/ssh/sshd_config bör vara 600. Ange en global umask027 i /etc/profile för att förhindra att nya filer blir läsbara för hela världen.

Hitta och fixa filer som är skrivbara i världen med find / -xdev -type f -perm -0002 -ls. För kataloger som måste förbli skrivbara i världen (som /tmp), använd sticky bit: chmod 1777 /tmp.

Alternativ för säker montering

Redigera /etc/fstab för att begränsa vad som kan hända på kritiska partitioner:

PartitionAlternativ för monteringSyfte
/tmpnodev, nosuid, noexecFörhindrar exekvering av skadlig kod i ett område som kan skrivas över hela världen
/var/tmpnodev, nosuid, noexecSamma skydd som /tmp
/dev/shmnodev, nosuid, noexecSäkrar delat minne
/homenodev, nosuidBlockerar binära filer och enhetsnoder med setuid
/var/lognodev, nosuid, noexecSkyddar loggens integritet

Testa ändringar med mount -o remount före omstart för att undvika startproblem.

Aktivera obligatoriska åtkomstkontroller

SELinux och AppArmor lägger till begränsningar på kärnnivå för vad processer kan göra. Använd det som din distribution levereras med: 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 permissivt läge(setenforce 0) i minst två veckor för att fånga arbetsbelastningsbeteende utan att bryta något. Övervaka överträdelser med ausearch -m avc -ts recent. Använd audit2why för att diagnostisera block och audit2allow -M [modulnamn] för att skapa policymoduler. När loggarna är rena, byt till verkställighet 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 verkställighetsläge med aa-enforce när du är säker. Använd aa-genprof för att bygga profiler för anpassade applikationer.

Konfigurera revisionsloggning och övervakning

Utan loggning lämnar incidenter inga spår. Installera auditd:

sudo apt-get install auditd audispd-plugins

Lägg till filsystemövervakning för kritiska filer:

-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity

Spåra alla kommandon som utförs på rotnivå:

-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commands

Ladda regler med augenrules --load och lägg till -e 2 i slutet av din regelfil för att göra konfigurationen manipuleringssäker (ändringar kräver en omstart).

Övervakning av filintegritet med AIDE

AIDE upptäcker obehöriga filändringar genom att jämföra det aktuella tillståndet med en känd god baslinje. Installera det, initiera databasen med aideinit och 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 e-posta resultaten 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 i /etc/rsyslog.conf:

*.* @@remote-host:514

Ställ in 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 tillhandahåller verktyg som Wazuh eller OSSEC värdbaserad intrångsdetektering med centraliserad logganalys.

Löpande underhåll

Härdning är inte en engångsuppgift. Konfigurationer förändras, nya sårbarheter dyker upp och personalförändringar gör att konton blir föräldralösa.

Varje vecka: Granska Fail2Ban-loggar, leta efter misslyckade uppdateringar, verifiera säkerhetskopior.

Varje månad: Granska användarkonton och behörigheter, granska tjänster som körs, kör en fullständig skanning med Lynis eller OpenSCAP.

Kvartalsvis: Byt ut inloggningsuppgifter, uppdatera brandväggsregler, testa katastrofåterställning.

Använd infrastruktur-som-kod-verktyg som Ansible med dev-sec.io-härdningsroller för att genomdriva konsekventa konfigurationer i hela din flotta och förhindra drift mellan revisioner.

FDC:s dedikerade servrar ger dig full root-åtkomst och fullständig kontroll över din säkerhetsstack. Utforska dedikerade serveralternativ för att bygga på en plattform där du kontrollerar varje lager.

background image
Håller din server tillbaka din tillväxt?

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

Blogg

Utvalda denna vecka

Fler artiklar
Checklista för härdning av Linux-server

Checklista för härdning av Linux-server

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

15 min läsning - 8 maj 2026

iperf3 Handledning: Testa nätverkshastighet på Linux & Windows

10 min läsning - 7 maj 2026

Fler artiklar
background image

Har du frågor eller behöver du en anpassad lösning?

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning