【Firewalld講座 最終回】完全運用ガイド!バックアップ・復旧手順と困った時のトラブルシューティング集

「守る力」を「維持する力」へ

こんにちは!「リナックス先生」です。
全12回にわたってお届けしてきたFirewalld講座、ついに最終回です。

第1回では「ポートって何?」という状態だったコウ君も、今やゾーンを操り、リッチルールを書き、ルーター設定までこなせる立派なサーバーエンジニアになりました。
しかし、構築と同じくらい、いやそれ以上に難しいのが「運用(保守)」です。

「久しぶりに設定を変えようとしたらエラーが出た」
「設定をいじりすぎて訳がわからなくなった」

そんな時のために、転ばぬ先の杖となるバックアップ術と、トラブルシューティングの極意を伝授して、この講座を締めくくりたいと思います。

コウ君

先生、ここまで長かったですが、本当に勉強になりました!
でも正直、半年後にまた設定が必要になった時、コマンドを覚えている自信がありません…。
設定ファイルだけコピーしておけばなんとかなりますか?

リナックス先生

もちろん!Linuxの最大の利点は「設定がすべてテキストファイル」だということ。
バックアップさえあれば、OSを再インストールしても一瞬で元のセキュリティ状態に戻せるわ。
最後は、エンジニアとして一番大切な「復旧力」を身につけましょう。

1. バックアップと復旧(リストア)

Firewalldの設定(Permanentで行った変更)は、すべて特定のディレクトリにXMLファイルとして保存されています。
このディレクトリさえバックアップしておけば完璧です。

設定ファイルの場所

/etc/firewalld/

この中に、ゾーン設定(zones/)やカスタムサービス設定(services/)などがすべて格納されています。

バックアップ手順

シンプルに、ディレクトリごとアーカイブ(圧縮)してしまうのが一番簡単です。

sudo tar -czvf firewalld_backup.tar.gz /etc/firewalld/

これで firewalld_backup.tar.gz というファイルが生成されます。
これをローカルPCや別のバックアップサーバーに保存しておきましょう。

復旧(リストア)手順

設定を戻す時は、ファイルを解凍して配置し直し、リロードするだけです。

# 1. 既存の設定を退避(念のため)
sudo mv /etc/firewalld /etc/firewalld.old

# 2. バックアップを展開
sudo tar -xzvf firewalld_backup.tar.gz -C /

# 3. Firewalldに反映
sudo firewall-cmd --reload

これで、バックアップ時点の状態に完全に戻ります。

2. 「設定をいじりすぎた!」時の初期化方法

「色々と試しているうちに設定がぐちゃぐちゃになってしまい、どれがデフォルトか分からなくなった…」
学習中にはよくあることです。

Firewalldは、ユーザー設定ファイル(/etc/firewalld/)を削除すると、システム初期設定(/usr/lib/firewalld/)を自動的に読み込む仕組みになっています。
つまり、設定ファイルを消せば初期化されます。

初期化の手順(全リセット)

※注意: これまで行った全ての設定(ポート開放など)が消えます!

# 1. Firewalldを停止
sudo systemctl stop firewalld

# 2. 設定ディレクトリの中身を全て削除(ディレクトリ自体は残す)
sudo rm -rf /etc/firewalld/*

# 3. Firewalldを起動
sudo systemctl start firewalld

これでインストール直後の「つるんとした状態」に戻ります。
トラブルシューティングで「何が原因か分からない」という時は、一度初期化してから再設定するのも一つの手です。

3. トラブルシューティング集

よくあるエラーやトラブルの解決策をまとめました。

ケース1:設定したのに繋がらない

確認ポイント:

  1. リロードしましたか?
    • sudo firewall-cmd --reload を忘れていませんか?
  2. RuntimeとPermanentのズレ
    • sudo firewall-cmd --list-all で確認してください。Permanentには書いたけどRuntimeに反映されていないパターンが多いです。
  3. ゾーンは合っていますか?
    • sudo firewall-cmd --get-active-zones で、インターフェースが意図したゾーン(publicなど)に所属しているか確認してください。

ケース2:COMMAND_FAILED エラーが出る

Error: COMMAND_FAILED: '/usr/sbin/iptables-restore ...' failed: ...

このようなエラーが出る場合、バックエンドのnftablesやiptablesと競合している可能性があります。

解決策: 完全リロードを試す

sudo firewall-cmd --complete-reload

それでも直らない場合は、Dockerなどが勝手にiptablesルールを書き換えて競合している可能性があります。サーバーを再起動(reboot)するのが最も確実な解決策です。

ケース3:ログを見たい

「Firewalldが何をしているのか知りたい」という場合、ログレベルを上げることで詳細な動作ログを出力できます。

設定ファイル: /etc/firewalld/firewalld.conf

LogDenied=all

上記のように書き換えてリロードすると、ブロックした通信(Denied)がすべて /var/log/messages に記録されるようになります。
(※ログが大量に出るため、トラブル調査が終わったら off に戻してください)

4. Firewalldとnftablesの関係(おまけ)

第1回で少し触れましたが、AlmaLinux 9ではFirewalldの裏側で nftables という仕組みが動いています。
上級者になると「nftablesを直接いじったほうが細かいことができるのでは?」と思うかもしれません。

しかし、併用は推奨されません。
Firewalldはnftablesのルールを独占的に管理しようとするため、人間が手動でnftablesの設定を変更しても、Firewalldがリロードされるたびに上書きされて消えてしまいます。

「Firewalldを使うなら、Firewalldのコマンドだけで完結させる」。
これが安定運用の鉄則です。

5. 全12回・Firewalld完全攻略講座まとめ

長い間お付き合いいただき、ありがとうございました。
これまでの記事をインデックスとしてまとめておきます。困った時は該当の回を読み返してください。

【基礎編:仕組みを理解する】

【実践編:サーバーを構築する】

【応用・運用編:プロの技を身につける】

おわりに:セキュリティは「生き物」

この講座で設定したFirewalldは、現時点では安全です。
しかし、新しい脆弱性が発見されたり、新しいサービスを導入したりすれば、設定を見直す必要があります。

セキュリティ設定に「一度やれば終わり」はありません。
「今の設定はどうなっているかな?」と --list-all を叩く習慣こそが、あなたのサーバーを守る最強の盾になります。

これからも、AlmaLinux 9 と Firewalld を使いこなして、安全で快適なサーバーライフを送ってください!
それでは、また別の講座でお会いしましょう。

リナックス先生

全12回、本当にお疲れ様でした!
分からないことがあったら、いつでもこのブログに戻ってきてね。
Good Luck!

▼学習を続けるならこのVPS

この講座で得た知識を活かして、次はWebサーバー、メールサーバー、VPNサーバーなど、様々な構築にチャレンジしてみてください。何度でも作り直せるおすすめVPSはこちら。

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント