Fail2ban 在重启过程中无法连接到 mysql,包括关机和启动过程,无法连接到‘127.0.0.1’上的 MySQL 服务器 (111)

Fail2ban 在重启过程中无法连接到 mysql,包括关机和启动过程,无法连接到‘127.0.0.1’上的 MySQL 服务器 (111)

我在 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指令来了解依赖关系。

就是这样:

  1. 打开终端(如果尚未打开)

  2. fail2ban.service在目录中查找文件systemd。这将大概/lib/systemd/system,但可能在/etc/systemd/system

  3. fail2ban.service使用以下方式打开文件sudo

  4. 将以下行添加到该[Unit]部分的末尾:

    After=mysql.service
    
  5. 保存文件。

这应该表明systemd需要fail2banMySQL,因此应该先关闭,然后再启动

相关内容