Fail2ban logo

DirectAdmin heeft een nieuwe functie waarmee ook bruteforce-aanvallen op de applicatie phpMyAdmin bijgehouden kunnen worden. Fijn, maar wij kregen recentelijk weer een volle lading aan mails binnen omdat verschillende IP-adressen bruteforce-aanvallen uitvoerden op de webapplicatie. We gebruiken fail2ban om zulke aanvallen te blokkeren, maar deze heeft helaas geen ingebouwde filter voor phpMyAdmin. Tijd om er zelf één te schrijven.

De logging van phpMyAdmin staat op /var/www/html/phpMyAdmin/log/auth.log. Goed om te weten: hierin staan alleen gefaalde inlogpogingen, dus in de fail2ban-filter hoeft niet apart op succesvolle pogingen gefilterd te worden. Voeg onderstaande configuratie toe aan /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 via /etc/fail2ban/filter.d/phpmyadmin.conf:

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

Herstart als laatste de fail2ban-service:

systemctl restart fail2ban

Je kunt controleren of de jail goed werkt met het commando iptables -L -n. Zie je in het overzicht een fail2ban phpmyadmin-sectie staan? Dan werkt de filter zoals bedoeld.