「知っている」を「使いこなせる」へ
こんにちは!「リナックス先生」です。
全12回のFirewalld講座、完走おめでとうございます!
これまでの連載で、ポート開放からルーター化まで、一通りの操作はマスターできたはずです。
しかし、実際のサーバー運用の現場では、「教科書通りにやったのに動かない」「再起動したら設定が先祖返りした」という怪現象に遭遇することがあります。
今回は番外編として、本編では語りきれなかった「Linuxのネットワーク機能との連携」や「現場レベルの豆知識」を補足します。
また、記事の後半には「全12回の目次リンク」を用意しました。ブックマークして辞書代わりに使ってくださいね。
先生、実はこの前、再起動したらゾーンの設定が勝手に戻っちゃったことがあって…。
Firewalldの設定ファイルは合ってるはずなのに、なんでですか?
それはね、「NetworkManager」という別の管理ツールがイタズラしている可能性が高いわ。
Firewalldだけでなく、OS全体のネットワーク設定との関係を知っておくことが、脱初心者のカギよ!
1. 【重要補足】NetworkManagerとの競合に注意
第3回「ゾーン管理編」で、インターフェースのゾーン変更を行いました。
しかし、AlmaLinux 9(RHEL 9系)では、インターフェースの管理は **NetworkManager(nmcli)** が主導権を握っています。
現象:ゾーン設定が固定されない
firewall-cmd でゾーンを変更しても、OSを再起動すると元(publicなど)に戻ってしまう場合、NetworkManager側の設定ファイル(/etc/NetworkManager/system-connections/ 内)にゾーン設定が書き込まれていない可能性があります。
解決策:nmcli側でゾーンを指定する
確実にゾーンを固定したい場合、Firewalldコマンドではなく、以下のコマンドでネットワーク設定自体を書き換えるのが最も確実です。
# eth0 を home ゾーンに完全固定する sudo nmcli connection modify eth0 connection.zone home sudo nmcli connection up eth0
これにより、ネットワークインターフェースが立ち上がる瞬間に、NetworkManagerがFirewalldに対して「このIFはhomeゾーンに入れてくれ」と指示を出すようになります。
「設定が消える!」と悩んだら、このコマンドを思い出してください。
2. 【重要補足】IPv6の扱いについて
講座の中では主にIPv4(192.168...)を扱ってきましたが、FirewalldはデフォルトでIPv6にも同時に適用されます。
サービス許可の挙動
以下のコマンドを実行したとします。
sudo firewall-cmd --add-service=http
これは、「IPv4の80番」と「IPv6の80番」の両方を開放します。
Firewalldの良いところは、ここを意識しなくても勝手に両対応してくれる点です。
リッチルールでの注意点
ただし、第10回の「リッチルール」だけは注意が必要です。family="ipv4" と指定した場合、当然ながらIPv6の通信は制御されません。
完全にブロックしたい場合は、IPv6用のルールも書く必要があります。
# IPv4をブロック sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" drop' # IPv6もブロック(必要なら) sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv6" source address="2001:db8::1" drop'
3. 【便利コマンド】逆引きリファレンス
「あれ、あのコマンドなんだっけ?」となった時のための、頻出コマンド集です。
基本操作
| やりたいこと | コマンド |
|---|---|
| 状態確認 | firewall-cmd --state |
| 全設定を表示 | firewall-cmd --list-all |
| 設定反映 | firewall-cmd --reload |
設定変更(必ず –permanent をつける!)
| やりたいこと | コマンド |
|---|---|
| サービスの許可 | firewall-cmd --permanent --add-service=http |
| ポートの許可 | firewall-cmd --permanent --add-port=8080/tcp |
| 許可の取り消し | --add の部分を --remove に変える |
| 特定のIPを許可 | firewall-cmd --permanent --zone=trusted --add-source=1.2.3.4 |
調査・トラブル対応
| やりたいこと | コマンド |
|---|---|
| 定義済みサービス一覧 | firewall-cmd --get-services |
| サービスのポート確認 | firewall-cmd --info-service=ssh |
| パニックモードON | firewall-cmd --panic-on |
| パニックモードOFF | firewall-cmd --panic-off |
4. 全12回 講座インデックス
必要な情報にすぐアクセスできるよう、全記事のリンクをまとめました。
【入門編:Firewalldの仕組み】
-
第1回:概念編
「パケットフィルタリング」や「ゾーン」とは何か?iptablesとの違いを解説。 -
第2回:基礎操作編
黒い画面でのコマンド操作。状態確認(list-all)と緊急停止(panic mode)。 -
第3回:ゾーン管理編
自宅用・公開用など、場所に合わせてセキュリティレベルを切り替える方法。 -
第4回:サービスとポート編
Webサーバーを例にしたポート開放の基本。「サービス名指定」のメリット。 -
第5回:設定の永続化編
「再起動したら設定が消えた!」を防ぐ、RuntimeとPermanentの違い。
【実践編:主要サーバーの構築】
-
第6回:Webサーバー設計編
「Source機能」を使い、Webは全員許可・SSHは管理者だけ許可する鉄壁設定。 -
第7回:メールサーバー設計編
SMTP/IMAP/POP3のポート制御。スパム踏み台にならないためのポート閉鎖術。 -
第8回:データベース連携編
MySQL(3306)をインターネットに晒さない。特定のWebサーバーとだけ通信させる方法。 -
第9回:UDPと特殊プロトコル編
DNS, NTP, HTTP/3(QUIC)に必要なUDPポート制御と、ncコマンドによる確認。
【上級編:プロの運用技術】
-
第10回:リッチルール入門編
ログ記録、ブラックリスト、接続回数制限など、複雑な条件付き制御。 -
第11回:高度なネットワーク編
サーバーをルーター化するマスカレード(NAPT)とポートフォワーディング。 -
第12回:運用・トラブルシューティング編
バックアップ・復旧・初期化の手順と、困った時のQ&Aまとめ。
最後に:サーバーを守るのは「あなた」です
Firewalldは非常に強力なツールですが、あくまで「言われたことしかやらない」プログラムに過ぎません。
「どの通信を通して、どの通信を止めるか」を決めるのは、エンジニアであるあなた自身です。
この講座で学んだ知識があれば、どんなサーバー構築の依頼が来ても、自信を持ってセキュリティ設計ができるはずです。
エラーが出ても焦らず、ログを見て、コマンドを確認してください。その繰り返しが、あなたを本物のエンジニアへと成長させます。
皆さんのLinuxライフが、安全で楽しいものになりますように!
それでは、また別の記事でお会いしましょう。
これにてFirewalld集中講座、完結です!
コウ君も皆さんも、本当によく頑張りました。
さあ、次の技術への扉を開けに行きましょう!
▼セキュリティ技術を磨けるVPS
安全な環境でコマンドを試すには、何度でも初期化できるVPSが最適です。AlmaLinux 9が使えて、学習コストも抑えられるおすすめVPSはこちら。


コメント