キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
10498
閲覧回数
15
いいね!
0
コメント
Kenichiro Kato
Cisco Employee
Cisco Employee

[toc:faq]

はじめに

AnyConnect Client等のRemote AccessにおけるVPN Filterの設定は、VPN Clientから接続可能なIP/Portを制限するために使われます。

本記事では一般的なInbound方向(VPN Client->サイト内)のVPN Filter設定方法に加えて、Outbound方向(サイト内->VPN Client)へのVPN Filterの適用で注意すべき点について説明します。

 

前提条件

  • ASA 9.1(6)及びAnyConnect3.1にて動作確認をしております。
  • VPN Filterを使っていないAnyConnectの設定については本記事では扱っておりません。AnyConnectの基本的な設定が入っている前提で、説明します。
  • 文中にて、Inbound方向を「VPN Client->VPN接続先のServer」Outbound方向を逆の「VPN接続先のServer->VPN Client」とします。

 

設定方法

一般的にはVPN Filterは、VPN Clientで接続した先のサイトにある、サーバ等へのアクセス制御(Inbound方向)のために使われます。仮に以下のような設定をしたいとします。

その場合、VPN Clientからサイト内のServerへのRDP(TCP3389)にのみアクセスを設定する場合のVPN Filterはgroup-policy attributeもしくは、username attribute内に以下のように設定します。

Access-list
access-list vpn-acl extended permit tcp host 192.168.1.100 host 172.16.1.100 eq 3389  

Group policyのattributeでvpn-filterを設定
group-policy test-anyconnect-gp attributes
vpn-filter value vpn-acl

もしくはusernameのattributeとしてvpn-filterを設定
username xxx attribute
 vpn-filter value vpn-acl

 

この場合は、ACLは直感的であり、特に問題はありませんが、逆に、以下のように接続先サイトのServerが発信元でVPN ClientのRDP(TCP3389)の通信(Outbound方向)を制御したい場合は注意が必要です。

この場合、ACLは、以下のようなClientが発信元となるような設定を行う必要があります。

access-list vpn-acl extended permit tcp host 192.168.1.100 eq 3389 host 172.16.1.100

このような設定が必要となる理由を以降、説明します。

 

VPN Filterの挙動について

VPN FilterはInbound(VPN Client->サイト)のACLを書くことで設定されます。その際、Inboundだけでなく、自動的にOutbound(サイト内->VPN Client)の方向への許可をする挙動となります。逆に言うと、通常のAccess-listの設定のようにOutbound方向のACLを直感的に書いても設定することができません。

また、大前提として、VPN Filterは設定なしの状態であれば、Inbound/Outboundの制限はありません。

 

Inbound方向の通信制御をする場合

まずは、簡単なInbound方向のVPN Filterの設定について説明します。

Inbound方向に対して、接続先Serverに対するRDP(TCP3389)を許可したい場合、直感的にVPN FilterのACLを設定すれば、自動的に戻り方向の通信が許可されることになります。この場合は特に難しいことを考える必要はありません。

参考までに、以下の通り、show asp table filterコマンドにてASAの内部的にはどのように見えるかを確認することができます。

Global Filter Table:
in  id=0x75c7d1b0, priority=13, domain=filter-aaa, deny=false
        hits=0, user_data=0x70febdc0, filter_id=0x6(vpn-acl), protocol=6
        src ip=192.168.1.100, mask=255.255.255.255, port=0
        dst ip=172.16.1.100, mask=255.255.255.255, port=3389<<直観通りの設定が反映
in  id=0x74d5d1f0, priority=12, domain=filter-aaa, deny=true
        hits=50, user_data=0x70fec540, filter_id=0x0(-implicit deny-)<<暗黙のdeny, protocol=0
        src ip=0.0.0.0, mask=0.0.0.0, port=0
        dst ip=0.0.0.0, mask=0.0.0.0, port=0
in  id=0x74d5d6c0, priority=12, domain=filter-aaa, deny=true
        hits=0, user_data=0x70fec440, filter_id=0x0(-implicit deny-), protocol=0
        src ip=::/0, port=0
        dst ip=::/0, port=0
out id=0x75c7d108, priority=13, domain=filter-aaa, deny=false
        hits=0, user_data=0x70feb340, filter_id=0x6(vpn-acl), protocol=6
        src ip=172.16.1.100, mask=255.255.255.255, port=3389
        dst ip=192.168.1.100, mask=255.255.255.255, port=0<<意識しなくてもいいがOutboundも自動的に許可
