Ga naar inhoud

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:

sudo apt update
sudo apt install fail2ban -y

CentOS / Rocky Linux:

sudo yum update
sudo yum install epel-release
sudo yum install fail2ban

Voor een goede werking moet een firewall geïnstalleerd zijn. U kunt bijvoorbeeld iptables installeren:

Ubuntu / Debian:

sudo apt install iptables

CentOS / Rocky Linux:

sudo yum install iptables-services

Na de installatie, schakel automatische start van Fail2ban in:

sudo systemctl enable fail2ban

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:

sudo nano /etc/fail2ban/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:

[DEFAULT]
ignoreip = 123.45.67.89


[sshd]
enabled = true
maxretry = 3
findtime = 120
bantime = 43200

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:

    port = 2222
    

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

sudo systemctl restart fail2ban

Controleren of alles werkt

  1. Controleer de blokkeerstatus van SSH:

    sudo fail2ban-client status sshd
    
    U ziet een lijst met geblokkeerde IP-adressen.

  2. Bekijk de Fail2ban-logs:

    sudo tail /var/log/fail2ban.log
    

  3. Controleer iptables-blokkades (indien gebruikt):

    sudo iptables -L
    

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.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×