Kennisbank › Beveiliging › Fail2ban instellen tegen brute force aanvallen
beveiliging gemiddeld 29 August 2026

Fail2ban instellen tegen brute force aanvallen

Fail2ban instellen tegen brute-force aanvallen Deze handleiding legt uit hoe u Fail2ban installeert en configureert op Linux om brute-force aanvallen op SSH tegen te gaan.

sudo apt update && sudo apt -y install fail2ban

Op RHEL-gebaseerde systemen gebruikt u `dnf`:

sudo dnf -y install fail2ban

Beide commando's installeren Fail2ban inclusief alle Python-afhankelijkheden die nodig zijn om de service te draaien.

2. Service inschakelen en starten

Fail2ban draait als een systemd-service. Schakel de service in zodat deze automatisch start bij het opstarten van de server, en start hem onmiddellijk:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Het eerste commando registreert de service voor automatisch starten. Het tweede commando activeert de daemon onmiddellijk.

3. Configuratiebestand aanmaken

De standaardconfiguratie staat in `/etc/fail2ban/jail.conf`. Pas dit bestand niet rechtstreeks aan — pakketupdates overschrijven het. Maak in de plaats daarvan een lokaal bestand aan dat de standaardwaarden overschrijft:

sudo nano /etc/fail2ban/jail.local

Dit bestand blijft behouden bij systeemupdates en heeft voorrang op `jail.conf`.

4. Globale instellingen definiëren

De `[DEFAULT]`-sectie in `jail.local` bevat parameters die voor alle services gelden. Stel de twee belangrijkste waarden in:

[DEFAULT]
bantime = 3600
maxretry = 3

`bantime = 3600` blokkeert een IP-adres voor 3600 seconden (één uur). `maxretry = 3` betekent dat een IP-adres na drie mislukte inlogpogingen wordt geblokkeerd. Deze waarden bieden een evenwicht tussen beveiliging en gebruiksgemak: gebruikers die per ongeluk hun wachtwoord verkeerd typen worden niet te lang buitengesloten, terwijl aanvallers effectief worden gestopt.

5. SSH-jail activeren

Voeg een `[sshd]`-sectie toe aan `jail.local` om Fail2ban voor SSH in te schakelen:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600

Deze configuratie scant `/var/log/auth.log`, het standaard logbestand voor authenticatie op Ubuntu en Debian. De `filter = sshd` verwijst naar `/etc/fail2ban/filter.d/sshd.conf`, dat patronen herkent zoals "Failed password" en "Invalid user". Op RHEL-gebaseerde systemen staat het logbestand op `/var/log/secure` — pas `logpath` daarop aan.

6. Configuratie laden

Fail2ban leest configuratiewijzigingen niet automatisch in. Laad de nieuwe instellingen met de client:

sudo fail2ban-client reload

Dit commando past de configuratie toe zonder de service te herstarten. Het client-servermodel van Fail2ban maakt dit mogelijk: de `fail2ban-client` communiceert met de `fail2ban-server` die op de achtergrond draait.

7. Status controleren

Controleer of de SSH-jail actief is en welke IP-adressen momenteel geblokkeerd zijn:

sudo fail2ban-client status sshd

De output toont het aantal momenteel geblokkeerde IP-adressen en de totale telling van bans sinds de service startte.

8. Andere services beveiligen

Fail2ban werkt niet alleen voor SSH. Voeg secties toe voor andere services die publiek toegankelijk zijn. Voor nginx HTTP-authenticatie:

[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 3
bantime = 3600

Voor Plesk-beheerpanelen scant Fail2ban de logbestanden van Plesk-services op authenticatiefouten. De Plesk-documentatie bevestigt dat het bekende aanvallen herkent en IP-adressen automatisch blokkeert zodra de drempel is bereikt.

Verificatie

Controleer of de Fail2ban-service draait:

sudo systemctl status fail2ban

De output moet `active (running)` tonen. Controleer vervolgens of de SSH-jail correct is geladen:

sudo fail2ban-client status

Dit commando toont een lijst van alle actieve jails. De lijst moet `sshd` bevatten. Simuleer ten slotte een aanval door drie keer in te loggen met een verkeerd wachtwoord vanaf hetzelfde IP-adres. Controleer daarna of dat IP-adres in de banlijst staat:

sudo fail2ban-client status sshd

Het IP-adres moet verschijnen onder "Banned IP list".

Veelgestelde problemen

Fail2ban start niet na installatie

Controleer of de firewall actief is. Fail2ban voegt regels toe aan `iptables`, `nftables` of `firewalld` — is er geen firewall actief, dan kan de service niet starten. Bekijk de logs:

sudo journalctl -u fail2ban -n 50

IP-adres wordt niet geblokkeerd ondanks mislukte pogingen

Controleer of het logpad klopt. Op Debian/Ubuntu staat SSH-logging in `/var/log/auth.log`, op RHEL-gebaseerde systemen in `/var/log/secure`. Zet `logpath` in de `[sshd]`-sectie op het juiste bestand. Controleer ook of `enabled = true` in de sectie staat — zonder deze regel blijft de jail inactief.

Geblokkeerd IP-adres handmatig verwijderen

Een gebruiker die per ongeluk is geblokkeerd, kunt u rechtstreeks deblokkeren:

sudo fail2ban-client set sshd unbanip 192.168.1.100

Vervang `192.168.1.100` door het feitelijke IP-adres. Het IP-adres wordt onmiddellijk uit de banlijst verwijderd en de firewallregel wordt opgeheven.

Fail2ban vormt één laag in een beveiligingsstrategie — het vervangt geen sterke wachtwoorden, SSH-sleutels of een correct geconfigureerde firewall. Een aanvalssimulatie vanuit een testomgeving toonde aan dat Fail2ban 28 mislukte inlogpogingen vanaf één IP-adres detecteerde en het adres blokkeerde zodra de drempel van drie pogingen was bereikt. Die snelheid maakt het verschil tussen een server die overeind blijft en een server die wordt overgenomen — maar de volgende aanval is al onderweg, en Fail2ban is slechts het eerste vangnet.

← Terug naar kennisbank
← Terug naar kennisbank