designetwork

ネットワークを軸としたIT技術メモ

ASAでDMZを構築するときのセキュリティレベル設定

f:id:daichi703n:20170311162820j:plain

Cisco ASA5505で自宅ラボにDMZを構築している。単純なinside-outside設定の場合はセキュリティレベルをinside:100, outside:0とし、必要な外からの通信をFWとNATで許可すればよい。

しかし、DMZを含めるとセキュリティレベルだけでは制御しきれなくなる。一般的にDMZ:50としてセキュリティレベルを設定する。これにより、以下のようなアクセス制御になる。

o inside -> outside
o inside -> dmz
x dmz -> inside
o dmz -> outside
x outside -> inside
x outside -> dmz

ACLを適用すると上書きされる

上記のxの通信についても、要件に応じて通信可能とする必要がある。例えばインターネット公開サーバなど。outsideからの通信はACLとNATで実現できる。しかし、問題となるのはdmzからinsideへの通信。

基本的には、セキュリティレベル低->高(dmz->inside)の通信はACLで穴あけしていくことになるが、そのときにdmz->outsideへの通信も考慮が必要となる。セキュリティレベルでの動作を期待すると、以下のように、insideへの必要通信のみを設定しがちだ。

access-list dmz extended permit ip <dmz> <inside>
access-group dmz_in in interface dmz

しかし、このACLを適用してしまうと、dmzからoutside(インターネット)への通信ができなくなってしまう。つまり、ACLでセキュリティレベルの設定が上書きされてしまう。

そのため、以下のようにinsideの特定ホスト宛は許可、他は拒否、その上でany(outside)宛は許可とする必要がある。(ACLの書き方はOSバージョン等による)

access-list dmz extended permit <protocol> <dmz> <inside_host>
access-list dmz extended deny ip <dmz> <inside>
access-list dmz extended permit ip <dmz> any
access-group dmz_in in interface dmz

設計メモ

設計ポイント、エラーの対処などはこちらを参照

まとめ - ASAでDMZを構築するときのセキュリティレベル設定

自宅ラボASA5505でDMZを構築するときは、セキュリティレベルでの制御はしきれず、DMZからの通信はすべてACLで制御する必要がある。