Cryptology Academy · Les

SSH-hardening en best practices voor audits

Pas hardening van sshd_config, praktijken voor sleutelrotatie en auditlogging toe om SSH-implementaties beter te beveiligen.

Les 4 van 413 stappen

SSH-hardening en best practices voor audits is een gratis Cryptology Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wachtwoordauthenticatie uitschakelen

De meest doeltreffende stap om SSH te beveiligen is het instellen van PasswordAuthentication no in /etc/ssh/sshd_config. Hierdoor moeten alle gebruikers zich met openbare sleutels authenticeren, waardoor het risico van zwakke of hergebruikte wachtwoorden en brute-forceaanvallen verdwijnt. Zorg dat er minstens één geautoriseerde sleutel is geïnstalleerd voordat je wachtwoordauthenticatie uitschakelt, zodat je jezelf niet buitensluit.

Toegestane gebruikers en groepen beperken

De richtlijnen AllowUsers en AllowGroups beperken SSH-toegang tot genoemde gebruikers of leden van groepen. Met AllowGroups sshusers krijgen bijvoorbeeld alleen leden van de groep sshusers toegang. Dit biedt meerdere verdedigingslagen: zelfs als een aanvaller een gebruikersnaam kent en inloggegevens bemachtigt, wordt SSH-toegang geweigerd tenzij het account expliciet is toegestaan.

De standaardpoort wijzigen

SSH wijzigen van poort 22 naar een poort met een hoog nummer is verhulling, geen beveiliging. Het vermindert echter aanzienlijk de ruis in logboeken van geautomatiseerde scanners die poort 22 aanvallen. Daardoor zijn logboeken eenvoudiger te analyseren op echte bedreigingen. Houd firewallregels altijd aan als primaire toegangscontrole; poortverhulling is slechts een aanvullende maatregel.

Rootaanmelding uitschakelen

Met PermitRootLogin no voorkom je directe root-authenticatie via SSH. Aanvallers die zich op root richten, beschikken over een gegarandeerd geldige gebruikersnaam en onbeperkte rechten als hun aanval slaagt. De aanbevolen instelling is PermitRootLogin prohibit-password. Daarmee is rootaanmelding alleen met authenticatie via een openbare sleutel mogelijk, worden op wachtwoorden gebaseerde brute-forceaanvallen op root geblokkeerd en blijft toegang voor noodgevallen behouden.

Authenticatiepogingen beperken

MaxAuthTries 3 beperkt het aantal authenticatiepogingen per verbinding tot drie. Na drie mislukte pogingen verbreekt de server de verbinding. Dit vertraagt brute-forcepogingen. In combinatie met de exponentiële wachttijd van fail2ban of SSHGuard, die IP-adressen na herhaalde mislukkingen tijdelijk blokkeren, worden brute-forceaanvallen rekenkundig onhaalbaar.

Tijdsinstellingen voor aanmelding

LoginGraceTime bepaalt hoelang de server op geslaagde authenticatie wacht voordat hij de verbinding verbreekt. De standaardwaarde is 120 seconden; door deze te verlagen naar 20 seconden voorkom je trage brute-forcepogingen en verminder je het vasthouden van systeembronnen door niet-geauthenticeerde verbindingen. ClientAliveInterval en ClientAliveCountMax regelen controles van de verbindingsstatus om inactieve of verbroken sessies te beëindigen.

Toegestane cryptografische algoritmen beperken

Moderne SSH-configuraties moeten algoritmen beperken tot sterke, moderne opties. Stel in sshd_config Ciphers in op chacha20-poly1305@openssh.com,aes256-gcm@openssh.com, MACs op hmac-sha2-256-etm@openssh.com en KexAlgorithms op curve25519-sha256. Daarmee schakel je verouderde algoritmen zoals arcfour, DES en op MD5 gebaseerde MACs uit, die mogelijk voor achterwaartse compatibiliteit beschikbaar zijn.

Brute-force blokkeren met fail2ban

fail2ban controleert authenticatielogboeken en blokkeert IP-adressen die een drempelwaarde voor mislukte aanmeldpogingen overschrijden. Na een instelbaar aantal mislukkingen binnen een tijdsvenster voegt fail2ban een iptables-regel toe die verdere pakketten van dat IP-adres laat vallen. Deze automatische reactie maakt brute-forceaanvallen onpraktisch zonder handmatige tussenkomst.

Controleren met ssh-audit

De tool ssh-audit maakt verbinding met een SSH-server en beoordeelt de configuratie: welke sleuteluitwisselingsalgoritmen, hostsleuteltypen, versleutelingsalgoritmen en MACs de server aanbiedt, en markeert verouderde of zwakke opties. Door ssh-audit vóór en na het beveiligen van je servers uit te voeren, krijg je een objectieve vergelijking van de situatie voor en na en ontdek je eventuele hiaten in de configuratie.

Logboekregistratie en controle van toegang

SSH-authenticatiegebeurtenissen worden via syslog vastgelegd. Op Linux registreert /var/log/auth.log (Debian) of /var/log/secure (RHEL) elke geslaagde en mislukte aanmelding met tijdstempel, gebruikersnaam, bron-IP-adres en gebruikte sleutelvingerafdruk. Door deze logboeken naar een gecentraliseerd SIEM te sturen, kun je ongebruikelijke toegangspatronen detecteren, zoals aanmeldingen vanuit onverwachte landen of op ongebruikelijke tijdstippen.

Volledig voorbeeld van een beveiligde configuratie

Een versterkte sshd_config combineert PasswordAuthentication no, PermitRootLogin prohibit-password, MaxAuthTries 3, LoginGraceTime 20, AllowGroups sshusers, beperkte Ciphers en MACs, X11Forwarding no en AllowTcpForwarding no (tenzij tunneling vereist is). Elke richtlijn neemt een specifieke aanvalsvector weg en samen vormen ze een SSH-beveiligingsopstelling met meerdere verdedigingslagen.

SSH-beveiligingsconfiguratie

Welke instelling in sshd_config is het effectiefst om brute-forceaanvallen met wachtwoorden tegen SSH uit te schakelen?

Samenvatting van SSH-beveiliging

Checklist voor SSH-beveiliging: schakel wachtwoordauthenticatie uit, beperk toegang tot AllowGroups/AllowUsers, schakel rootaanmelding uit of beperk deze tot aanmelding met alleen sleutels, stel MaxAuthTries 3 in, verlaag LoginGraceTime, beperk algoritmen tot uitsluitend moderne versleutelingsalgoritmen, implementeer fail2ban of SSHGuard, voer ssh-audit uit voor een objectieve beoordeling en centraliseer logboeken voor anomaliedetectie.

Gratis beginnen

Leer Cryptology Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
67
Lessen
261

Veelgestelde vragen

Is de les “SSH-hardening en best practices voor audits” gratis?

Ja — de volledige tekst van “SSH-hardening en best practices voor audits” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wat leer ik in “SSH-hardening en best practices voor audits”?

Pas hardening van sshd_config, praktijken voor sleutelrotatie en auditlogging toe om SSH-implementaties beter te beveiligen. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cryptology Academy te beginnen?

Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “SSH-hardening en best practices voor audits”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?

Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. SSH-handshake en authenticatie met host keys
  2. Authenticatie met public keys en agent forwarding
  3. SSH-tunneling en technieken voor port forwarding
  4. SSH-hardening en best practices voor audits
← Terug naar Cryptology Academy