Linux server hardening checklist
15 min lezen - 8 mei 2026

Stap-voor-stap checklist om een Linux server te harden. Behandelt SSH, firewalls, patchen, bestandspermissies, SELinux/AppArmor en audit logging
Linux server hardening checklist
Een standaard Linux installatie is geen veilige Linux installatie. Misconfiguraties zoals open root SSH-toegang, zwakke firewalls en ongepatchte software zijn verantwoordelijk voor de meeste inbreuken. Nieuwe servers worden binnen enkele minuten na het online gaan geconfronteerd met geautomatiseerde scans, dus hardening moet voor alles gebeuren.
Deze checklist behandelt de belangrijkste stappen: SSH vergrendelen, firewalls configureren, patchen, bestandspermissies verscherpen, verplichte toegangscontroles inschakelen en audit logging instellen.
SSH vergrendelen
SSH is je primaire toegangspunt en het eerste wat aanvallers onderzoeken. De standaard configuratie (wachtwoord auth, root login, poort 22) is precies waar geautomatiseerde scanners naar zoeken.
Genereer een Ed25519 sleutelpaar, dat betere beveiliging en prestaties biedt dan RSA:
ssh-keygen -t ed25519Zodra het aanmelden met een sleutel werkt, moet /etc/ssh/sshd_config worden bijgewerkt:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers yourname
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2Verander de standaardpoort van 22 in iets dat minder voor de hand ligt. Dit zal een vastberaden aanvaller niet tegenhouden, maar het vermindert de ruis van geautomatiseerde scans aanzienlijk.
Test wijzigingen altijd vanaf een tweede terminal voordat je je huidige sessie afsluit. Voer sudo sshd -t uit om te controleren op syntaxfouten en systemctl reload sshd om toe te passen zonder actieve verbindingen te laten vallen.
Twee-factor authenticatie toevoegen
2FA betekent dat een aanvaller zowel je SSH-sleutel als fysieke toegang tot je apparaat nodig heeft. Installeer de Google Authenticator PAM module:
sudo apt install libpam-google-authenticator # Debian/Ubuntu
sudo dnf install google-authenticator # RHEL/FedoraVoer google-authenticator uit voor elke gebruiker om een geheime sleutel en herstelcodes te genereren. Sla de herstelcodes offline op.
Voeg deze regel toe aan /etc/pam.d/sshd:
auth required pam_google_authenticator.soWerk vervolgens /etc/ssh/sshd_config bij:
KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactiveHoud een actieve sessie open tijdens het testen. TOTP codes zijn afhankelijk van een nauwkeurige systeemtijd, dus zorg ervoor dat NTP actief is.
Firewalls en Fail2Ban configureren
Gebruik een hostgebaseerde firewall, zelfs als je server zich achter een netwerkfirewall bevindt. Het principe is eenvoudig: sluit standaard al het inkomende verkeer uit en laat alleen toe wat je nodig hebt.
Voor Ubuntu/Debian (UFW):
ufw default deny incoming
ufw default allow outgoing
ufw limit ssh
ufw enableVoor RHEL/Rocky/AlmaLinux (Firewalld):
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadVerhard de kernel netwerk stack door deze toe te voegen aan /etc/sysctl.conf:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1Installeer Fail2Ban
Fail2Ban controleert aanmeldpogingen en verbant IP's na herhaaldelijk falen. Maak /etc/fail2ban/jail.local aan (bewerk jail.conf niet direct, updates zullen het overschrijven) en configureer het om IP's voor een uur te verbannen na drie mislukte pogingen binnen 10 minuten. Stel de juiste backend in voor je firewall(banaction = ufw of banaction = nftables).
Diensten controleren en oude protocollen verwijderen
Controleer wat er luistert met ss -tlnp en wat er draait met systemctl list-units --type=service --state=running. Schakel alles uit wat je niet nodig hebt: Bluetooth, CUPS, avahi-daemon, rpcbind.
Verwijder legacy protocollen die gegevens in cleartext verzenden:
| Legacy-protocol | Poort(en) | Veilig alternatief |
|---|---|---|
| Telnet | 23 | SSH |
| RSH / Rlogin | 512, 513, 514 | SSH |
| FTP | 21 | SFTP / FTPS |
| TFTP | 69 | SFTP / SCP |
| NIS | Variabele | LDAP / Kerberos |
Op Debian/Ubuntu: sudo apt-get --purge remove xinetd nis tftpd telnetd rsh-server. Op RHEL-gebaseerde systemen: yum erase xinetd ypserv tftp-server telnet-server rsh-server. Controleer de verwijdering met ss -tulpn.
Updates patchen en automatiseren
Het updaten van je systeem is de snelste manier om bekende beveiligingslekken te dichten. Voer updates direct uit na provisioning:
apt update && apt upgrade -y # Debian/Ubuntu
dnf update -y # RHEL/RockyAutomatiseer vervolgens beveiligingspatches. Installeer op Debian/Ubuntu unattended-upgrades en configureer het om alleen beveiligingspatches toe te passen. Installeer op RHEL/Rocky dnf-automatic en stel upgrade_type = security in in /etc/dnf/automatic.conf.
Stel e-mailmeldingen voor updateresultaten in. Schakel automatisch rebooten uit op productieservers(Automatic-Reboot = false) zodat reboots plaatsvinden tijdens geplande onderhoudsvensters. Overweeg voor omgevingen met veel tijd live patchen met Canonical Livepatch (Ubuntu) of kpatch (RHEL).
Bestandssystemen en machtigingen verharden
Controleer eerst SUID- en SGID-binaire bestanden. Deze bestanden worden uitgevoerd met verhoogde privileges en zijn uitstekende doelen voor uitbuiting:
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -lsVerhoog de rechten op kritieke bestanden: /etc/shadow moet 600 zijn, /etc/passwd moet 644 zijn, /etc/ssh/sshd_config moet 600 zijn. Stel een globaal umask in van 027 in /etc/profile om te voorkomen dat nieuwe bestanden leesbaar zijn voor de wereld.
Vind en repareer wereldschrijfbare bestanden met find / -xdev -type f -perm -0002 -ls. Voor mappen die world-writable moeten blijven (zoals /tmp), pas de sticky bit toe: chmod 1777 /tmp.
Opties voor veilig mounten
Bewerk /etc/fstab om te beperken wat er kan gebeuren op kritieke partities:
| Partitie | Mount opties | Doel |
|---|---|---|
/tmp | nodev, nosuid, noexec | Voorkomt het uitvoeren van malware in een world-writable gebied |
/var/tmp | nodev, nosuid, noexec | Dezelfde bescherming als /tmp |
/dev/shm | nodev, nosuid, noexec | Beveiligt gedeeld geheugen |
/home | nodev, nosuid | Blokkeert setuid binaries en device nodes |
/var/log | nodev, nosuid, noexec | Beschermt log integriteit |
Test veranderingen met mount -o remount voor het herstarten om opstartproblemen te voorkomen.
Verplichte toegangscontroles inschakelen
SELinux en AppArmor voegen beperkingen op kernel-niveau toe aan wat processen kunnen doen. Gebruik degene waarmee je distributie wordt geleverd: SELinux voor RHEL/CentOS/Fedora, AppArmor voor Ubuntu/Debian/SUSE. Overschakelen tussen deze systemen veroorzaakt compatibiliteitsproblemen.
SELinux: Controleer de status met getenforce. Start minstens twee weken in permissieve modus(setenforce 0) om het gedrag van de werklast vast te leggen zonder iets kapot te maken. Controleer schendingen met ausearch -m avc -ts recent. Gebruik audit2why om blokkades te diagnosticeren en audit2allow -M [module_naam] om beleidsmodules te maken. Zodra de logs schoon zijn, schakel dan over op afdwingen met setenforce 1 en maak het vervolgens permanent in /etc/selinux/config.
AppArmor: Controleer actieve profielen met aa-status. Installeer apparmor-utils voor beheercommando's. Start profielen in klagmodus met aa-complain, ga dan naar enforce-modus met aa-enforce als je er zeker van bent. Gebruik aa-genprof om profielen te bouwen voor aangepaste toepassingen.
Auditlogging en monitoring instellen
Zonder logging laten incidenten geen sporen na. Installeer auditd:
sudo apt-get install auditd audispd-pluginsVoeg bestandssysteembewaking toe voor kritieke bestanden:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identityVolg alle commando-uitvoering op root-niveau:
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commandsLaad regels met augenrules --load en voeg -e 2 toe aan het einde van je regels bestand om de configuratie fraudebestendig te maken (veranderingen vereisen een herstart).
Bewaking van bestandsintegriteit met AIDE
AIDE detecteert ongeautoriseerde bestandswijzigingen door de huidige status te vergelijken met een bekende goede basislijn. Installeer het, initialiseer de database met aideinit en verplaats het resulterende bestand naar /var/lib/aide/aide.db.gz. Stel een dagelijkse crontaak in om aide --check uit te voeren en e-mail de resultaten naar de beheerders.
Logs centraliseren
Lokale logs zijn nutteloos als een aanvaller met root-toegang ze verwijdert. Stuur logs in realtime door naar een externe server met behulp van rsyslog met TLS-encryptie. Voeg toe aan /etc/rsyslog.conf:
*.* @@remote-host:514Stel LogLevel VERBOSE in in je SSH config zodat logs key fingerprints bevatten voor elke succesvolle login. Voor productieomgevingen die meerdere servers beheren, bieden tools als Wazuh of OSSEC hostgebaseerde inbraakdetectie met gecentraliseerde loganalyse.
Voortdurend onderhoud
Hardening is geen eenmalige taak. Configuraties veranderen, nieuwe kwetsbaarheden verschijnen en personeelswisselingen laten verweesde accounts achter.
Wekelijks: Bekijk Fail2Ban logs, controleer op mislukte updates, controleer back-ups.
Maandelijks: Gebruikersaccounts en machtigingen controleren, lopende services controleren, een volledige scan uitvoeren met Lynis of OpenSCAP.
Driemaandelijks: Verander referenties, werk firewallregels bij, test disaster recovery.
Gebruik infrastructuur-as-code tools zoals Ansible met dev-sec.io hardening rollen om consistente configuraties af te dwingen in uw hele systeem en drift tussen audits te voorkomen.
De dedicated servers van FDC geven u volledige root-toegang en volledige controle over uw beveiligingsstack. Ontdek de dedicated server opties om te bouwen op een platform waar u elke laag controleert.

Moe van trage implementaties of bandbreedtelimieten? FDC Servers biedt direct dedicated vermogen, wereldwijd bereik en flexibele plannen voor elke schaalgrootte.
Nu upgraden
Linux server hardening checklist
Stap-voor-stap checklist om een Linux server te harden. Behandelt SSH, firewalls, patchen, bestandspermissies, SELinux/AppArmor en audit logging
15 min lezen - 8 mei 2026
handleiding iperf3: Netwerksnelheid testen op Linux & Windows
10 min lezen - 7 mei 2026

Hebt u vragen of wilt u een oplossing op maat?
Flexibele opties
Wereldwijd bereik
Directe inzet
Flexibele opties
Wereldwijd bereik
Directe inzet