Linux server hardening checklist

15 min lezen - 8 mei 2026

hero section cover
Inhoudsopgave
  • Linux server hardening checklist
  • SSH vergrendelen
  • Firewalls en Fail2Ban configureren
  • Updates patchen en automatiseren
  • Bestandssystemen en machtigingen verharden
  • Verplichte toegangscontroles inschakelen
  • Auditlogging en monitoring instellen
  • Voortdurend onderhoud
Delen

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 ed25519

Zodra 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 2

Verander 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/Fedora

Voer 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.so

Werk vervolgens /etc/ssh/sshd_config bij:

KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive

Houd 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 enable

Voor 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

Verhard 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 = 1

Installeer 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-protocolPoort(en)Veilig alternatief
Telnet23SSH
RSH / Rlogin512, 513, 514SSH
FTP21SFTP / FTPS
TFTP69SFTP / SCP
NISVariabeleLDAP / 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/Rocky

Automatiseer 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 -ls

Verhoog 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:

PartitieMount optiesDoel
/tmpnodev, nosuid, noexecVoorkomt het uitvoeren van malware in een world-writable gebied
/var/tmpnodev, nosuid, noexecDezelfde bescherming als /tmp
/dev/shmnodev, nosuid, noexecBeveiligt gedeeld geheugen
/homenodev, nosuidBlokkeert setuid binaries en device nodes
/var/lognodev, nosuid, noexecBeschermt 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-plugins

Voeg bestandssysteembewaking toe voor kritieke bestanden:

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

Volg alle commando-uitvoering op root-niveau:

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

Laad 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:514

Stel 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.

background image
Staat uw server uw groei in de weg?

Moe van trage implementaties of bandbreedtelimieten? FDC Servers biedt direct dedicated vermogen, wereldwijd bereik en flexibele plannen voor elke schaalgrootte.

Nu upgraden

Blog

Uitgelicht deze week

Meer artikelen
Linux server hardening checklist

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

Meer artikelen
background image

Hebt u vragen of wilt u een oplossing op maat?

icon

Flexibele opties

icon

Wereldwijd bereik

icon

Directe inzet

icon

Flexibele opties

icon

Wereldwijd bereik

icon

Directe inzet