はじめに
IOSルータにてZone-Based Policy Firewall (ZFW) 機能を設定後に、特定の通信、若しくはZoneの間のすべての通信ができなくなってしまう事象が発生する可能性があります。
本ドキュメントはZone-Based Policy Firewall (ZFW) 機能を利用した場合のトラブルシューティング方法について紹介いたします。
Zone-Based Policy Firewall (ZFW) の問題の特定方法
ZFW機能の詳細については、以下の情報をご参照ください。
ゾーンベース ポリシー ファイアウォールの設計と適用ガイド
http://www.cisco.com/c/ja_jp/support/docs/security/ios-firewall/98628-zone-design-guide.html
ZFW機能の問題かを切り分けるため、以下のようにまずZFW機能を無効にして改善するかを確認します。
ZFWを無効化にする手順:
本手順は以下のバージョンで、GigabitEthernet0/4はLANというZoneで、GigabitEthernet0/5はDMZというZoneにした場合の設定例を紹介します。
-----------------------
15.5(3)M
CCPExpress version 3.1.2
-----------------------
CCPの場合:
以下のように右側の「ゾーンLAN」のGigabitEthernet0/4と「ゾーンDMZ」のGigabitEthernet0/5を左にドラックして、「適用する」をクリックすることで、Zone設定が無効になります。
CLIの場合:
interface GigabitEthernet0/4 no zone-member security LAN ! interface GigabitEthernet0/5 no zone-member security DMZ |
※本作業は Interfaceに適用するZone設定を一時的に解除するのみとなります。 該当InterfaceでZFWの制御が無効になりますが、再有効化は 再度InterfaceにZone設定を有効化するのみで問題ありません。
ZWFのZone設定をもとに戻す手順:
CCPの場合:
既存の状態に戻すには、同じ画面にて「使用可能なインターフェイス」枠内からゾーンLANとゾーンDMZ枠にドラックして、「適用する」に選択すれば既存のZone設定が追加されます。
CLIの場合:
interface GigabitEthernet0/4 zone-member security LAN ! interface GigabitEthernet0/5 zone-member security DMZ |
トラブルシューティングについて
上記の切り分けで、もしZone-Based Policy Firewall(ZFW)機能を無効にすることで事象が改善した場合、ZFWのポリシーの問題だと特定できます。
つづきましては、ZFW側にて更に切り分ける必要がありますので、以下の方法で原因特定が期待できます。
Zoneメンバーだけ追加し特別なポリシーがない場合:
Zoneメンバーだけ追加して特別なポリシーを設定していない場合は、以下の表をご参考ください。
ソースインターフェースZone
|
宛先インターフェースZone
|
Zone-Pair設定の有無
|
Policy-map設定の有無
|
結果
|
なし
|
なし
|
-
|
-
|
許可
|
あり(ZoneA)
|
あり(ZoneA)
|
-
|
-
|
許可
|
あり
|
なし
|
-
|
-
|
拒否
|
なし
|
あり
|
-
|
-
|
拒否
|
あり(ZoneA)
|
あり(ZoneB)
|
なし
|
-
|
拒否
|
あり(ZoneA)
|
あり(ZoneB)
|
あり
|
なし
|
拒否
|
あり(ZoneA)
|
あり(ZoneB)
|
あり
|
あり
|
ポリシーに依存
|
一覧のようにZoneの間の通信の場合、許可するポリシーがないとすべての通信をブロックする動作をします。以下の方法にてご確認とご対応お願いいたします。
CCPの場合:
「セキュリティ」⇒「ポリシー」の順にてポリシーの有無を確認して、なければ、「追加」ボタンから以下のように許可する設定を追加必要です。
(LAN Zoneの192.168.0.0とDMZ Zoneの20.20.0.0の間の通信を許可する場合の例)
尚、同じ手順にてDMZゾーンからLANゾーンへの許可する設定も行ってください。
CLIの場合:
以下のshowコマンドでzone-pair設定や、ポリシーマップ設定があるかを確認します。
show run policy-map show zone-pair security |
何も設定していない場合、以下のように許可する設定を入れます。
ip access-list extended permit-lan-dmz-acl----------------------->許可するACLを設定 permit ip 192.168.0.0 0.0.255.255 20.20.0.0 0.0.255.255
class-map type inspect permit-lan-dmz-c ----------------------->上記のACLをclass-mapに適用 match access-group name permit-lan-dmz-acl
policy-map type inspect permit-lan-dmz-p----------------------->上記のclass-mapをpolicy-mapに適用 class type inspect permit-lan-dmz-c
zone-pair security lan-dmz source LAN destination DMZ-------->policy-mapをサービスポリシーに適用 service-policy type inspect permit-lan-dmz-p |
尚、同じ手順にてDMZゾーンからLANゾーンへのACL許可などが設定されたclass-mapとpolicy-mapをzone-pair security dmz-lan source DMZ destination LANのサービスポリシーに適用してください。
Zoneメンバーを追加して、ポリシー設定も複数行った場合:
Zoneメンバーを追加して、ポリシー設定も複数行った場合、Syslogレベルをinformationalに変更することで、再現後のshow logの出力結果からZFWにより通信がブロックしたかどうかを確認できます。
出力例:
*Jun 23 01:45:38.316: %FW-6-DROP_PKT: Dropping icmp session 192.168.1.1:0 20.20.20.1:0 on zone-pair LAN-DMZ class deny-host-lan-dmz due to DROP action found in policy-map with ip ident 16708 |
尚、以下のログを再現する前と再現後2回取得して差分確認を行うことで、具体的にどろポリシーが影響するのかという確認も可能です。
show policy-map type inspect zone-pair sessions |
出力例:
<再現する前>
Router#show policy-map type inspect zone-pair sessions
policy exists on zp LAN-DMZ Zone-pair: LAN-DMZ
Service-policy inspect : LAN-DMZ-POLICY
Class-map: deny-host-lan-dmz (match-all) Match: access-group name deny-host-lan-dmz_acl Drop 5 packets, 200 bytes
Class-map: permit-lan-dmz (match-all) Match: access-group name permit-lan-dmz_acl
Inspect
Class-map: INTERNAL_DOMAIN_FILTER (match-any) Match: protocol msnmsgr 0 packets, 0 bytes 30 second rate 0 bps Match: protocol ymsgr 0 packets, 0 bytes 30 second rate 0 bps |
<再現後>
Router#show policy-map type inspect zone-pair sessions
policy exists on zp LAN-DMZ Zone-pair: LAN-DMZ
Service-policy inspect : LAN-DMZ-POLICY
Class-map: deny-host-lan-dmz (match-all) Match: access-group name deny-host-lan-dmz_acl Drop 7 packets, 280 bytes---------------->カウンターが上がっているので、deny-host-lan-dmzのポリシーによりブロックされていることを確認できます。
Class-map: permit-lan-dmz (match-all) Match: access-group name permit-lan-dmz_acl
Inspect
Class-map: INTERNAL_DOMAIN_FILTER (match-any) Match: protocol msnmsgr 0 packets, 0 bytes 30 second rate 0 bps Match: protocol ymsgr 0 packets, 0 bytes 30 second rate 0 bps |
上記にて具体的なポリシーを特定した上で、該当ポリシーを許可するなどで事象の改善が期待できます。
ベストプラクティス
ZFWは ステートをチェックしてのセッション管理を行うため、ACLでの処理に比べ、ルータの処理負荷が高くなります。 そのため、利用時は パフォーマンスに余力のあるモデル を利用するか、必要なインターフェイスにのみシンプルに設定することをお勧めします。
ステートフルインスペクションを多用する構成を検討時は、専用のFirewall製品 (Cisco ASA)の利用をご検討ください。
関連情報
C841Mドキュメント集:
http://www.cisco.com/c/m/ja_jp/solutions/cisco-start/product_841mj.html?stickynav=1
IOS-FW:Zone-Based Policy Firewall (ZFW) 設定によるメール送受信問題について
https://supportforums.cisco.com/ja/document/13214521