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
Checklist voor het beveiligen van Linux-servers
Een standaard Linux-installatie is geen veilige Linux-installatie. Verkeerde configuraties zoals open root SSH-toegang, zwakke firewalls en niet-gepatchte software zijn verantwoordelijk voor het merendeel van de inbreuken. Nieuwe servers worden binnen enkele minuten na het online gaan geconfronteerd met geautomatiseerde scans, dus beveiliging moet voor alles gaan.
Deze checklist behandelt de belangrijkste stappen: SSH afsluiten, firewalls configureren, patches installeren, bestandsrechten aanscherpen, verplichte toegangscontroles inschakelen en auditlogging instellen.
Beveilig SSH
SSH is uw primaire toegangspunt en het eerste wat aanvallers onderzoeken. De standaardconfiguratie (wachtwoordverificatie, root-login, poort 22) is precies waar geautomatiseerde scanners naar op zoek zijn.
Genereer een Ed25519-sleutelpaar, dat betere beveiliging en prestaties biedt dan RSA:
ssh-keygen -t ed25519Zodra inloggen met sleutels werkt, voer dan de volgende updates uit /etc/ssh/sshd_config:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers yourname
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2Wijzig de standaardpoort van 22 naar iets minder voor de hand liggends. Dit zal een vastberaden aanvaller niet tegenhouden, maar het vermindert de ruis van geautomatiseerde scans aanzienlijk.
Test wijzigingen altijd vanaf een tweede terminal voordat u uw huidige sessie sluit. Voer sudo sshd -t om te controleren op syntaxfouten, en vervolgens systemctl reload sshd om toe te passen zonder actieve verbindingen te verbreken.
Voeg tweefactorauthenticatie toe
2FA betekent dat een aanvaller zowel uw SSH-sleutel als fysieke toegang tot uw 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 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:
KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactiveHoud een actieve sessie open tijdens het testen. TOTP-codes zijn afhankelijk van de juiste systeemtijd, dus zorg ervoor dat NTP actief is.
Configureer firewalls en Fail2Ban
Gebruik een hostgebaseerde firewall, zelfs als uw server zich achter een netwerkfirewall bevindt. Het principe is eenvoudig: weiger standaard al het inkomende verkeer en sta vervolgens alleen toe wat u 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 --reloadVersterk de kernel-netwerkstack 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 = 1Fail2Ban installeren
Fail2Ban controleert inlogpogingen en blokkeert IP-adressen na herhaalde mislukkingen. Maak /etc/fail2ban/jail.local (bewerk jail.conf direct, updates zullen het overschrijven) en configureer het om IP-adressen een uur te blokkeren na drie mislukte pogingen binnen 10 minuten. Stel de juiste backend in voor uw firewall (banaction = ufw of banaction = nftables).
Audit Services en verwijder verouderde protocollen
Controleer wat er luistert met ss -tlnp en wat er draait met systemctl list-units --type=service --state=running. Schakel alles uit wat u niet nodig hebt: Bluetooth, CUPS, avahi-daemon, rpcbind.
Verwijder verouderde protocollen die gegevens in leesbare tekst verzenden:
| Verouderd protocol | Poort(en) | Veilig alternatief |
|---|---|---|
| Telnet | 23 | SSH |
| RSH / Rlogin | 512, 513, 514 | SSH |
| FTP | 21 | SFTP / FTPS |
| TFTP | 69 | SFTP / SCP |
| NIS | Variabel | 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 of het verwijderd is met ss -tulpn.
Patches en automatische updates
Het updaten van uw systeem is de snelste manier om bekende beveiligingslekken te dichten. Voer updates onmiddellijk na de provisioning uit:
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 /etc/dnf/automatic.conf.
Stel e-mailmeldingen in voor updateresultaten. Schakel automatische herstarts uit op productieservers (Automatic-Reboot = false) zodat herstarts plaatsvinden tijdens geplande onderhoudsvensters. Overweeg voor omgevingen met een hoge uptime live patching met Canonical Livepatch (Ubuntu) of kpatch (RHEL).
Beveilig bestandssystemen en machtigingen
Controleer eerst SUID- en SGID-binaire bestanden. Deze bestanden worden uitgevoerd met verhoogde rechten en zijn belangrijke doelwitten voor misbruik:
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -lsVerscherp de machtigingen voor kritieke bestanden: /etc/shadow moeten 600, /etc/passwd moet 644, /etc/ssh/sshd_config moet 600. Stel een globale umask van 027 in /etc/profile om te voorkomen dat nieuwe bestanden voor iedereen leesbaar zijn.
Zoek en corrigeer bestanden die voor iedereen schrijfbaar zijn met find / -xdev -type f -perm -0002 -ls. Voor mappen die voor iedereen schrijfbaar moeten blijven (zoals /tmp), pas dan de sticky bit toe: chmod 1777 /tmp.
Veilige koppelingsopties
Bewerk /etc/fstab om te beperken wat er op kritieke partities kan gebeuren:
| Partitie | Koppelingsopties | Doel |
|---|---|---|
/tmp | nodev, nosuid, noexec | Voorkomt het uitvoeren van malware in een gebied dat voor iedereen schrijfbaar is |
/var/tmp | nodev, nosuid, noexec | Dezelfde beveiliging als /tmp |
/dev/shm | nodev, nosuid, noexec | Beveiligt gedeeld geheugen |
/home | nodev, nosuid | Blokkeert setuid-binaire bestanden en apparaatknooppunten |
/var/log | nodev, nosuid, noexec | Beschermt de integriteit van logbestanden |
Test wijzigingen met mount -o remount voordat u opnieuw opstart om opstartproblemen te voorkomen.
Schakel verplichte toegangscontroles in
SELinux en AppArmor voegen op kernelniveau beperkingen toe aan wat processen kunnen doen. Gebruik degene die bij uw distributie wordt geleverd: SELinux voor RHEL/CentOS/Fedora, AppArmor voor Ubuntu/Debian/SUSE. Schakelen tussen beide veroorzaakt compatibiliteitsproblemen.
SELinux: Controleer de status met getenforce. Begin in de permissieve modus (setenforce 0) gedurende ten minste twee weken om het gedrag van de werklast vast te leggen zonder iets te verstoren. Controleer overtredingen met ausearch -m avc -ts recent. Gebruik audit2why om blokkades te diagnosticeren en audit2allow -M [module_name] om beleidsmodules te maken. Zodra de logbestanden schoon zijn, schakel je over naar de handhavingsmodus met setenforce 1, en maak dit vervolgens permanent in /etc/selinux/config.
AppArmor: Controleer actieve profielen met aa-status. Installeer apparmor-utils voor beheeropdrachten. Start profielen in de waarschuwingsmodus met aa-complain, en ga vervolgens over naar de handhavingsmodus aa-enforce zodra u er zeker van bent. Gebruik aa-genprof om profielen voor aangepaste applicaties te maken.
Auditlogging en monitoring instellen
Zonder logboekregistratie laten incidenten geen sporen na. Installeer auditd:
sudo apt-get install auditd audispd-pluginsVoeg bestandssysteemwaarnemingen toe voor kritieke bestanden:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identityVolg alle uitvoering van commando's 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 aan het einde van uw regelbestand toe om de configuratie fraudebestendig te maken (wijzigingen vereisen een herstart).
Bestandsintegriteitscontrole met AIDE
AIDE detecteert ongeautoriseerde bestandswijzigingen door de huidige status te vergelijken met een bekende, goede baseline. Installeer het, initialiseer de database met aideiniten verplaats het resulterende bestand naar /var/lib/aide/aide.db.gz. Stel een dagelijkse cron-taak in om aide --check en stuur de resultaten per e-mail naar beheerders.
Centraliseer logbestanden
Lokale logbestanden zijn nutteloos als een aanvaller met root-toegang ze verwijdert. Stuur logbestanden in realtime door naar een externe server met behulp van rsyslog met TLS-versleuteling. Voeg toe aan /etc/rsyslog.conf:
*.* @@remote-host:514Set LogLevel VERBOSE in je SSH-configuratie, zodat logs de sleutelvingerafdrukken bevatten voor elke succesvolle login. Voor productieomgevingen die meerdere servers beheren, bieden tools zoals Wazuh of OSSEC hostgebaseerde inbraakdetectie met gecentraliseerde loganalyse.
Doorlopend onderhoud
Hardening is geen eenmalige taak. Configuraties veranderen, er duiken nieuwe kwetsbaarheden op en bij personeelswisselingen blijven er verweesde accounts achter.
Wekelijks: Bekijk Fail2Ban-logs, controleer op mislukte updates en verifieer back-ups.
Maandelijks: controleer gebruikersaccounts en machtigingen, bekijk actieve services, voer een volledige scan uit met Lynis of OpenSCAP.
Elk kwartaal: wissel inloggegevens af, werk firewallregels bij, test noodherstel.
Gebruik Infrastructure-as-Code-tools zoals Ansible met dev-sec.io-beveiligingsrollen om consistente configuraties in uw hele omgeving af te dwingen en afwijkingen tussen audits te voorkomen.
De dedicated servers van FDC geven u volledige root-toegang en volledige controle over uw beveiligingsstack. Bekijk de opties voor dedicated servers om te bouwen op een platform waar u elke laag beheert.

Moe van trage implementaties of bandbreedtelimieten? FDC Servers biedt direct dedicated vermogen, wereldwijd bereik en flexibele plannen voor elke schaalgrootte.
Nu upgraden
Prometheus en node_exporter installatiegids
Installeer Prometheus en node_exporter, configureer scrape targets, stel systemd services in en beveilig je monitoring stack. Stap voor stap voor Linux.
15 min lezen - 29 mei 2026
XDP en eBPF voor Linux pakketverwerking
14 min lezen - 27 mei 2026

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