キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ASA URL フィルタリング

 

 

概要

 

ASA の機能の 1 つに URL フィルタリングがあります。この機能を使用して、特定の URL/Web  サイトへのアクセスをブロックまたは許可できます。この記事は、この機能の使用方法を説明することを目的としています。内容をご理解いただければ、URL  フィルタリングを最大限に活用し、必要に応じて使用することができるようになります。

 

こ の記事では、URL のドメインおよび URI 内の単語をブロックまたは許可します。もちろん、ASA  はその他のことにも対応します。詳細については、ASA の設定ガイドを参照してください。以降では、cisco.com  ドメインを許可またはブロックします。つまり、cisco.com のページを閲覧するユーザは、URL  フィルタリングの対象になります。たとえば、www.cisco.com/index.html、cisco.com/exampledir /page.html などのページです。また、URI の「/test/」を許可またはブロックします。つまり、「/test/」を含むページ パスは  URL  フィルタリングの対象になります。たとえば、www.examplesite.com/exampledir/test/page.html、 www.anyurl.com/test/examplepage.jsp、www.anything.com/onedir/seconddir /test などです。

 

URL  フィルタリングを適用するメカニズムは Modular Policy Framework(MPF)です。タイプ http の class-map  で一致する Regular Expression(regex; 正規表現)を作成します。これらの class-map を policy-map  で使用してドロップ アクションを定義します。次に、インターフェイスに適用される別の policy-map の http インスペクションを  policy-map に適用します。このようにして、http インスペクション アクションをインターフェイスに到達するトラフィックに適用します。

 

注:企 業の URL フィルタリング向けにはこのような機能を強調する必要がありますが、お客様には WebSense または N2H2 を ASA  と統合して使用していただくようにする必要があります。こうした Web フィルタリング  エンジンでは、サイトのクラスに基づいた非常に強力なフィルタリングが可能です。直接 ASA で regex を使用して URL  フィルタリングを行うのは、広範な分類が可能で regex パターンが限られている場合などに限られ、あまり使用しません。ASA は、regex  の一致や HTTP トラフィックが多い企業での使用には対応できません。

 

特定のURLをブロックする

特定の Web サイトをブロックするとします。たとえば、cisco.com のすべてのページおよび 「/test/」を含む URI  をブロックします。regex を作成し、class-map で一致させます。いずれかの regex が一致すると、実際には class-map  が適合します。次に、policy-map block-url-policy で、class-map(cisco.com または「/test/」を含む URI)に適合するものをリセットします。それ以外は許可されます(cisco.com ではなく、「/test/」を含む URI ではないもの)。policy-map block-url-policy を別の policy-map(global_policy)の http インスペクションに使用し、service-policy に適用します。

 

 

 
regex blockex1 "/test/"
regex blockex2 "cisco\.com"

class-map type inspect http match-any block-url-class
match request uri regex blockex1
match request header host regex blockex2

policy-map type inspect http block-url-policy
parameters
class block-url-class
  drop-connection log
policy-map global_policy
class inspection_default
  inspect http block-url-policy

service-policy global_policy global

 

特定のホストの URL をすべて許可し、その他の特定の URL をブロックする

 

任意の Web サイトへのアクセスが必要な、いくつかのホスト(管理者、つまり IP アドレス 192.168.1.2)があり、その他のユーザは特定の Web サイトからブロックする必要があるとします(注意:この例のプロセスに従うには上記の例を理解しておく必要があります)。上記の例とほぼ同じ設定を使用しますが、今回は追加の access-list、class-map、および policy-map が必要です。この access-list(user-acl)は、無制限のアクセスが必要なユーザを除いて、すべてのユーザと一致します。新しい class-map(block-user-class)で一致し、この class-map は別の policy-map(block-user-url-policy)で使用されます。この policy-map は、許可された Web サイトの policy-map block-url-policy の http インスペクションを実行します(この部分は上記の例と同じ)。その結果、service-policy により block-user-url-policy がインターフェイスに適用されます。この policy-map が実際に行っていることは、無制限のユーザを除くすべてのユーザを照合し(class block-user-class)、ユーザが特定の Web サイトにアクセスするのをブロックすることです(inspect http block-url-policy)。その他のユーザ(access-list で不一致/拒否)はどのサイトにもアクセスできます。

 

 

 
regex blockex1 "/test/"
regex blockex2 "cisco\.com"

access-list user-acl extended deny tcp host 192.168.1.2 any eq www
access-list user-acl extended permit tcp any any eq www


class-map type inspect http match-any block-url-class
match request uri regex blockex1
match request header host regex blockex2
class-map block-user-class
match access-list user-acl

policy-map type inspect http block-url-policy
parameters
class block-url-class
  drop-connection
policy-map block-user-url-policy
class block-user-class
  inspect http block-url-policy

service-policy block-user-url-policy interface inside

 

cisco.com だけを許可する

 

cisco.com だけを許可するとします。regex を作成し、class-map で一致させます(match  ステートメント)。match ステートメントが一致すると、class-map が適合します。match ステートメントが一致しても、regex は  URL で一致しません。次に、policy-map allow-url-policy で、接続をリセットします。その他は許可されます(cisco.com)。つまり、閲覧するページが cisco.com ではない場合は、リセットされます。policy map を別の policy-map(global_policy)の http インスペクションに使用し、service-policy に適用します。

 

 

 

