Fail2ban op DirectAdmin

DirectAdmin heeft een nieuwe functie waardoor nu ook bruteforce aanvallen op de applicatie phpMyAdmin bijgehouden kunnen worden. Ontzettend fijn maar recentelijk kregen wij weer een volle lading aan mails binnen dat verschillende IP adressen brute force aanvallen uitvoerden op de webapplicatie. Zoals in vorige blogs geschreven gebruiken we fail2ban om deze aanvallen te blokkeren maar helaas heeft deze geen ingebouwde filter om de brute force aanvallen te blokkeren. Tijd om dit zelf te schrijven.

De logging van phpmyadmin wordt gedaan op de locatie /var/www/html/phpMyAdmin/log/auth.log. Goed om te weten is dat er alleen gefaalde inlogpogingen in deze log aanwezig zijn dus we hoeven in de fail2ban filter verder niet te filteren op succesvolle inlogpogingen. Voeg onderstaande code toe aan het bestand /etc/fail2ban/jail.local onder het kopje HTTP servers.

[phpmyadmin]
enabled = true
port = http,https
filter = phpmyadmin
logpath = /var/www/html/phpMyAdmin/log/auth.log
findtime = 3600
bantime = 3600
maxretry = 10

Voeg daarna een nieuwe filter toe vi /etc/fail2ban/filter.d/phpmyadmin.conf

[Definition]
failregex = phpmyadmin: user denied: .* from
ignoreregex =

En als laatste herstart de service fail2ban. systemctl restart fail2ban

Je kunt kijken of je jail goed werkt door het commando iptables -L -n uit te voeren. Als je in het overzicht kijkt heb je een fail2ban phpmyadmin sectie in de lijst staan.