[体系]
Virgin DigitalOcean Droplet Ubuntu 18.04.2 LTS(GNU/Linux 4.15.0-52-generic x86_64)には、すべての最新のVirtualminアップデートのみが含まれています。
私はこれをするようにどのように提案しますか?
[問題] 再起動後、以下のように D-Bus と FirewallD が 30% の時間失敗します。
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からの信号を受け取ります。」
[理論] したがって、networkd-dispatcher.serviceがサービスシグナルに依存するDBusは起動しません... "systemd-networkdのディスパッチャデーモンを起動できません"と言うと、ファイアウォールはガタガタになります。別のことがあるかもしれません。
[パターン] これらのエラーが発生したときにパターンが見つかりました。
[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
ファイアウォールを無効にしてブロックした後、IPTablesに戻りました。その後は何の問題もありませんでした。
コメントでIPTablesを使用するには、fall2banを変更する必要がありました。
# banaction=firewallcmd-ipset
in /etc/fail2ban/jail.d/00-firewalld.conf
- ファイルを削除しません。
その後、シャットダウン時にIPTableを保存および復元し、次のように再起動する新しいサービスを設定しました。
Ubuntu 18.04を終了/再起動したときにコマンドを実行する
そうしなかったのは、iptablesを一時ファイルとして使用してiptablesを編集するiptables-persistent
WebminとIPTablesを統合したかったからです。/etc/webmin/firewall/iptables.save
/etc/webmin/firewall6/ip6tables.save
カスタムサービスを使用すると、webminを使用してiptablesを編集して適用でき、シャットダウン/再起動時にiptablesを保存および復元できます。
最後に、f2bが再起動時に再度追加されたため、Fail2banチェーンとルールがすべてクリアされるようにサービスに修正を追加する必要がありました。これを行うには、ここで私の解決策に従うことができます。