regex allowex2 "cisco\.com"

class-map type inspect http match-all allow-url-class
match not request header host regex allowex2

policy-map type inspect http allow-url-policy
parameters
class allow-url-class
  drop-connection log
policy-map global_policy
class inspection_default
  inspect http allow-url-policy

service-policy global_policy global

 

特定の URL を許可する

 

特定の Web サイトだけを許可するとします。たとえば、cisco.com のページだけと「/test/」を含む URI  だけを許可します。regex を作成し、class-map で一致させます。両方の match ステートメントが一致すると、class-map  が適合します。いずれの regex もユーザが閲覧する URL で一致しない場合に限り、両方の match  ステートメントが一致します。次に、policy-map allow-url-policy で、接続をリセットします。その他は許可されます(cisco.com または「/test/」を含む URI)。つまり、閲覧するページが  cisco.com でも「/test/」を含む URL でもない場合は、リセットされます。policy map を別の policy-map(global_policy)の http インスペクションに使用し、service-policy に適用します。

 

 

 

regex allowex1 "/test/"
regex allowex2 "cisco\.com"

class-map type inspect http match-all allow-url-class
match not request uri regex allowex1
match not request header host regex allowex2

policy-map type inspect http allow-url-policy
parameters
class allow-url-class
  drop-connection log
policy-map global_policy
class inspection_default
  inspect http allow-url-policy

service-policy global_policy global

 

特定のホストの URL をすべて許可し、その他の特定の URL だけを許可する

 

任意の Web サイトへのアクセスが必要な、いくつかのホスト(管理者、つまり IP アドレス 192.168.1.2)があり、その他のユーザは特定の Web サイトにだけアクセスできる必要があるとします(注意:この例のプロセスに従うには上記の例を理解しておく必要があります)。上記の例とほぼ同じ設定を使用しますが、今回は追加の access-list、class-map、および policy-map が必要です。この access-list(user-acl)は、無制限のアクセスが必要なユーザを除いて、すべてのユーザと一致します。新しい class-map(allow-user-class)で一致し、この class-map は別の policy-map(allow-user-url-policy)で使用されます。この policy-map は、許可された Web サイトの policy-map allow-url-policy の http インスペクションを実行します(この部分は上記の例と同じ)。その結果、service-policy により allow-user-url-policy がインターフェイスに適用されます。この policy-map が実際に行っていることは、無制限のユーザを除くすべてのユーザを照合し(class allow-user-class)、ユーザに特定の Web サイトへのアクセスだけを許可することです(inspect http allow-url-policy)。その他のユーザ(access-list で不一致/拒否)はどのサイトにもアクセスできます。

 

 

 
regex allowex1 "/test/"
regex allowex2 "cisco\.com"

access-list user-acl extended deny tcp host 192.168.1.2 any eq www
access-list user-acl extended permit tcp any any eq www

class-map type inspect http match-all allow-url-class
match not request uri regex allowex1
match not request header host regex allowex2
class-map allow-user-class
match access-list user-acl

policy-map type inspect http allow-url-policy
parameters
class allow-url-class
  drop-connection
policy-map allow-user-url-policy
class allow-user-class
  inspect http allow-url-policy

service-policy allow-user-url-policy interface inside

 

 

同じドメインの許可/拒否

 

要件は次のとおりです。

1. facebook.com を拒否します。

 

2. developers.facebook.com に自動的にリダイレクトされる developer.facebook.com を許可します。

 

3. yahoo.com、google.com のような他のすべてのドメインを許可します。

 

regex block-fb ".*facebook\.com"
regex allow-fb "developer[s]*\.facebook\.com"

!
class-map type regex match-any block-fb
   match regex block-fb
class-map type regex match-any allow-regex-class
   match regex allow-fb 
!
policy-map type inspect http http-inspect-pol
   parameters
match not request header host regex class allow-regex-class
match request header host regex class block-fb
    reset log

class-map http-class
   match port tcp eq www

policy-map http-traffic
   class http-class
    inspect http http-inspect-pol
!
service-policy http-traffic interface inside

 

または、http policy-map を global_policy のデフォルトのインスペクションに関連付けることもできます。

 

Bear in mind, every time you add remove or change regex, you need to
remove the service-policy applied to the interface and add it again.

http://www.cisco.com/en/US/docs/security/asa/asa82/configuration/guide/inspect_basic.html#wp1514315

 


If you need to change a match command for HTTP inspection after configuring the inspection, you must
remove the attached service policy by using the no service policy command and then reconfigure the
service policy. Changing the class map by removing a match command causes HTTP inspection to block
all HTTP traffic until you remove and reconfigure the attached service policy so that all the match
commands are reprocessed.

---------------------------------------------------------------------------------------------------------------------------

DOC-1268

バージョン履歴
改訂番号
2/2
最終更新:
‎08-30-2017 06:30 AM
更新者:
 
ラベル(1)
寄稿者: