キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
1329
閲覧回数
0
いいね!
2
返信

ASAのURLフィルタリング追加設定の反映タイミングについて

athirano1
Level 1
Level 1

こんにちは、ASA5500シリーズでのURLフィルタリングについて質問があります。
どなたかご教示いただければと思います。
よろしくお願いします。

ASA5505 + OS: 9.1.(6.4)で、URLフィルタリングを設定しています。(ASA単体の機能を使い、WebSenceなど外部サーバは使用していません)
許可ルールの追加設定をおこない、通信テストをおこなっても、追加設定が反映されていないように見えることがあります。
その場合は、ASAを再起動すると問題が解消します。

configの作成には、サポートコミュニティの以下の情報などを参考にしました。
「ASA URL フィルタリング」(https://supportforums.cisco.com/ja/document/64601)

質問
1.configを下記のように作成しています。設定に何か問題はあるでしょうか?
2.再起動すると変更が反映されるように見えますが、これは仕様なのでしょうか?
  仕様の場合、再起動なしに変更を反映させる方法はあるでしょうか?
3.どの正規表現、どのクラスマップでマッチしたか見るコマンドはあるでしょうか。
  現在は、syslog ID: 507003 「tcp flow terminated by inspection engine reason - reset unconditionally」」を見て
  確認していますが、もう少し直接的に確認したいです。


■URLフィルタリングの設定

! 許可URL指定(グループ1)
regex [正規表現11] ".*\.testnet11\.com"
regex [正規表現12] ".*\.testnet12\.com"

! 許可URL指定(グループ2)
regex [正規表現21] ".*\.testnet21\.com"
regex [正規表現22] ".*\.testnet22\.com"

! 許可URLのグループをクラスマップで指定
class-map type regex match-any URL-AllowList-1x
 match regex [正規表現11]
 match regex [正規表現12]
 
class-map type regex match-any URL-AllowList-2x
 match regex [正規表現21]
 match regex [正規表現22]

! 許可URLのいずれでもないものを、拒否リストグループとして
! クラスマップで定義
class-map type inspect http match-all URL-DenyList
 match not request header host regex class URL-AllowList-1x
 match not request header host regex class URL-AllowList-2x

! -------------------------------------------------------
! URLフィルタリングの対象は、任意のホストからのhttp通信  
class-map http_traffic
 match access-list match_http

access-list match_http extended permit tcp any any eq www

! -------------------------------------------------------
! Policy-mapを定義し、拒否リストグループに該当するものは
! アクション:resetとして指定
policy-map type inspect http http_inspection_policy
 parameters
  protocol-violation action log
 class URL-DenyList
  reset log

policy-map inside_policy
 class http_traffic
  inspect http http_inspection_policy

! -------------------------------------------------------
! インターフェースinsideへの適用  
service-policy inside_policy interface inside

よろしくお願いします。

1 件の受理された解決策

受理された解決策

Akira Muranaka
Level 8
Level 8

athirano1さん、こんにちわ

まず、適用の件ですが、できれば ASDMを利用してみては如何でしょうか。Modular Policy Framework(MPF)は 適用順序が難しかった記憶があります。 私も似たような件で、過去トラブルシュート対応をしたことがあります。

この点、ASDMは 適用順序などを自動調整してくれるので、MPF関連のチューニングは、ASDMの利用がお勧めです。

  

ASDMの以下メニューから可能です。

[Regexの設定]
Configuration > Firewall > Objects > Regular Expressions

   

ASDMですと色々と最適化されており、以下のRegexの適用前のマッチング試験もできます。

   

CLIでの適用調整を行いたい場合は、サービスポリシーのアタッチし直しで復旧すると思います。

ASA/pri/act(config)# no service-policy inside_policy interface inside
ASA/pri/act(config)# service-policy inside_policy interface inside

  

以下は実際の私の環境での実行時のログですが、Service-policyのアタッチしなおし時は、HTTPコネクションの切断は発生しません。

ASA/pri/act(config)# sh conn
17 in use, 133 most used
TCP outside xx.xx.0.2:80 inside 192.168.10.1:40680, idle 0:00:04, bytes 0, flags U
TCP outside xx.xx.0.2:23 inside 192.168.10.1:40678, idle 0:00:15, bytes 662, flags UIO
ASA/pri/act(config)#
ASA/pri/act(config)# no service-policy inside_policy interface inside
ASA/pri/act(config)# service-policy inside_policy interface inside
ASA/pri/act(config)#
ASA/pri/act(config)# sh conn
18 in use, 133 most used
TCP outside xx.xx.0.2:80 inside 192.168.10.1:40680, idle 0:00:15, bytes 0, flags U
TCP outside xx.xx.0.2:23 inside 192.168.10.1:40678, idle 0:00:26, bytes 662, flags UIO

  

  
次にログの確認は、RegexやClass-mapの細かな確認は困難だと思いますが、通信ログであれば 304001と 507003の併用で確認できると思います。 以下は私の設定と出力例です。

【設定例 (cisco.com のみを許可)】

regex cisco.com "cisco\.com"

class-map type regex match-any URL-AllowList-1x
 match regex cisco.com

class-map type inspect http match-all URL-DenyList
 match not request header host regex class URL-AllowList-1x

class-map http_traffic
 match access-list match_http

access-list match_http extended permit tcp any any eq www

policy-map type inspect http http_inspection_policy
 parameters
  protocol-violation action log
 class URL-DenyList
  reset log

policy-map inside_policy
 class http_traffic
  inspect http http_inspection_policy

service-policy inside_policy interface inside

   

http://www.cisco.com/ アクセス時 - Permitログ

Feb 03 2016 16:08:41: %ASA-5-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/etc/designs/cdc/dmr/common/fonts/ciscosans/CiscoSansTTLight.woff

http://www.yahoo.co.jp/ アクセス時 - Denyログ

Feb 03 2016 16:16:01: %ASA-5-304001: 192.168.10.1 Accessed URL 183.79.196.239:http://www.yahoo.co.jp/
Feb 03 2016 16:16:01: %ASA-4-507003: tcp flow from inside:192.168.10.1/40492 to outside:183.79.196.239/80 terminated by inspection engine, reason - reset unconditionally.

   
以下は、Errorレベルで シスログID 304001と 507003を出力する + show logのバッファサイズアップと Errorレベル以上に出力変更の設定例です。 結果的に、show logでは、このURLアクセスログと、Error以上のログをshow logで確認できるようになり、見逃しも少なくなると思います。

【ロギング設定例】

ASA/pri/act(config)# sh run logging
logging enable
logging timestamp
logging buffer-size 100000
logging buffered errors
logging message 304001 level errors
logging message 507003 level errors

【出力例】

ASA/pri/act(config)# sh log
--- 略 ---
Feb 03 2016 16:19:16: %ASA-3-304001: 192.168.10.1 Accessed URL 54.240.248.0:http://www.amazon.co.jp/
Feb 03 2016 16:19:16: %ASA-3-507003: tcp flow from inside:192.168.10.1/40567 to outside:54.240.248.0/80 terminated by inspection engine, reason - reset unconditionally.
Feb 03 2016 16:19:16: %ASA-3-304001: 192.168.10.1 Accessed URL 54.240.248.0:http://www.amazon.co.jp/
Feb 03 2016 16:19:16: %ASA-3-507003: tcp flow from inside:192.168.10.1/40568 to outside:54.240.248.0/80 terminated by inspection engine, reason - reset unconditionally.
Feb 03 2016 16:19:16: %ASA-3-304001: 192.168.10.1 Accessed URL 54.240.248.0:http://www.amazon.co.jp/
Feb 03 2016 16:19:16: %ASA-3-507003: tcp flow from inside:192.168.10.1/40569 to outside:54.240.248.0/80 terminated by inspection engine, reason - reset unconditionally.
Feb 03 2016 16:19:18: %ASA-3-304001: 192.168.10.1 Accessed URL 124.83.183.243:http://www.yahoo.co.jp/
Feb 03 2016 16:19:18: %ASA-3-507003: tcp flow from inside:192.168.10.1/40572 to outside:124.83.183.243/80 terminated by inspection engine, reason - reset unconditionally.
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/c/dam/global/en_us/framework/menu-content.html
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/etc/designs/cdc/fw/i/mm-box-shadow.png
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/etc/designs/cdc/fw/i/mm-corners.png
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/web/fw/i/mm-spinner.gif
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/
Feb 03 2016 16:19:21: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/etc/de

   

なお、inspect httpでのフィルタリングは、負荷の高い機能で、パフォーマンス影響が大きかったと記憶してます。及び、細かな制御やログ確認も難しいです。

その為、より細かな制御やログと、パフォーマンスが必要な場合は、FirepowerのURLフィルタリングサービスなども検討されるといいかもしれません。

上記が参考になれば :-)

元の投稿で解決策を見る

2件の返信2

Akira Muranaka
Level 8
Level 8

athirano1さん、こんにちわ

まず、適用の件ですが、できれば ASDMを利用してみては如何でしょうか。Modular Policy Framework(MPF)は 適用順序が難しかった記憶があります。 私も似たような件で、過去トラブルシュート対応をしたことがあります。

この点、ASDMは 適用順序などを自動調整してくれるので、MPF関連のチューニングは、ASDMの利用がお勧めです。

  

ASDMの以下メニューから可能です。

[Regexの設定]
Configuration > Firewall > Objects > Regular Expressions

   

ASDMですと色々と最適化されており、以下のRegexの適用前のマッチング試験もできます。

   

CLIでの適用調整を行いたい場合は、サービスポリシーのアタッチし直しで復旧すると思います。

ASA/pri/act(config)# no service-policy inside_policy interface inside
ASA/pri/act(config)# service-policy inside_policy interface inside

  

以下は実際の私の環境での実行時のログですが、Service-policyのアタッチしなおし時は、HTTPコネクションの切断は発生しません。

ASA/pri/act(config)# sh conn
17 in use, 133 most used
TCP outside xx.xx.0.2:80 inside 192.168.10.1:40680, idle 0:00:04, bytes 0, flags U
TCP outside xx.xx.0.2:23 inside 192.168.10.1:40678, idle 0:00:15, bytes 662, flags UIO
ASA/pri/act(config)#
ASA/pri/act(config)# no service-policy inside_policy interface inside
ASA/pri/act(config)# service-policy inside_policy interface inside
ASA/pri/act(config)#
ASA/pri/act(config)# sh conn
18 in use, 133 most used
TCP outside xx.xx.0.2:80 inside 192.168.10.1:40680, idle 0:00:15, bytes 0, flags U
TCP outside xx.xx.0.2:23 inside 192.168.10.1:40678, idle 0:00:26, bytes 662, flags UIO

  

  
次にログの確認は、RegexやClass-mapの細かな確認は困難だと思いますが、通信ログであれば 304001と 507003の併用で確認できると思います。 以下は私の設定と出力例です。

【設定例 (cisco.com のみを許可)】

regex cisco.com "cisco\.com"

class-map type regex match-any URL-AllowList-1x
 match regex cisco.com

class-map type inspect http match-all URL-DenyList
 match not request header host regex class URL-AllowList-1x

class-map http_traffic
 match access-list match_http

access-list match_http extended permit tcp any any eq www

policy-map type inspect http http_inspection_policy
 parameters
  protocol-violation action log
 class URL-DenyList
  reset log

policy-map inside_policy
 class http_traffic
  inspect http http_inspection_policy

service-policy inside_policy interface inside

   

http://www.cisco.com/ アクセス時 - Permitログ

Feb 03 2016 16:08:41: %ASA-5-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/etc/designs/cdc/dmr/common/fonts/ciscosans/CiscoSansTTLight.woff

http://www.yahoo.co.jp/ アクセス時 - Denyログ

Feb 03 2016 16:16:01: %ASA-5-304001: 192.168.10.1 Accessed URL 183.79.196.239:http://www.yahoo.co.jp/
Feb 03 2016 16:16:01: %ASA-4-507003: tcp flow from inside:192.168.10.1/40492 to outside:183.79.196.239/80 terminated by inspection engine, reason - reset unconditionally.

   
以下は、Errorレベルで シスログID 304001と 507003を出力する + show logのバッファサイズアップと Errorレベル以上に出力変更の設定例です。 結果的に、show logでは、このURLアクセスログと、Error以上のログをshow logで確認できるようになり、見逃しも少なくなると思います。

【ロギング設定例】

ASA/pri/act(config)# sh run logging
logging enable
logging timestamp
logging buffer-size 100000
logging buffered errors
logging message 304001 level errors
logging message 507003 level errors

【出力例】

ASA/pri/act(config)# sh log
--- 略 ---
Feb 03 2016 16:19:16: %ASA-3-304001: 192.168.10.1 Accessed URL 54.240.248.0:http://www.amazon.co.jp/
Feb 03 2016 16:19:16: %ASA-3-507003: tcp flow from inside:192.168.10.1/40567 to outside:54.240.248.0/80 terminated by inspection engine, reason - reset unconditionally.
Feb 03 2016 16:19:16: %ASA-3-304001: 192.168.10.1 Accessed URL 54.240.248.0:http://www.amazon.co.jp/
Feb 03 2016 16:19:16: %ASA-3-507003: tcp flow from inside:192.168.10.1/40568 to outside:54.240.248.0/80 terminated by inspection engine, reason - reset unconditionally.
Feb 03 2016 16:19:16: %ASA-3-304001: 192.168.10.1 Accessed URL 54.240.248.0:http://www.amazon.co.jp/
Feb 03 2016 16:19:16: %ASA-3-507003: tcp flow from inside:192.168.10.1/40569 to outside:54.240.248.0/80 terminated by inspection engine, reason - reset unconditionally.
Feb 03 2016 16:19:18: %ASA-3-304001: 192.168.10.1 Accessed URL 124.83.183.243:http://www.yahoo.co.jp/
Feb 03 2016 16:19:18: %ASA-3-507003: tcp flow from inside:192.168.10.1/40572 to outside:124.83.183.243/80 terminated by inspection engine, reason - reset unconditionally.
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/c/dam/global/en_us/framework/menu-content.html
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/etc/designs/cdc/fw/i/mm-box-shadow.png
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/etc/designs/cdc/fw/i/mm-corners.png
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/web/fw/i/mm-spinner.gif
Feb 03 2016 16:19:20: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/
Feb 03 2016 16:19:21: %ASA-3-304001: 192.168.10.1 Accessed URL 173.37.145.84:http://www.cisco.com/etc/de

   

なお、inspect httpでのフィルタリングは、負荷の高い機能で、パフォーマンス影響が大きかったと記憶してます。及び、細かな制御やログ確認も難しいです。

その為、より細かな制御やログと、パフォーマンスが必要な場合は、FirepowerのURLフィルタリングサービスなども検討されるといいかもしれません。

上記が参考になれば :-)

Akira Muranaka さん

athirano1です。ご回答ありがとうございます。

設定変更の適用には、極力、ASDMを使うようにしてみます。
(確かに、適用が問題なくできるようになった気がします。)

ログはASDMのLogViewerで確認していたのですが、
バッファサイズのアップと、表示対象への304001の追加により、だいぶ見通しが良くなりました。

どうも、ありがとうございます。