Как настроить мониторинг MySQL с помощью Fail2ban?

13

Поиск в Интернете с помощью поисковых систем на MySQL и fail2ban дает множество результатов по размещению ваших журналов fail2ban в MySQL, однако я хочу отслеживать неудачные попытки MySQL войти в систему и запретить эти IP-адреса.

Мое приложение требует, чтобы я оставил порт для MySQL открытым, хотя я изменил порт по умолчанию для дополнительной безопасности. Для дополнительной безопасности я хотел бы отслеживать журналы MySQL с помощью fail2ban.

У кого-нибудь есть краткое руководство по настройке fail2ban для MySQL? У меня он уже установлен и работает на нескольких других сервисах, так что вы можете пропустить часть установки и перейти прямо к настройке конфигурационного файла или чего-либо еще необходимого.

InvisibleFrisbee
источник

Ответы:

6

По словам этого парня ( http://forums.mysql.com/read.php?30,205612,205612 ) То, что вы пытаетесь сделать, невозможно.

Также: «использование mysql.log описывается как убийца производительности, и я слышал, что его следует отменить в следующих версиях Mysql. »

Я искал то же самое. Рекомендуется заблокировать порт 3306 на брандмауэре. Если это не вариант, тогда удачи.

moebius_eye
источник
4

Вы можете включить ведение журнала mysql:

[mysqld]
log = /var/log/mysql/access.log
log_error = /var/log/mysql/error.log
log_warnings = 2

так что ошибки связи будут отображаться в журнале, а затем отслеживать этот файл с помощью fail2ban.

http://dev.mysql.com/doc/refman/5.1/en/communication-errors.html

Jure1873
источник
Важная деталь: если вы используете MySQL 5.6 или выше, вы должны использовать Fail2ban 0.9.4 или выше. На данный момент он находится в yum install fail2ban --enablerepo=epel-testing
репозитории
1

Это мой конфиг в Debian 8, и он отлично работает. Также я хотел бы, чтобы вы взглянули на скрипт, который я создал для регистрации этих сбоев при входе в базу данных mysql с указанием местоположения IP-адресов.

https://elayo.mx/registrar-ataques-fail2ban-con-geolocalizacion-en-mysql/

[mysqld-auth]

enabled = true
filter   = mysqld-auth
port     = 3306
logpath  = /var/log/mysql/error.log
elayo
источник