订购周期 - FirewallD 和 DBusException

订购周期 - FirewallD 和 DBusException

[系统]

Virgin DigitalOcean Droplet Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-52-generic x86_64) 包含最新 Virtualmin 的所有更新,仅此而已。

您建议我如何进行此操作?

[问题] 重新启动后,30% 的情况下,D-Bus 和 FirewallD 会失败,如下所示:

Jun 20 09:28:35 ns1 networkd-dispatcher[679]: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory 
Jun 20 09:28:35 ns1 systemd[1]: networkd-dispatcher.service: Main process exited, code=exited, status=1/FAILURE Jun 20 09:28:35 ns1 systemd[1]: networkd-dispatcher.service: Failed with result 'exit-code'. 
Jun 20 09:28:35 ns1 systemd[1]: Failed to start Dispatcher daemon for systemd-networkd.

将此与它成功的时代进行比较:

Jun 20 09:30:16 ns1 networkd-dispatcher[678]: No valid path found for iwconfig
Jun 20 09:30:16 ns1 networkd-dispatcher[678]: No valid path found for iw 
Jun 20 09:30:16 ns1 networkd-dispatcher[678]: WARNING: systemd-networkd is not running, output will be incomplete. 
Jun 20 09:30:16 ns1 systemd[1]: Started Dispatcher daemon for systemd-networkd. 
Jun 20 09:30:16 ns1 systemd[1]: Started firewalld - dynamic firewall daemon.

[背景]“Networkd-dispatcher 是一个用于 systemd-networkd 连接状态更改的调度程序守护进程......该守护进程通过 dbus 监听来自 systemd-networkd 的信号”

[理论] 所以 DBus 不会启动,networkd-dispatcher.service 依赖它来服务信号...当“无法启动 systemd-networkd 的调度程序守护进程”时,firewalld 会发出嘎嘎声,我猜可能还有其他事情。

[模式] 我注意到这些故障发生时会出现一种模式。

[FirewallD reports:] Failed to list zones : Error: DBUS_ERROR: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
Jun 21 05:54:11 ns1 kernel: [ 8.398419] systemd[1]: firewalld.service: Found ordering cycle on dbus.socket/start
Jun 21 05:54:11 ns1 kernel: [ 8.404282] systemd[1]: firewalld.service: Found dependency on sysinit.target/start
Jun 21 05:54:11 ns1 kernel: [ 8.424332] systemd[1]: firewalld.service: Found dependency on cloud-init.service/start
Jun 21 05:54:11 ns1 kernel: [ 8.438320] systemd[1]: firewalld.service: Found dependency on systemd-networkd-wait-online.service/start
Jun 21 05:54:11 ns1 kernel: [ 8.497168] systemd[1]: firewalld.service: Found dependency on systemd-networkd.service/start
Jun 21 05:54:11 ns1 kernel: [ 8.505811] systemd[1]: firewalld.service: Found dependency on network-pre.target/start

[FirewallD reports:] Failed to list zones : FirewallD is not running
Jun 21 05:44:39 ns1 kernel: [ 7.396133] systemd[1]: network-pre.target: Found ordering cycle on firewalld.service/stop
Jun 21 05:44:39 ns1 kernel: [ 7.408784] systemd[1]: network-pre.target: Found dependency on basic.target/start
Jun 21 05:44:39 ns1 kernel: [ 7.418770] systemd[1]: network-pre.target: Found dependency on sockets.target/start
Jun 21 05:44:39 ns1 kernel: [ 7.455484] systemd[1]: network-pre.target: Found dependency on lxd.socket/start
Jun 21 05:44:39 ns1 kernel: [ 7.470305] systemd[1]: network-pre.target: Found dependency on sysinit.target/start
Jun 21 05:44:39 ns1 kernel: [ 7.476614] systemd[1]: network-pre.target: Found dependency on cloud-init.service/start

答案1

我只是禁用并屏蔽了firewalld,然后返回到IPTables。之后就没有问题了。

我必须通过注释来更改fail2ban以与IPTables一起使用:

# banaction=firewallcmd-ipset

in /etc/fail2ban/jail.d/00-firewalld.conf- 不删除该文件。

然后我设置了一项新服务来在关机和重新启动时保存和恢复 IPTables,如下所述:

在关闭/重新启动 Ubuntu 18.04 时运行命令

我没有使用的原因iptables-persistent是因为我想将 IPTables 与 Webmin 集成,Webmin 使用/etc/webmin/firewall/iptables.save/etc/webmin/firewall6/ip6tables.save作为临时文件来编辑 iptables。

通过使用我的自定义服务,我可以使用 webmin 编辑和应用 iptables,并且在关闭/重新启动时我保存了 iptables 并将其恢复。

最后,我必须向我的服务添加修复程序,以便清除所有fail2ban 链和规则,因为重新启动时 f2b 会再次添加它们。为此,您可以在这里遵循我的解决方案:

REGEX:刷新 iptables 中的一些相关链

相关内容