Linux server hardening checklist

15 min lezen - 8 mei 2026

hero section cover
Inhoudsopgave
  • Checklist voor het beveiligen van Linux-servers
  • Beveilig SSH
  • Configureer firewalls en Fail2Ban
  • Patches en automatische updates
  • Beveilig bestandssystemen en machtigingen
  • Schakel verplichte toegangscontroles in
  • Auditlogging en monitoring instellen
  • Doorlopend onderhoud
Delen

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 ed25519

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

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

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

Werk vervolgens /etc/ssh/sshd_config:

KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive

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

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

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

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

PartitieKoppelingsoptiesDoel
/tmpnodev, nosuid, noexecVoorkomt het uitvoeren van malware in een gebied dat voor iedereen schrijfbaar is
/var/tmpnodev, nosuid, noexecDezelfde beveiliging als /tmp
/dev/shmnodev, nosuid, noexecBeveiligt gedeeld geheugen
/homenodev, nosuidBlokkeert setuid-binaire bestanden en apparaatknooppunten
/var/lognodev, nosuid, noexecBeschermt 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-plugins

Voeg bestandssysteemwaarnemingen toe voor kritieke bestanden:

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

Volg alle uitvoering van commando's 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 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:514

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

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
Prometheus en node_exporter installatiegids

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

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