我在 Ubuntu 18.04.5 LTS(GNU/Linux 4.15.0-135-generic x86_64)上运行 LAMP 设置。
我已经使用以下文档集成了 fail2ban 和 dbhttps://docs.iredmail.org/fail2ban.sql.html#fail2ban-store-banned-ip-addresses-in-sql-database。服务器启动并运行时,一切都运行正常,但由于某种原因,fail2ban 在重新启动时无法连接到数据库 (mysql)。我可以使用与 fail2ban_banned_db 脚本中相同的参数手动连接到 mysql,无论是从“127.0.0.1”还是“localhost”。对数据库的禁止和取消禁止工作正常,crontab 脚本从数据库取消禁止也正常。
我在关机过程和启动过程中都遇到此错误。
关机状态下:
2021-02-01 22:26:59,412 fail2ban.actions [20149]: NOTICE [wp-admin] Unban 93.114.234.242
2021-02-01 22:26:59,433 fail2ban.utils [20149]: Level 39 7f2980c48100 -- exec: /usr/local/bin/fail2ban_banned_db unban 93.114.234.242
2021-02-01 22:26:59,434 fail2ban.utils [20149]: ERROR 7f2980c48100 -- stderr: "ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)"
2021-02-01 22:26:59,434 fail2ban.utils [20149]: ERROR 7f2980c48100 -- returned 1
2021-02-01 22:26:59,434 fail2ban.actions [20149]: ERROR Failed to execute unban jail 'wp-admin' action 'banned_db' info 'ActionInfo({'ip': etc...
启动时:
2021-02-01 22:28:41,968 fail2ban.utils [1104]: ERROR 7f595c169248 -- stderr: "ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)"
2021-02-01 22:28:41,968 fail2ban.utils [1104]: ERROR 7f595c169248 -- returned 1
2021-02-01 22:28:41,968 fail2ban.actions [1104]: ERROR Failed to execute ban jail 'badbot' action 'banned_db' info 'ActionInfo({'ip': etc....
好像 mysql 在关闭进程中先于 fail2ban 关闭,在启动进程中先于 fail2ban 启动,但这只是我的猜测,不知道到底发生了什么。我不想对服务器安装进行太多改动。
希望你能帮助我解决这个问题。
谢谢
答案1
您/var/log/syslog
应该显示启动和关闭服务的确切顺序。也就是说,systemd
通常会同时启动和停止多个服务,这可能会产生此类问题。幸运的是,您可以systemd
使用该After
指令来了解依赖关系。
就是这样:
打开终端(如果尚未打开)
fail2ban.service
在目录中查找文件systemd
。这将大概在/lib/systemd/system
,但可能在/etc/systemd/system
。fail2ban.service
使用以下方式打开文件sudo
将以下行添加到该
[Unit]
部分的末尾:After=mysql.service
保存文件。
这应该表明systemd
需要fail2ban
MySQL,因此应该先关闭,然后再启动