我的服务器上有 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 进行任何更改。
答案1
我假设您的真正问题如下:
您的服务器上运行着 Adminer(PHPMYadmin 的替代品),并且您尝试非法登录 Web 界面(进而登录 MySQL)。
如果这是正确的,你在任何情况下都不应该尝试使用 Fail2Ban 来禁止 MySQL(在你的情况下,如果你阻止 localhost,这将导致没有人能够使用它)。相反,你必须配置 Fail2Ban 来阻止对网络界面(例如端口 80/443)如果有太多次非法尝试登录 Adminer。
- 配置 Adminer 以记录非法尝试
- 配置 Fail2Ban 来扫描这些日志并阻止不良客户端的访问