自宅ラボのASA5505でDMZを構築していたら、DMZからinsideへの通信ができない事象が発生したので対応メモ。
前提構成
ASA5505はセキュリティライセンスがないとVLAN trunkができないためCatalystにaccessで各々接続して束ねている。
- DMZからinsideへの通信ができない
- Cisco ASA5505のVLAN構成
- outsideインタフェースにno forwardを設定する
- まとめ - 自宅ASA(BASE License)でDMZからinsideに通信できない
DMZからinsideへの通信ができない
適切なACLをインタフェースに適用して疎通確認をしたが、DMZからinsideへの通信ができない。
インタフェースの設定・セキュリティレベル等はこちらの通り。insideのVLAN名はmanagement。
ASA5505# sh run int interface Vlan1 nameif management security-level 100 ip address 192.168.1.x 255.255.255.0 ! interface Vlan50 no forward interface Vlan1 nameif dmz security-level 50 ip address 192.168.50.xx 255.255.255.0 ! interface Vlan99 description internet nameif outside security-level 0 pppoe client vpdn group nifty ip address pppoe setroute
no forward interface Vlan1
についてはこちら
NATとACLの設定はこちら。サーバ数が少なく、随時試験中のためACLは広めに空けている。NATのルールは見直しの余地あり。
ASA5505# sh run nat nat (outside,management) source static any any destination static interface Web-01 service OpenWeb Web nat (management,outside) source dynamic Internet-PAT interface nat (dmz,management) source static any any unidirectional //Does not work because of no forward nat (dmz,outside) source dynamic Internet-PAT interface ASA5505# sh run access-list access-list Web extended permit tcp any any eq www access-list dmz extended permit ip any any ASA5505# sh run access-group access-group Web in interface outside access-group dmz in interface dmz
ASA内部のパケットトレーサーでキャプチャすると以下の通り。no-forward-ruleによってパケットがドロップされている。
ASA5505# packet-tracer input dmz icmp 192.168.50.x 0 0 192.168.1.x Phase: 1 Type: ROUTE-LOOKUP Subtype: Resolve Egress Interface Result: ALLOW Config: Additional Information: in 192.168.1.0 255.255.255.0 management Phase: 2 Type: ACCESS-LIST Subtype: no-forward-rule Result: DROP Config: Additional Information: Result: input-interface: dmz input-status: up input-line-status: up output-interface: management output-status: up output-line-status: up Action: drop Drop-reason: (acl-drop) Flow is denied by configured rule
そんなACLは設定していないが、パケットトレーサーの出力の通り、インタフェース設定のno forwardによって拒否されている。
interface Vlan50 no forward interface Vlan1
Cisco ASA5505のVLAN構成
設定ガイドの中では以下のようなVLAN構成が記載されている。
図中のホームVLANにno forward interface Vlanビジネスが設定されていることになる。
これを見直して、インターネット接続のoutsideからmanagement(inside)へをno forwardとするのが妥当ではないかと考える。
outsideインタフェースにno forwardを設定する
DMZからinsideへの通信はR-Proxyなど各種通信で必要となる。そのため、DMZのno forwardを解除し、その代わりにoutsideにno forwardを設定する。
単純にno forwardの設定を追加しようとするとエラーになる。
ASA5505(config-if)# interface Vlan99 ASA5505(config-if)# no forward interface vlan 1 ERROR: Interface Vlan1 is already used in another no forward command ASA5505(config-if)# no forward interface vlan 50 ERROR: Interface Vlan50 is already used in another no forward command
試しに使用していないVLAN宛のno forward設定をしたら、正常に設定できた。実際の通信も問題なく、各インタフェース間ですべてルーティングできる。ただし、dmzからinsideへの通信にはACLが必要。ACL適用時にはinternet宛もpermitが必要。
outsideからinside(Vlan 1)への通信を捨てるつもりだったが、移行のしやすさを考慮して継続通信できるに越したことはない。
ASA5505(config-if)# no forward interface Vlan 10 ASA5505(config-if)# exit ASA5505(config)# interface Vlan50 ASA5505(config-if)# forward interface Vlan 1
最終的なインタフェースの設定は以下の通り。
ASA5505# sh run int vlan 1 ! interface Vlan1 nameif management security-level 100 ip address 192.168.1.5 255.255.255.0 ASA5505# sh run int vlan 50 ! interface Vlan50 nameif dmz security-level 50 ip address 192.168.50.1 255.255.255.0 ASA5505# sh run int vlan 99 ! interface Vlan99 description internet no forward interface Vlan10 nameif outside security-level 0 pppoe client vpdn group nifty ip address pppoe setroute
まとめ - 自宅ASA(BASE License)でDMZからinsideに通信できない
自宅ラボで使用しているASA5505で、DMZからinsideへの通信ができない事象が発生した。問題はASA5505 基本ライセンスでは設定が必要となるno forward interfaceの影響だった。最終的に、no forward interfaceをoutsideに設定し、かつ、指定VLANを未使用のものにすることで、(ACLポリシーで制御した上で)全インタフェース間で通信が可能となった。