fail2ban is een lichtgewicht hulpmiddel voor inbraakpreventie dat servers helpt beschermen tegen geautomatiseerde aanvallen en botnets. Het werkt door logbestanden te monitoren en IP-adressen te blokkeren die verdacht gedrag vertonen, zoals herhaalde mislukte inlogpogingen.
Belangrijk
Toegang op rootniveau is vereist om fail2ban te installeren en configureren.
Wat fail2ban doet
fail2ban scant logbestanden die zijn gegenereerd door services zoals SSH en webservers. Wanneer een gedefinieerd aantal storingen optreedt vanuit dezelfde bron binnen een specifiek tijdvenster, fail2ban voegt automatisch een firewallregel toe om dat IP-adres voor een configureerbare duur te blokkeren.
Deze aanpak is vooral effectief op publiek toegankelijke systemen zoals VPS-hosting in Nederland of in eigen beheer speciale servers, waar diensten rechtstreeks worden blootgesteld aan internet.
Fail2ban installeren
De installatiestappen zijn afhankelijk van de Linux-distributie die op uw server draait.
Debian en Ubuntu
Werk de pakketindex bij en installeer fail2ban:
apt-get update
apt-get install fail2ban
[Tijdelijke aanduiding voor screenshot: apt-pakketinstallatie-uitvoer voor fail2ban]
AlmaLinux en Fedora
Installeer fail2ban met behulp van de systeempakketbeheerder:
yum install fail2ban
Over deze distributies, de EPEL-repository moet vóór de installatie zijn ingeschakeld.
[Tijdelijke aanduiding voor screenshot: yum install fail2ban uitvoer met EPEL ingeschakeld]
Initiële configuratie
fail2ban gebruikt configuratiebestanden die zich in /etc/fail2ban. Het standaardconfiguratiebestand mag niet rechtstreeks worden bewerkt, omdat het tijdens updates kan worden overschreven.
Maak een lokaal configuratiebestand door de standaardsjabloon te kopiëren:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
[Tijdelijke aanduiding voor screenshot: terminal met jail.conf gekopieerd naar jail.local]
Open de jail.local bestand met uw favoriete teksteditor.
Globale opties configureren
In de jail.local bestand, lokaliseer de [DEFAULT] sectie. Deze instellingen zijn van toepassing op alle ingeschakelde gevangenissen, tenzij ze worden overschreven.
negerenip
Deze optie definieert IP-adressen die nooit mogen worden verboden. Het wordt vaak gebruikt om vertrouwde locaties, zoals kantoor- of thuis-IP's, op de witte lijst te zetten.
ignoreip = 127.0.0.1/8 203.0.113.10
[Tijdelijke aanduiding voor screenshot: negeerip-configuratie in jail.local]
bantijd
Bepaalt hoe lang een IP-adres wordt geblokkeerd nadat het toegestane aantal fouten is overschreden.
bantime = 600
maxretry en findtime
Deze opties werken samen om de detectiedrempel te definiëren:
maxretry = 5
findtime = 600
Als een IP-adres de toegestane nieuwe pogingen binnen het gedefinieerde tijdvenster overschrijdt, het is verboden voor de duur aangegeven door bantime.
[Tijdelijke aanduiding voor screenshot: algemene drempelinstellingen in jail.local]
Servicejails inschakelen
fail2ban beschermt diensten die gebruik maken van gevangenissen. Elke gevangenis richt zich op een specifieke service of logpatroon.
Standaard, een SSH-gevangenis is inbegrepen maar uitgeschakeld. Om het in te schakelen, zoek de SSH-gevangenissectie en stel deze in:
enabled = true
[Tijdelijke aanduiding voor screenshot: SSH-gevangenis ingeschakeld in configuratiebestand]
Op dezelfde manier kunnen extra gevangenissen worden ingeschakeld, afhankelijk van de services die op uw server draaien.
Fail2ban opnieuw opstarten
Na het opslaan van configuratiewijzigingen, start de service opnieuw om ze toe te passen:
service fail2ban restart
[Tijdelijke aanduiding voor screenshot: fail2ban service herstartbevestiging]
Verboden IP-adressen controleren
Om firewallregels te bekijken die zijn toegevoegd door fail2ban, loop:
iptables -S
Een verboden IP-adres verschijnt doorgaans in een regel die er ongeveer als volgt uitziet:
-A fail2ban-SSH -s 10.0.1.124/32 -j REJECT --reject-with icmp-port-unreachable
[Tijdelijke aanduiding voor screenshot: iptables-uitvoer toont fail2ban-regels]
Fail2ban gebruiken in grotere omgevingen
fail2ban wordt vaak ingezet op standalone servers en is ook schaalbaar cloud serveromgevingen. Bij gebruik naast firewalls en regelmatige systeemupdates, het vermindert de effectiviteit van geautomatiseerd aanvalsverkeer aanzienlijk.
De configuratie moet periodiek worden herzien om ervoor te zorgen dat de drempelwaarden overeenkomen met het huidige verkeer p
