Je kent het vast wel als je een VPS hebt draaien met een webserver, die vervelende brute force aanvallen. In dit artikel: hoe jij je hiertegen kan beschermen door middel van Fail2ban. Fail2Ban werkt in combinatie met een Firewall. Het jij nog geen geconfigureerde Firewall bekijk dan dit artikel eerst.
Fail2ban is een software pakket dat de server logs in de gaten houdt. Fail2ban kijkt naar de logs en zoekt de gefaalde inlog pogingen op. Als er x aantal keer is ingelogd zet Fail2ban het bijbehorende IP adres in de blok lijst door middel van iptables of firewalld.
Voorbereiding:
In mijn configuratie draai ik de volgende server in combinatie met DirectAdmin:
Fail2Ban is niet beschikbaar in de standaard repositories. We moeten daarom eerst een repository toevoegen dat doen we via het volgende commando.
sudo yum install epel-release
Daarna voeren we het volgende commando in om Fail2ban te installeren
yum install fail2ban
Toets bij de vraag op y om Fail2ban te installeren.
Nu Fail2ban op de server zit, is het tijd om een aantal zaken te configureren. We moeten eerst zorgen dat Fail2ban ook meekomt met het opstarten van de server. Dat kan via het volgende commando:
sudo systemctl enable fail2ban
Met het commando hebben we ervoor gezorgd dat Fail2ban nu ook opstart met het systeem.
Stap 3: Fail2Ban configureren
Fail2ban werkt met een configuratiebestand. In dat bestand staat waar Fail2ban de logs kan vinden en in moet kijken. We moeten nu een aantal zaken configureren.
We gaan eerst naar de directory waar het configuratiebestand staat
cd /etc/fail2ban
We kopiëren nu eerst het configuratiebestand jail.conf naar jail.local. Het hoofdbestand jail.conf kan worden bijgewerkt door (yum update -y). We willen niet dat het configuratiebestand leeg is na een update.
We kopiëren het configuratiebestand met het volgende commando
cp jail.conf jail.local
Nu is het tijd om het bestand te bewerken. Ik gebruik zelf altijd de vi editor om te bewerken, uiteraard kun je ook je favoriete tekst bewerker pakken.
vi jail.local
Standaard staat fail2ban ingesteld om na 5x verkeerd in te loggen (binnen 10 minuten) om je te blokkeren. Indien gewenst kun je dit aan het begin veranderen bij [DEFAULT]. SSH wordt al standaard gemonitord, hiervoor hoef je dus fail2ban niet meer te configureren.
Als je nu iets naar beneden gaat kom je alle servers tegen, in mijn geval draai ik ProFTPd. Het logbestand in combinatie met DirectAdmin staat op /var/log/proftpd/auth.log
Zorg ervoor om fail2ban in te schakelen voor proftpd dat de eerste regel enabled = true is.
Mijn configuratie voor Fail2ban voor Exim en Dovecot zijn als volgt:
Na het bewerken sla het bestand op en ga terug naar de cli.
Stap 4. Testen en verifiëren
Het is nu tijd om te testen we gaan eerst Fail2ban opstarten door
sudo systemctl restart fail2ban.service
Als je configuratie geslaagd is kun je nu eens kijken in de iptables of firewalld afhankelijk van je configuratie
iptables -L -n
Je ziet nu dat Fail2ban chains heeft aangemaakt. Iedereen die meer dan 5x probeert in te loggen komt in een chain te staan die een blokkade oplegt.
Je zou als laatste stap even kunnen controleren of je via FTP echt 5x kan inloggen. Houd ook, als je DirectAdmin draait de logs in de gaten. Heb je nog een Brute Force aanval dan moet je er nog even dieper in duiken.