1. 結論:通信ルールをまとめて管理する

firewalldはLinuxのファイアウォール設定を管理するサービスです。ファイアウォールは、ネットワーク通信を条件に従って許可・拒否する仕組みです。

zone(ゾーン)は、接続元やネットワークインターフェースなどに応じて適用するルール群のまとまりです。serviceはHTTPなどのサービスに必要なポート・プロトコル等の定義を名前で扱う仕組みで、portはポート番号とTCP/UDP等を直接指定する方法です。

重要:「どのzoneが適用されるか」→「適用されたzoneにどんな許可ルールがあるか」を分けて考えると理解しやすくなります。

2. zone / service / port の関係

送信元 / NIC
→
適用zone
→
service / port の許可ルール

たとえばinternal zoneだけに80/tcpを許可するルールを設けても、他のzoneからの接続が自動的に許可されるわけではありません。

80/tcpと80/udpは別の通信です。番号が同じでもプロトコルが違えば、80/tcpの許可ルールは80/udpには適用されません。

3. 操作デモ:通信は通る?

INTERACTIVE / SIMULATION

適用zoneと宛先ポートを変える

以下は仕組みを理解するための単純化した独自ルールです。internalには22/tcp、publicには80/tcpだけを許可し、それ以外は拒否する前提とします。

Client
→
internal zone
→
Server

許可: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公式ドキュメントで最新のオプションを確認できます。

独立した学習用解説です。特定の資格試験の公式教材ではありません。

← 技術解説一覧に戻る