Erstellt man für Joomla eine Fail2ban-Regel, muss man darauf achten, dass die Error-Logs in /administrator/logs
immer vorhanden sind, sonst beendet Fail2ban eventuell seine Dienste, und zwar komplett. Eine leere Datei soll dabei unterstützen, diesen Dienst stabil zu halten.
Die Sache ist recht einfach. Die Annahme ist, dass man sich bereits im Joomla Unterverzeichnis befindet und der Webserver den User und die Gruppe www-data benutzt.
# cd ./administrator/logs # touch snakeoil.php # chown www-data:www-data snakeoil.php # chmod 644 snakeoil.php
Danach wird die entsprechende Filterregel erstellt ...
/etc/fail2ban/filter.d/joomla.conf
[Definition] failregex = ^.*INFO .*joomlafailure.*(Benutzername|Username).* ^.*INFO .*tokenfailure.*(Authentication failed).*
... und eine jail-datei:
/etc/fail2ban/jail.d/joomla.local
[joomla] enabled = true filter = joomla port = http,https maxretry = xxx findtime = xxx bantime = xxx logpath = [pfad zu joomla]/administrator/logs/*error.php [pfad zu joomla]/administrator/logs/snakeoil.php
Ein beherztes
# service fail2ban restart
und voilà, der Dienst läuft.