サーバにある機能を追加しようとして、Firewalldを確認したところ、エラーが出ていました。
# firewall-cmd --get-active-zones FirewallD is not running
「実行されていません」となっています。
# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: inactive (dead) since 土 2020-02-15 15:54:11 JST; 4h 55min ago Docs: man:firewalld(1) Process: 1525 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS) Main PID: 1525 (code=exited, status=0/SUCCESS) 2月 15 15:54:10 marusv.maruweb.jp.net systemd[1]: Starting firewalld - dynamic firewall daemon... 2月 15 15:54:11 marusv.maruweb.jp.net systemd[1]: Started firewalld - dynamic firewall daemon. 2月 15 15:54:11 marusv.maruweb.jp.net firewalld[1525]: WARNING: ipset not usable, disabling ipset usage in firewall. 2月 15 15:54:11 marusv.maruweb.jp.net firewalld[1525]: ERROR: Failed to load nf_conntrack module: modprobe: ERROR: could not find module by name='nf_conntrack' modprobe: ERROR: could not insert 'nf_conntrack': Function not implemented modprobe: ERROR: Error running install command for nf_conntrack... 2月 15 15:54:11 marusv.maruweb.jp.net firewalld[1525]: ERROR: Raising SystemExit in run_server Hint: Some lines were ellipsized, use -l to show in full.
systemctlコマンドでfirewalldサービスの確認をしました。
4行目:Active欄では、非アクティブで稼働していない
12行目:journalログでは、nf_conntrackモジュールが読み込めずエラーとなっている
systemctlコマンドでサービスの起動を試みましたが、起動できませんでした。
色々と検索した結果、下記2点が判明しました。
1 CentOS7.7にアップデートしてからのバグ
2 Firewalldをダウングレードすることで回避できる
ダウングレードすることとしました。
その前に現状バージョンの確認です。
# firewall-cmd --version 0.6.3
yumでダウングレードするにあたり、特定のバージョンを指定しない場合は、ひとつ前のバージョンとなるようなので、実行してみます。
# yum downgrade firewalld firewalld-filesystem 読み込んだプラグイン:langpacks, versionlock 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ firewalld.noarch 0:0.6.3-2.el7_7.2 を ダウングレード --> 依存性の処理をしています: python-firewall = 0.6.3-2.el7_7.2 のパッケージ: firewalld-0.6.3-2.el7_7.2.noarch ---> パッケージ firewalld.noarch 0:0.6.3-2.el7_7.3 を 削除 ---> パッケージ firewalld-filesystem.noarch 0:0.6.3-2.el7_7.2 を ダウングレード ---> パッケージ firewalld-filesystem.noarch 0:0.6.3-2.el7_7.3 を 削除 --> 依存性解決を終了しました。 エラー: パッケージ: firewalld-0.6.3-2.el7_7.2.noarch (updates) 要求: python-firewall = 0.6.3-2.el7_7.2 インストール: python-firewall-0.6.3-2.el7_7.3.noarch (@updates) python-firewall = 0.6.3-2.el7_7.3 利用可能: python-firewall-0.6.3-2.el7.noarch (base) python-firewall = 0.6.3-2.el7 利用可能: python-firewall-0.6.3-2.el7_7.1.noarch (updates) python-firewall = 0.6.3-2.el7_7.1 利用可能: python-firewall-0.6.3-2.el7_7.2.noarch (updates) python-firewall = 0.6.3-2.el7_7.2 問題を回避するために --skip-broken を用いることができます。 これらを試行できます: rpm -Va --nofiles --nodigest
依存性の処理でpython-firewallが必要で、要求に対して利用可能が3つあり、依存性解決ができなかったようです。
必要なパッケージは、次の3つであることが判明したので、再度実行します。
firewalld
firewalld-filesystem
python-firewall
# yum downgrade firewalld firewalld-filesystem python-firewall 読み込んだプラグイン:langpacks, versionlock 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ firewalld.noarch 0:0.6.3-2.el7_7.2 を ダウングレード ---> パッケージ firewalld.noarch 0:0.6.3-2.el7_7.3 を 削除 ---> パッケージ firewalld-filesystem.noarch 0:0.6.3-2.el7_7.2 を ダウングレード ---> パッケージ firewalld-filesystem.noarch 0:0.6.3-2.el7_7.3 を 削除 ---> パッケージ python-firewall.noarch 0:0.6.3-2.el7_7.2 を ダウングレード ---> パッケージ python-firewall.noarch 0:0.6.3-2.el7_7.3 を 削除 --> 依存性解決を終了しました。 依存性を解決しました ======================================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ======================================================================================================================= ダウングレード中: firewalld noarch 0.6.3-2.el7_7.2 updates 441 k firewalld-filesystem noarch 0.6.3-2.el7_7.2 updates 50 k python-firewall noarch 0.6.3-2.el7_7.2 updates 352 k トランザクションの要約 ======================================================================================================================= ダウングレード 3 パッケージ 総ダウンロード容量: 844 k Is this ok [y/d/N]: y Downloading packages: (1/3): firewalld-filesystem-0.6.3-2.el7_7.2.noarch.rpm | 50 kB 00:00:00 (2/3): firewalld-0.6.3-2.el7_7.2.noarch.rpm | 441 kB 00:00:00 (3/3): python-firewall-0.6.3-2.el7_7.2.noarch.rpm | 352 kB 00:00:00 ----------------------------------------------------------------------------------------------------------------------- 合計 2.9 MB/s | 844 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : firewalld-filesystem-0.6.3-2.el7_7.2.noarch 1/6 インストール中 : python-firewall-0.6.3-2.el7_7.2.noarch 2/6 インストール中 : firewalld-0.6.3-2.el7_7.2.noarch 3/6 整理中 : firewalld-0.6.3-2.el7_7.3.noarch 4/6 整理中 : firewalld-filesystem-0.6.3-2.el7_7.3.noarch 5/6 整理中 : python-firewall-0.6.3-2.el7_7.3.noarch 6/6 検証中 : firewalld-0.6.3-2.el7_7.2.noarch 1/6 検証中 : python-firewall-0.6.3-2.el7_7.2.noarch 2/6 検証中 : firewalld-filesystem-0.6.3-2.el7_7.2.noarch 3/6 検証中 : python-firewall-0.6.3-2.el7_7.3.noarch 4/6 検証中 : firewalld-filesystem-0.6.3-2.el7_7.3.noarch 5/6 検証中 : firewalld-0.6.3-2.el7_7.3.noarch 6/6 削除しました: firewalld.noarch 0:0.6.3-2.el7_7.3 firewalld-filesystem.noarch 0:0.6.3-2.el7_7.3 python-firewall.noarch 0:0.6.3-2.el7_7.3 インストール: firewalld.noarch 0:0.6.3-2.el7_7.2 firewalld-filesystem.noarch 0:0.6.3-2.el7_7.2 python-firewall.noarch 0:0.6.3-2.el7_7.2 完了しました!
一つ前のリリース番号にダウングレードされました。
再度、systemctlでfirewalldサービスを起動してみました。が、同様に起動しませんでした。
更にダウングレードしてみます。
最終的に、バージョン0.6.3のベース版までダウングレードしてみましたが、改善されませんでした。
yumでバージョン指定なしでのダウングレードは、これ以上できないようですので必要なパッケージをサイトからダウンロードして実行します。
ダウングレードパッケージのダウンロード
http://vault.centos.org/centos/7.6.1810/os/x86_64/Packages/
# wget http://vault.centos.org/centos/7.6.1810/os/x86_64/Packages/firewalld-0.5.3-5.el7.noarch.rpm # wget http://vault.centos.org/centos/7.6.1810/os/x86_64/Packages/firewalld-filesystem-0.5.3-5.el7.noarch.rpm # wget http://vault.centos.org/centos/7.6.1810/os/x86_64/Packages/python-firewall-0.5.3-5.el7.noarch.rpm
続けて、ダウングレードの実行です。
# yum downgrade firewalld-0.5.3-5.el7.noarch.rpm firewalld-filesystem-0.5.3-5.el7.noarch.rpm python-firewall-0.5.3-5.el7.noarch.rpm 読み込んだプラグイン:langpacks, versionlock firewalld-0.5.3-5.el7.noarch.rpm を調べています: firewalld-0.5.3-5.el7.noarch firewalld-filesystem-0.5.3-5.el7.noarch.rpm を調べています: firewalld-filesystem-0.5.3-5.el7.noarch python-firewall-0.5.3-5.el7.noarch.rpm を調べています: python-firewall-0.5.3-5.el7.noarch 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ firewalld.noarch 0:0.5.3-5.el7 を ダウングレード ---> パッケージ firewalld.noarch 0:0.6.3-2.el7 を 削除 ---> パッケージ firewalld-filesystem.noarch 0:0.5.3-5.el7 を ダウングレード ---> パッケージ firewalld-filesystem.noarch 0:0.6.3-2.el7 を 削除 ---> パッケージ python-firewall.noarch 0:0.5.3-5.el7 を ダウングレード ---> パッケージ python-firewall.noarch 0:0.6.3-2.el7 を 削除 --> 依存性解決を終了しました。 依存性を解決しました ======================================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ======================================================================================================================= ダウングレード中: firewalld noarch 0.5.3-5.el7 /firewalld-0.5.3-5.el7.noarch 1.8 M firewalld-filesystem noarch 0.5.3-5.el7 /firewalld-filesystem-0.5.3-5.el7.noarch 239 python-firewall noarch 0.5.3-5.el7 /python-firewall-0.5.3-5.el7.noarch 1.8 M トランザクションの要約 ======================================================================================================================= ダウングレード 3 パッケージ 合計容量: 3.6 M Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python-firewall-0.5.3-5.el7.noarch 1/6 インストール中 : firewalld-filesystem-0.5.3-5.el7.noarch 2/6 インストール中 : firewalld-0.5.3-5.el7.noarch 3/6 整理中 : firewalld-0.6.3-2.el7.noarch 4/6 整理中 : firewalld-filesystem-0.6.3-2.el7.noarch 5/6 整理中 : python-firewall-0.6.3-2.el7.noarch 6/6 検証中 : firewalld-filesystem-0.5.3-5.el7.noarch 1/6 検証中 : firewalld-0.5.3-5.el7.noarch 2/6 検証中 : python-firewall-0.5.3-5.el7.noarch 3/6 検証中 : firewalld-0.6.3-2.el7.noarch 4/6 検証中 : python-firewall-0.6.3-2.el7.noarch 5/6 検証中 : firewalld-filesystem-0.6.3-2.el7.noarch 6/6 削除しました: firewalld.noarch 0:0.6.3-2.el7 firewalld-filesystem.noarch 0:0.6.3-2.el7 python-firewall.noarch 0:0.6.3-2.el7 インストール: firewalld.noarch 0:0.5.3-5.el7 firewalld-filesystem.noarch 0:0.5.3-5.el7 python-firewall.noarch 0:0.5.3-5.el7 完了しました!
特定のバージョンを指定をしてダウングレードの実行をしました。
サービスを起動してみます。
# systemctl restart firewalld.service # systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 土 2020-02-15 22:14:18 JST; 8s ago Docs: man:firewalld(1) Main PID: 19694 (firewalld) CGroup: /system.slice/firewalld.service mq19694 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
1行目:サービスの再起動
2行目:状態の確認
5行目:Active欄で、active(running)と稼働している
# firewall-cmd --state running
firewall-cmdで確認しても稼働中となっていました。
最後に折角ダウングレードしたのに、自動更新されては困るのでしないように処置をしました。
# vi /etc/yum.conf [main] ~ 中略 ~ #一時的にfirewalldのアップデートを停止 exclude=firewalld*,python-firewall
yum.confの[main]セクションに自動更新しないようにパッケージの指定をします。
yum.confの[main]セクションに自動更新しないようにパッケージの指定をします。
しばらく、様子を見てバージョンを戻してみようと思います。
参考サイト:GitHub「Failed to load nf_conntrack module on CentOS 7.7 container #519」