SSH hardening: je server veilig bereikbaar houden

SSH is de standaard manier om via de command line op een server in te loggen. Een verse server met SSH op de standaard­poort en wachtwoord­authenticatie ingeschakeld wordt binnen minuten bestookt door geautomatiseerde aanvalspogingen. Met een paar aanpassingen maak je SSH een stuk veiliger.

1. Gebruik SSH-sleutels, geen wachtwoorden

SSH-sleutels zijn veiliger dan wachtwoorden. Je genereert een sleutelpaar: een privésleutel die op je eigen machine blijft, en een publieke sleutel die je op de server plaatst.

# Sleutelpaar aanmaken (op je eigen machine)
ssh-keygen -t ed25519 -C "mijn-server"

# Publieke sleutel kopiëren naar de server
ssh-copy-id gebruiker@serverip

Schakel daarna wachtwoord­authenticatie uit in /etc/ssh/sshd_config:

PasswordAuthentication no

2. Root-login uitschakelen

Log nooit direct in als root. Gebruik een gewone gebruiker met sudo-rechten en schakel root-login via SSH uit:

PermitRootLogin no

3. Poort wijzigen

De standaard SSH-poort is 22. Geautomatiseerde scanners proberen altijd poort 22. Door een andere poort te kiezen verklein je het aanvalsoppervlak:

Port 2222

Vergeet niet de nieuwe poort ook in je firewall toe te staan voordat je de huidige sessie sluit.

4. Fail2ban installeren

Fail2ban monitort de SSH-logs en blokkeert IP-adressen die te vaak foutief inloggen:

apt install fail2ban

De standaard­configuratie beschermt SSH al. Je kunt de drempelwaarden aanpassen in /etc/fail2ban/jail.local.

5. Toegang beperken tot specifieke gebruikers

Je kunt SSH beperken tot alleen bepaalde gebruikers:

AllowUsers deployer

6. SSH herstarten na wijzigingen

Na elke aanpassing aan sshd_config herstart je SSH. Test altijd eerst of de configuratie geldig is en houd je huidige sessie open totdat je hebt geverifieerd dat je nog kunt inloggen:

sshd -t && systemctl restart ssh

Zie ook