Bescherming tegen brute-force-aanvallen op wachtwoorden met Fail2ban¶
In dit artikel
Als u zich bij de server aanmeldt met een wachtwoord, kunnen aanvaller proberen dit automatisch te raden — dit wordt een brute-force-aanval genoemd. De beste bescherming is het gebruik van authenticatie op basis van sleutels (geen wachtwoord). Maar als u om welke reden dan ook nog steeds een wachtwoord gebruikt, moet u extra veiligheidsmaatregelen nemen. Een van de eenvoudigste en meest effectieve hulpmiddelen hiervoor is Fail2ban.
Fail2ban is een programma dat logs (registraties van serveractiviteit) bewaakt. Als iemand te vaak achter elkaar probeert in te loggen en faalt, blokkeert Fail2ban automatisch het IP-adres van die persoon voor een bepaalde periode.
Fail2ban installeren¶
Ubuntu / Debian:
CentOS / Rocky Linux:
Voor een goede werking moet een firewall geïnstalleerd zijn. U kunt bijvoorbeeld iptables installeren:
Ubuntu / Debian:
CentOS / Rocky Linux:
Na de installatie, schakel automatische start van Fail2ban in:
Op Ubuntu beschermt Fail2ban onmiddellijk SSH: standaard blokkeert het een IP-adres gedurende 10 minuten als er 5 mislukte inlogpogingen binnen 10 minuten hebben plaatsgevonden.
Fail2ban correct configureren¶
De belangrijkste instellingen zijn opgeslagen in /etc/fail2ban/jail.conf en zijn onderverdeeld in secties.
De [DEFAULT]-sectie stelt algemene regels in die standaard van toepassing zijn op alle services.
Individuele services (bijv. SSH, Apache-webserver of FTP) hebben hun eigen parameters in hun eigen secties — zoals [sshd], [apache‑auth], [vsftpd], enzovoort.
We raden aan de basisinstellingen in dit bestand niet te wijzigen. Maak in plaats daarvan uw eigen configuratiebestand — jail.local:
U kunt dit bestand leeg maken — Fail2ban vult alle niet-gespecificeerde opties in met de standaardwaarden.
Voorbeeldconfiguratie voor SSH-bescherming¶
Hier is een eenvoudig voorbeeld van een jail.local-bestand:
Wat dit betekent:
ignoreip— uw IP-adres op de "witte lijst". Fail2ban zal dit nooit blokkeren, zelfs niet als u uw wachtwoord verkeerd typt. Geef hier uw IP-adres op (als deze statisch is). U kunt meerdere adressen toevoegen, gescheiden door spaties.enabled = true— schakel bescherming voor SSH in.maxretry = 3— maximaal 3 mislukte inlogpogingen.findtime = 120— binnen de laatste 120 seconden (2 minuten).bantime = 43200— blokkeer gedurende 12 uur (43200 seconden).Met andere woorden: als een IP-adres (anders dan het uwe) 3 keer faalt om in te loggen binnen 2 minuten, wordt het gedurende 12 uur geblokkeerd.
Opmerking
Afhankelijk van het gebruikte systeem kan de sectie [sshd], [ssh] of [ssh‑iptables] zijn — bevestig dit in jail.conf.
Aanvullende instellingen¶
-
Als u de SSH-poort hebt gewijzigd (bijv. van 22 naar 2222), voeg dan toe aan de
[sshd]-sectie: -
Als u UFW of firewalld gebruikt in plaats van iptables, specificeer dan:
- Voor UFW:
action = ufw - Voor firewalld:
action = firewallcmd-ipset
Maar in de meeste gevallen kunt u alles op de standaardwaarden laten — Fail2ban kiest automatisch de juiste blokkeermethode.
Instellingen toepassen¶
Na het opslaan van het bestand, herstart Fail2ban:
Controleren of alles werkt¶
-
Controleer de blokkeerstatus van SSH:
U ziet een lijst met geblokkeerde IP-adressen. -
Bekijk de Fail2ban-logs:
-
Controleer iptables-blokkades (indien gebruikt):
Tip: Test de bescherming niet door opzettelijk een verkeerd wachtwoord in te voeren vanaf uw eigen IP-adres — u kunt per ongeluk uzelf blokkeren! Het is beter om even te wachten: bots beginnen doorgaans binnen het eerste uur na het opstarten van de server met aanvallen.
Opmerking
Fail2ban is een aanvullende veiligheidsmaatregel, maar het is het beste om voor SSH helemaal geen wachtwoorden te gebruiken. Stel SSH-sleutellogin in — dit is veiliger en handiger. Voeg altijd uw IP-adres toe aan ignoreip zodat u uzelf niet per ongeluk blokkeert.