out id=0x74d5d458, priority=12, domain=filter-aaa, deny=true
        hits=0, user_data=0x70fec4c0, filter_id=0x0(-implicit deny-)<<暗黙のdeny, protocol=0
        src ip=0.0.0.0, mask=0.0.0.0, port=0
        dst ip=0.0.0.0, mask=0.0.0.0, port=0
out id=0x74d5d958, priority=12, domain=filter-aaa, deny=true
        hits=0, user_data=0x70fec3c0, filter_id=0x0(-implicit deny-), protocol=0
        src ip=::/0, port=0
        dst ip=::/0, port=0

上記ASP Tableを見ると、Inboundと同時にOutbound側が設定されていることが確認出来ると思います。

同時に上記出力から、VPN Filterを一旦設定すると、Inbound/Outbound共に暗黙のDenyが作られることもご確認いただけますが、この性質であるため、一旦Inbound方向の通信を制御するFilterを設定すると、同時にOutbound側のDenyも設定されることになるため、Outbound側の通信制御のためのACLを明示的に記述する必要が出てきますので、その点はご注意ください。

 

Outbound方向の通信制御をする場合

次に、Outbound方向の場合ですが、直感的なOutbound方向のACLを書くことがで出来ません。そして、先ほども説明したように、VPN Filterは、Inbound方向のACLを設定することで、Outbound方向の通信が自動的に許可される挙動であるため、制御したいOutbound方向の通信を、Inbound方向からの視点でACLを記述します。

つまり、ServerからClientに向けたOutboundのRDP(TCP3389)を許可したい場合、Inbound方向から見ると、ClientのSource Port 3389からServerのAny portに対してPermitするというACLを記述すればよいことになります。

この結果、Outbound方向の通信が許可されることになります。この場合のASP Tableは以下になります。

asa5520-10(config)# sh asp table filter

Global Filter Table:
in  id=0x7624e5f0, priority=13, domain=filter-aaa, deny=false
        hits=0, user_data=0x70febe40, filter_id=0x6(vpn-acl), protocol=6
        src ip=192.168.1.100, mask=255.255.255.255, port=3389
        dst ip=172.16.1.100, mask=255.255.255.255, port=0 << Inbound側が設定されると
in  id=0x74d5d1f0, priority=12, domain=filter-aaa, deny=true
        hits=50, user_data=0x70fec540, filter_id=0x0(-implicit deny-)<<暗黙のdeny, protocol=0
        src ip=0.0.0.0, mask=0.0.0.0, port=0
        dst ip=0.0.0.0, mask=0.0.0.0, port=0
in  id=0x74d5d6c0, priority=12, domain=filter-aaa, deny=true
        hits=0, user_data=0x70fec440, filter_id=0x0(-implicit deny-), protocol=0
        src ip=::/0, port=0
        dst ip=::/0, port=0
out id=0x76248698, priority=13, domain=filter-aaa, deny=false
        hits=0, user_data=0x70feb2c0, filter_id=0x6(vpn-acl), protocol=6
        src ip=172.16.1.100, mask=255.255.255.255, port=0
        dst ip=192.168.1.100, mask=255.255.255.255, port=3389 <<許可したいOutboundが設定される
out id=0x74d5d458, priority=12, domain=filter-aaa, deny=true
        hits=0, user_data=0x70fec4c0, filter_id=0x0(-implicit deny-)<<暗黙のdeny, protocol=0
        src ip=0.0.0.0, mask=0.0.0.0, port=0
        dst ip=0.0.0.0, mask=0.0.0.0, port=0
out id=0x74d5d958, priority=12, domain=filter-aaa, deny=true
        hits=0, user_data=0x70fec3c0, filter_id=0x0(-implicit deny-), protocol=0
        src ip=::/0, port=0
        dst ip=::/0, port=0

また、先ほども述べたように、一旦、VPN Filterを設定すると、自動的にInbound方向もOutbound方向も暗黙のDenyが設定されることになります。一旦、この方向で、Outbound方向のPermit設定を行った場合、自動的にその他のInbound方向の通信は暗黙のDenyによって落とされることになりますので、その場合は、Inbound方向の通信制御する方法で、明示的に許可することを忘れないでください。

 

 

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします