「守る力」を「維持する力」へ
こんにちは!「リナックス先生」です。
全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:設定したのに繋がらない
確認ポイント:
- リロードしましたか?
sudo firewall-cmd --reloadを忘れていませんか?
- RuntimeとPermanentのズレ
sudo firewall-cmd --list-allで確認してください。Permanentには書いたけどRuntimeに反映されていないパターンが多いです。
- ゾーンは合っていますか?
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完全攻略講座まとめ
長い間お付き合いいただき、ありがとうございました。
これまでの記事をインデックスとしてまとめておきます。困った時は該当の回を読み返してください。
【基礎編:仕組みを理解する】
- 第1回:概念編
Firewalldとは?パケットフィルタリングと「ゾーン」の仕組みを完全図解。 - 第2回:基礎操作編
状態確認、起動・停止、パニックモードなど、黒い画面での基本操作。 - 第3回:ゾーン管理編
インターフェースのゾーン割り当て変更と、信頼レベルに応じた使い分け。 - 第4回:サービスとポート編
Webサーバー(http/https)のポート開放手順と、サービス定義の仕組み。 - 第5回:設定の永続化編
再起動で設定が消える謎を解明。RuntimeとPermanentの違いをマスター。
【実践編:サーバーを構築する】
- 第6回:Webサーバー設計編
「Source機能」を使い、管理者だけSSH接続を許可する鉄壁の構成。 - 第7回:メールサーバー設計編
SMTP/IMAP/POP3のポート制御と、スパム踏み台を防ぐための非暗号化ポート閉鎖。 - 第8回:データベース連携編
MySQL(3306)をインターネットに晒さない。Webサーバーからのみ許可する内部連携。 - 第9回:UDPと特殊プロトコル編
DNS, NTP, HTTP/3(QUIC)など、UDP通信の制御と疎通確認コマンド(nc)。
【応用・運用編:プロの技を身につける】
- 第10回:リッチルール入門編
ログ記録、特定のIPブロック、接続回数制限など、複雑な条件設定。 - 第11回:高度なネットワーク編
マスカレード(NAPT)とポートフォワーディングでサーバーをルーター化する技術。 - 第12回:運用・トラブルシューティング編(本記事)
バックアップ、復旧、初期化、よくあるエラー対応の総まとめ。
おわりに:セキュリティは「生き物」
この講座で設定したFirewalldは、現時点では安全です。
しかし、新しい脆弱性が発見されたり、新しいサービスを導入したりすれば、設定を見直す必要があります。
セキュリティ設定に「一度やれば終わり」はありません。
「今の設定はどうなっているかな?」と --list-all を叩く習慣こそが、あなたのサーバーを守る最強の盾になります。
これからも、AlmaLinux 9 と Firewalld を使いこなして、安全で快適なサーバーライフを送ってください!
それでは、また別の講座でお会いしましょう。
全12回、本当にお疲れ様でした!
分からないことがあったら、いつでもこのブログに戻ってきてね。
Good Luck!
▼学習を続けるならこのVPS
この講座で得た知識を活かして、次はWebサーバー、メールサーバー、VPNサーバーなど、様々な構築にチャレンジしてみてください。何度でも作り直せるおすすめVPSはこちら。


コメント