2016-01-31 01:48 PM
こんにちは、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
よろしくお願いします。
解決済! 解決策の投稿を見る。
2016-02-03 05:08 PM
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 class-map type inspect http match-all URL-DenyList class-map http_traffic access-list match_http extended permit tcp any any eq www policy-map type inspect http http_inspection_policy policy-map inside_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フィルタリングサービスなども検討されるといいかもしれません。
上記が参考になれば :-)
2016-02-03 05:08 PM
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 class-map type inspect http match-all URL-DenyList class-map http_traffic access-list match_http extended permit tcp any any eq www policy-map type inspect http http_inspection_policy policy-map inside_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フィルタリングサービスなども検討されるといいかもしれません。
上記が参考になれば :-)
2016-02-15 02:54 PM
Akira Muranaka さん
athirano1です。ご回答ありがとうございます。
設定変更の適用には、極力、ASDMを使うようにしてみます。
(確かに、適用が問題なくできるようになった気がします。)
ログはASDMのLogViewerで確認していたのですが、
バッファサイズのアップと、表示対象への304001の追加により、だいぶ見通しが良くなりました。
どうも、ありがとうございます。
エキスパートの回答、ステップバイステップガイド、最新のトピックなどお気に入りのアイデアを見つけたら、あとで参照できるように保存しましょう。
コミュニティは初めてですか?これらのヒントを活用してスタートしましょう。 コミュニティの活用方法 新メンバーガイド
下記より関連するコンテンツにアクセスできます