Я бразилец и все еще пытаюсь адаптироваться к английскому языку.
Мне сложно заставить Fail2Ban работать с phpmyadmin.
я использую CentOS 8.1.1911 и fail2ban 0.10.5-2. Мой PhpMyAdmin - это версия 4.9.0.1.
Я заметил, что PhpMyAdmin регистрирует ошибки входа в /var/log/secure
файл.
И у него такой вывод:
Feb 14 21:40:37 www phpMyAdmin[3982]: user denied: root (mysql-denied) from 177.122.254.10
Feb 14 21:42:07 www phpMyAdmin[3978]: user denied: root (mysql-denied) from 177.122.254.10
Feb 14 21:42:09 www phpMyAdmin[3982]: user denied: root (mysql-denied) from 177.122.254.10
Feb 14 21:48:06 www phpMyAdmin[3981]: user denied: root (mysql-denied) from 177.122.254.10
Итак, я настроил свой /etc/fail2ban/jail.conf
как это:
[phpmyadmin]
enabled = true
port = http,https
filter = phpmyadmin
action = iptables-multiport[name=phpmyadmin, port="http,https", protocol=tcp]
sendmail-whois[name=PHPMYADMIN, dest=suporte@syspack.net.br]
logpath = /var/log/secure
maxretry = 3
И файл конфигурации фильтра (/etc/fail2ban/filter.d/phpmyadmin.conf
), выражения выглядят так:
[Definition]
denied = mysql-denied|allow-denied|root-denied|empty-denied
failregex = ^<HOST> -.*(?:%(denied)s)$
ignoreregex =
Я считаю, что не могу правильно сформировать выражение, поскольку Fail2Ban вообще не блокирует.
Может ли кто-нибудь помочь мне в этом вопросе?
Наконец-то мне удалось решить проблему. Fail2Ban теперь блокируется правильно.
Решил обновить PhpMyAdmin до версии 5.0.1. После этого я отредактировал следующий файл:
/var/www/phpmyadmin/libraries/config.default.php
Я изменил конфигурацию следующим образом:
$ cfg ['AuthLog'] = 'auto'; ------> $ cfg ['AuthLog'] = 'php';
После того, как я это сделал, он начал генерировать логи по-другому и в другом файле.
Журналы начали формироваться в файле "/var/log/php-fpm/www-error.log".
И таким образом:
[15-Feb-2020 17:18:11 UTC] user denied: root (mysql-denied) from 168.194.165.40
[15-Feb-2020 17:18:13 UTC] user denied: root (mysql-denied) from 168.194.165.40
[15-Feb-2020 17:18:14 UTC] user denied: root (mysql-denied) from 168.194.165.40
[15-Feb-2020 17:22:06 UTC] user denied: root (mysql-denied) from 168.194.165.40
[15-Feb-2020 17:22:08 UTC] user denied: root (mysql-denied) from 168.194.165.40
[15-Feb-2020 17:22:09 UTC] user denied: root (mysql-denied) from 168.194.165.40
Затем я настроил файл "/etc/fail2ban/filter.d/phpmyadmin.conf" следующим образом:
[Definition]
denied = mysql-denied | allow-denied | root-denied | empty-denied
failregex = user denied:. + from <HOST> \ s * $
ignoreregex =
После этого я настроил "/etc/fail2ban/jail.conf" следующим образом:
[phpmyadmin]
enabled = true
port = http, https
action = iptables-multiport [name = phpmyadmin, port = "http, https", protocol = tcp]
# sendmail-whois [name = PHPMYADMIN, dest=suporte@cnsocial.org.br]
logpath = /var/log/php-fpm/www-error.log
maxretry = 3
После этого просто перезапустил fail2ban, чтобы все разрешилось.
Смотрим логи, сейчас блокировка:
2020-02-15 14: 39: 42,005 fail2ban.filter [25748]: INFO [phpmyadmin] Found 168.194.165.40 - 2020-02-15 14:39:41
2020-02-15 14: 39: 44,009 fail2ban.filter [25748]: INFO [phpmyadmin] Found 168.194.165.40 - 2020-02-15 14:39:43
2020-02-15 14: 39: 46,013 fail2ban.filter [25748]: INFO [phpmyadmin] Found 168.194.165.40 - 2020-02-15 14:39:45
2020-02-15 14: 39: 46,204 fail2ban.actions [25748]: NOTICE [phpmyadmin] Ban 168.194.165.40