コンテンツにスキップ

Zone-Based Firewall

ZBF は、インターフェースをゾーンに所属させ、ゾーン間の通信にポリシーを適用するCisco IOSのファイアウォール機能である。

ACL はインターフェース単位で通信を制御する。ZBF はゾーン間の通信を制御する。inspect を使うと、内側から開始した通信の戻りを自動的に許可できる。


要素 役割
zone security セキュリティゾーンを作る
zone-member security インターフェースをゾーンに所属させる
class-map type inspect 対象通信を分類する
policy-map type inspect classごとの動作を決める
zone-pair security 送信元ゾーンと宛先ゾーンの組を作る
service-policy type inspect zone-pairへpolicyを適用する

flowchart LR
    subgraph membership["インターフェースのゾーン所属"]
        inif["inside interface"] --> inz["zone INSIDE"]
        outif["outside interface"] --> outz["zone OUTSIDE"]
    end

    subgraph zp_policy["INSIDE から OUTSIDE への zone-pair"]
        zp["zone-pair security"]
        pmap["policy-map type inspect"]
        cmap["class-map type inspect"]
        act["action: inspect, pass, or drop"]
        state["inspect creates return-flow state"]
    end

    inz --> zp
    outz --> zp
    zp --> pmap
    pmap --> cmap
    cmap --> act
    act --> state

ゾーン間の通信は、source zone と destination zone の zone-pair で評価される。該当する zone-pair や policy がなければ、ゾーン間通信は許可されない。


action 意味
inspect 通信を許可し、戻り通信用の状態を作る
pass 通信を許可するが、戻り通信の状態は作らない
drop 通信を破棄する

内側から外側へのTCP/UDP/ICMPを許可し、戻り通信も通したい場合は inspect を使う。


ルータ自身宛、またはルータ自身が生成する通信は、通常のinside/outside間通信とは別に考える。ZBFでは self zone を使って、ルータ自身への SSH、ICMP、routing protocol などを制御できる。

学習初期のZBFでは、まず inside から outside への通信を扱い、ルータ自身への管理通信は別途整理する方が分かりやすい。


場面 向いている機能
単純に特定IPやportを止める ACL
PBRやroute-mapの条件に使う ACL
内側から開始した通信の戻りだけ通す reflexive ACL または ZBF
複数ゾーンの通信ポリシーを管理する ZBF

ZBF はACLより構造が多い。その代わり、ゾーン単位で通信の方向と状態を管理できる。