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 standaardpoort en wachtwoordauthenticatie 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.
ssh-keygen -t ed25519 -C "mijn-server"
# Publieke sleutel kopiëren naar de server
ssh-copy-id gebruiker@serverip
Schakel daarna wachtwoordauthenticatie uit in /etc/ssh/sshd_config:
2. Root-login uitschakelen
Log nooit direct in als root. Gebruik een gewone gebruiker met sudo-rechten en schakel root-login via SSH uit:
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:
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:
De standaardconfiguratie 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:
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: