Cisco ASAでドメイン名を用いたACLを作成する



このブログ一発目の記事は技術系で行こうと思う。
今回は通常のIPアドレスでACLを作成するのではなく、ドメイン名をベースにしてACLを作成していく。

Cisco ASAではDNSサーバと連携してドメイン名から名前解決をして動的にACLを作成することができる。
こいつを使えば対象ドメインが複数のIPアドレスを持ってたり、動的だったりするときかなり楽になる。

ちなみに今回検証するネットワーク構成図はこんな感じ。

※今回は初期設定は済んでるものとして進める。

1.名前解決するDNSサーバをASAに設定する。

cisco(config)# dns domain-lookup inside
cisco(config)# dns server-group DefaultDNS
cisco(config-dns-server-group)# name-server “DNSサーバのIP”
cisco(config-dns-server-group)# domain-name “自サイトのドメイン”

2.アクセスを制御したいドメインのオブジェクトを作成する。
今回は「www.xvideos.com」をアクセスできないようにする。

cisco(config)# object network deny_xvideos
cisco(config-network-object)# fqdn www.xvideos.com

3.オブジェクトからACLを作成していく。inside以下のすべてのホストから「www.xvideos.com」への通信をすべて拒否し、それ以外の通信はすべて許可する設定を入れる。
設定を入れた後、interfaceに適用する。

cisco(config)# access-list deny_url extended deny ip any object deny_xvideos
cisco(config)# access-list deny_url extended permit ip any any
cisco(config)# access-group deny_url in interface inside

4.DNSで名前解決しているかを確認してみる。流石は大手エロサイト。結構多い…

cisco(config)# show dnsName: www.xvideos.com
Address: 185.88.181.3 TTL 00:00:12
Address: 185.88.181.8 TTL 00:00:12
Address: 185.88.181.7 TTL 00:00:12
Address: 185.88.181.15 TTL 00:00:12
Address: 185.88.181.17 TTL 00:00:12
Address: 185.88.181.2 TTL 00:00:12
Address: 185.88.181.12 TTL 00:00:12
Address: 185.88.181.16 TTL 00:00:12
Address: 185.88.181.9 TTL 00:00:12
Address: 185.88.181.6 TTL 00:00:12
Address: 185.88.181.14 TTL 00:00:12
Address: 185.88.181.13 TTL 00:00:12
Address: 185.88.181.5 TTL 00:00:12
Address: 185.88.181.4 TTL 00:00:12
Address: 185.88.181.10 TTL 00:00:12
Address: 185.88.181.11 TTL 00:00:12
Address: 185.88.181.18 TTL 00:00:12

5.生成されたACLを確認する。hitcnt=…になってる奴の数字はACLに適用されたパケットの数になる。

cisco(config)# show access-list deny_url
access-list deny_url; 19 elements; name hash: 0xa98d4532
access-list deny_url line 1 extended deny ip any object deny_xvideos (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any fqdn www.xvideos.com (resolved) 0x075326b5
access-list deny_url line 1 extended deny ip any host 185.88.181.3 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.8 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.7 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.15 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.17 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.2 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.12 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.16 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.9 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.6 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.14 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.13 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.5 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.4 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.10 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.11 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 1 extended deny ip any host 185.88.181.18 (www.xvideos.com) (hitcnt=0) 0xe200ec14
access-list deny_url line 2 extended permit ip any any (hitcnt=391) 0x8c7dcd2a

これで設定は完了で、inside側のホストのwebサイトの閲覧はもちろんpingも通らなくなる。

C:\Users\win-pc>ping www.xvideos.com

www.xvideos.com [185.88.181.14]に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

185.88.181.14 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

※注意点※
Cisco ASAは実際のTTL値に1分を追加する。(これは ‘dns expire-entry-timer’というコマンドの値がデフォルトでは1分のため)
こうなるとASAの名前解決の1分前にLAN内のホストが名前解決で別のIPアドレスの応答を得た時、その新しく解決したIPアドレスはACLに適用されないということになる。

あと、LAN内のホストとASAのDNSサーバは同一のものを使用する必要がある。たとえば「www.xvideos.com」みたいな大きいサイトだと複数のIPでロードバランシングを行っているのでDNSサーバによって名前解決で帰ってくるIPアドレスが異なる事がある。そうなるとそのIPのアクセス制御はできないということになる。

Leave a Reply

Your email address will not be published. Required fields are marked *