1. 結論:通信ルールをまとめて管理する
firewalldはLinuxのファイアウォール設定を管理するサービスです。ファイアウォールは、ネットワーク通信を条件に従って許可・拒否する仕組みです。
zone(ゾーン)は、接続元やネットワークインターフェースなどに応じて適用するルール群のまとまりです。serviceはHTTPなどのサービスに必要なポート・プロトコル等の定義を名前で扱う仕組みで、portはポート番号とTCP/UDP等を直接指定する方法です。
重要:「どのzoneが適用されるか」→「適用されたzoneにどんな許可ルールがあるか」を分けて考えると理解しやすくなります。
2. zone / service / port の関係
たとえばinternal zoneだけに80/tcpを許可するルールを設けても、他のzoneからの接続が自動的に許可されるわけではありません。
80/tcpと80/udpは別の通信です。番号が同じでもプロトコルが違えば、80/tcpの許可ルールは80/udpには適用されません。
3. 操作デモ:通信は通る?
適用zoneと宛先ポートを変える
以下は仕組みを理解するための単純化した独自ルールです。internalには22/tcp、publicには80/tcpだけを許可し、それ以外は拒否する前提とします。
許可:internal zoneで22/tcpの許可ルールに一致しました。
実際の通信判定はsource/interfaceの割当、既存接続、rich rule、policy、zone target等にも依存します。この教材では省略しています。
4. 設定例と動作確認
実際のLinux環境では、まずzoneや現在のルールを確認します。
# 動作中のfirewalld状態
sudo firewall-cmd --state
# アクティブなzoneと割当を確認
sudo firewall-cmd --get-active-zones
# internal zoneの現在のルールを確認
sudo firewall-cmd --zone=internal --list-all
# internalで80/tcpを永続的に許可
sudo firewall-cmd --permanent --zone=internal --add-port=80/tcp
# 永続設定を実行時設定に反映
sudo firewall-cmd --reload--permanentは永続設定の変更であり、そのままでは実行中の設定に即時反映されません。上記では--reloadで反映します。なお--reloadを実行すると、--permanentなしで追加した実行時のみの変更は破棄されます。実行前に環境のセキュリティ方針を確認しましょう。
5. 理解度チェック
Q1. internalに80/tcpを許可したら、publicでも80/tcpが許可される?
答え:いいえ。zoneごとに適用されるルールは異なります。ただし別途publicにも許可ルールが存在すれば通る可能性があります。
Q2. 53/tcpの許可ルールで53/udpも許可される?
答え:いいえ。ポート番号に加えて通信プロトコルも一致する必要があります。
Q3. 永続設定にポートを追加した直後、実行中のルールへ確実に反映される?
答え:いいえ。--permanentだけでは実行時設定に反映されず、通常はreload等で反映します。
参考資料
firewalld公式ドキュメントで最新のオプションを確認できます。
独立した学習用解説です。特定の資格試験の公式教材ではありません。