我的服务器上有fail2ban,它确实禁止SSH,但我在禁止用户尝试使用MySQL访问MariaDB时遇到问题。我也在使用Adminer,这是我尝试在mysql上配置fail2ban的主要原因(并且fail2ban确实看到使用adminer的失败尝试)。它可以看到 MySQL 连接,但由于这是在内部使用 localhost,它不能禁止它。
我正在寻找一种在用户无法登录 mysql 时禁止用户的方法。
这是我的日志 fail2ban.log 看到的:
2018-06-15 06:51:09,021 fail2ban.ipdns [4520]:
WARNING Determined IP using DNS Lookup:
localhost = ['127.0.0.1', '127.0.0.1', '::1']
这是我的 jail.local 文件:
[mysqld-auth]
enabled = true
port = 3306
filter = mysqld-auth
logpath = /var/log/mysql/mysql.log
我尝试将 usedns = warn 更改为 usedns = no,但它忽略了警告。我没有对我的 filter.d 文件夹中的 mysql-auth 进行任何更改。
我假设您的真正问题如下:
您在服务器上运行了 Adminer(PHPMYadmin 的替代品),并且您在 Web 界面(以及 MySQL)中获得了非法登录尝试。
如果这是正确的,则在任何情况下都不应尝试使用 Fail2Ban 来禁止 MySQL(在您的情况下,如果您阻止 localhost,这将导致没有人能够使用它)。相反,如果有太多非法登录尝试进入 Adminer ,您必须配置 Fail2Ban 以阻止对Web 界面(例如端口 80/443)的访问。