Effectief werken met Fail2Ban: Beveiligingsoptimalisatie gids op basis van praktijkvoorbeelden
1. Inleiding
Wanneer je een Linux-server beheert, krijg je te maken met talloze inlogpogingen, alleen al door de SSH-poort open te zetten. Een veelgebruikte tool om dit te stoppen is Fail2Ban. Maar alleen installeren en instellen is niet voldoende. Bij langdurige werking kunnen de banlijsten zich ophopen tot honderden of duizenden, waardoor de serverprestaties in gevaar komen.
In dit artikel deel ik hoe je Fail2Ban effectiever en efficiënter kunt gebruiken op basis van echte serverervaring.
Als je benieuwd bent naar de installatie en de basisinstellingen van Fail2Ban, kun je mijn eerdere artikel raadplegen! De beschermer van je Linux-server, Fail2Ban
2. Praktische ervaring: 1.113 IP's geblokkeerd in 3 weken
Na ongeveer 3 weken waarbij ik fail2ban
op mijn test-Linux-server had ingesteld, voerde ik op een dag onderstaand commando uit:
sudo fail2ban-client status sshd
Het resultaat was als volgt:
Current failed: 1
Total failed: 5330
Current banned: 1110
Total banned: 1113
In 3 weken waren er 1.113 IP's geblokkeerd, waarvan 1.110 nog steeds geblokkeerd waren. Dit kwam doordat ik het bantime = -1
had ingesteld voor permanente blokkade.
In het begin dacht ik: “Eén poging is er één te veel!” en heb ik de instellingen zo gekozen. Maar toen duizenden geblokkeerde IP's zich ophoopten in
iptables
, begon ik me zorgen te maken over het verbruik van systeembronnen en de beheerefficiëntie.
Uiteindelijk begon ik na te denken over een duurzame en strategische manier om Fail2Ban te beheren.
3. Verbeterstrategieën voor Fail2Ban instellingen
✅ Pas bantime dynamisch aan
- Een tijdgebaseerde blokkade is realistischer dan een permanent blokkade.
- Voorbeeld:
-
bantime = 86400 # 1 dag blokkade findtime = 600 # binnen 10 minuten maxretry = 3 # bij 3 mislukte pogingen
✅ Gebruik van recidive gevangenis
🔎 Wat is recidive gevangenis?
fail2ban
monitort hetfail2ban.log
bestand, en als een specifieke IP herhaaldelijk in meerdere gevangenissen geblokkeerd wordt, dan wordt die IP langdurig opnieuw geblokkeerd. Het is in feite een systeem van extra straffen voor recidivisten.Over het algemeen worden individuele gevangenissen zoals
sshd
,nginx
, enftp
voor korte tijd geblokkeerd, maar derecidive
gevangenis blokkeert alleen IP's met een 'opgebouwde criminele geschiedenis' voor een langere tijd.
- Toepassen van langdurige blokkade voor alleen die IP's die herhaaldelijk geblokkeerd worden
- Algemene aanvallers verdwijnen na een dag, maar herhaalde aanvallers kunnen gefilterd worden
- Voorbeeldinstellingen:
-
[recidive] enabled = true logpath = /var/log/fail2ban.log bantime = 604800 # 1 week findtime = 86400 maxretry = 5
✅ Automatisering van logbeheer
- Voorkom dat
/var/log/fail2ban.log
te groot wordt door logrotate in te stellen voor automatische opruiming - Stuur samenvattingen van
fail2ban-client status
resultaten per e-mail met cron of systemd timer
4. Voorbeeld van een referentiescript
#!/bin/bash
fail2ban-client status sshd > /tmp/sshd-status.log
echo "Huidig aantal blokkades: $(grep 'Currently banned' /tmp/sshd-status.log)" | mail -s "Fail2Ban SSHD Status" your@email.com
5. Conclusie: Fail2Ban is geen wapen, maar een tool
Fail2Ban is een zeer nuttige tool om brute force aanvallen te stoppen, maar overmatige werking kan geen doel op zich zijn, maar in plaats daarvan de oorzaak worden van serveroverbelasting.
Met een realistisch blokkadebeleid en geautomatiseerde beheertools wordt Fail2Ban een betrouwbare beveiligingspartner in plaats van een probleem.
Aankondiging van het volgende artikel
Ik zal het hebben over hoe je de groei van de fail2ban logbestanden
/var/log/fail2ban.log
kunt voorkomen door logrotate instellingen. Geïnteresseerden kunnen zich abonneren!
댓글이 없습니다.