Назад | Перейти на главную страницу

phpmyadmin fail2ban журнал неудачных попыток входа

У меня есть сервер Debian с phpmyadmin. Я хочу использовать fail2ban для блокировки атаки методом перебора. У меня есть вопросы:

  1. Как я могу регистрировать неудачные попытки входа в систему? Где это установить? Я могу найти журнал только в /var/log/apache2/access.log, даже если он был успешным или неудачным при входе в систему.

10.0.5.1 - - [01 / мар / 2016: 23: 47: 46 +0800] "GET / phpmyadmin / HTTP / 1.1" 200 4028 "-" "Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit / 537.36 (KHTML, например Gecko) Chrome / 48.0.2564.116 Safari / 537.36 "10.0.5.1 - - [01 / марта / 2016: 23: 47: 49 +0800]" POST /phpmyadmin/index.php HTTP / 1.1 "200 4033"http://10.0.0.105/phpmyadmin/"" Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit / 537.36 (KHTML, например, Gecko) Chrome / 48.0.2564.116 Safari / 537.36 "10.0.5.1 - - [01 / мар / 2016: 23: 47: 55 + 0800] "POST /phpmyadmin/index.php HTTP / 1.1" 200 4019 "http://10.0.0.105/phpmyadmin/index.php"" Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit / 537.36 (KHTML, например, Gecko) Chrome / 48.0.2564.116 Safari / 537.36 "10.0.5.1 - - [01 / Mar / 2016: 23: 48: 29 + 0800] "POST /phpmyadmin/index.php HTTP / 1.1" 200 4019 "http://10.0.0.105/phpmyadmin/index.php"" Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 48.0.2564.116 Safari / 537.36 "

  1. Если это единственный журнал, который у меня есть, каким должно быть регулярное выражение для fail2ban? failregex = ^ - * POST /phpmyadmin/index.php *

К сожалению, версия, предоставляемая через apt, по-прежнему 4.6.6, но есть действительно способ обновить ее до текущей стабильной версии (4.8.3): https://askubuntu.com/a/1057085. В принципе:

  • wget последняя версия от https://www.phpmyadmin.net/downloads/
  • unzip
  • rm или mv старая папка phpmyadmin в /usr/share (очевидно, сделайте резервную копию любой пользовательской конфигурации)
  • скопируйте только что разархивированную версию с чем-то вроде cp -r phpMyAdmin-4.8.3-english /usr/share/phpmyadmin
  • установите "blowfish_secret" в /usr/share/phpmyadmin/config.inc.php и использовать mkdir tmp & chown -R www-data:www-data /usr/share/phpmyadmin/tmp чтобы включить кеширование шаблонов

После этого вы увидите неудачные попытки в auth.log. Что-то вроде phpMyAdmin[27685]: user denied: admin (mysql-denied) from X.X.X.X. Теперь откройте конфигурацию вашей тюрьмы fail2ban (я думаю, она находится в /etc/fail2ban/jail.local и добавьте следующий блок:

[phpmyadmin-syslog]
enabled  = true
filter   = phpmyadmin-syslog
maxretry = 3

Должно работать нормально.

Из документация для версии 4.7.0, которая все еще находится в разработке и не доступна напрямую:

Альтернативный подход может заключаться в использовании fail2ban в качестве журналов phpMyAdmin неудачных попыток аутентификации в системном журнале (если доступно)

К сожалению, это ведение журнала вводится только в текущей основной ветке, которая, как я уже упоминал, в какой-то момент в будущем станет 4.7.0. Вероятно, вы можете смело использовать ветку master, так как разработчики стараются ничего не сломать в процессе разработки. Кроме того, вам придется что-то реализовать, просматривая журналы доступа Apache, а не напрямую из phpMyAdmin.

В Ubuntu упакованный fail2ban довольно хорошо настроен из коробки, я полагаю, что Debian похож. редактировать /etc/fail2ban/jail.local и включите разделы Apache, которые включают [apache] и ряд подобных разделов (например, [apache-overflows] и [apache-badbots]). Вы можете также включить здесь фильтрацию для PHP.

Я бы не ожидал увидеть что-нибудь в журнале ошибок Apache в этом случае, так что с этим все в порядке.

О собственно настройка fail2ban, я не большой эксперт, но по крайней мере с этого вы должны начать.

Дополнительное чтение: https://www.digitalocean.com/community/tutorials/how-to-protect-an-apache-server-with-fail2ban-on-ubuntu-14-04 или любой другой учебник, который вы можете найти в Google.