- トンネルの種類(SSL/DTLS/IPsec など)
- スプリットトンネル(社内だけトンネル/全部トンネル)
- DNS・ドメイン名
- 同時ログイン数やタイムアウト
- VPNフィルタACLでアクセス制御
といった「VPNユーザーのふるまい」をまとめて定義するのが group-policy です。
- 作り方:
group-policy <名前> internal - どこで使うか:
- トンネルグループ④の
default-group-policy - ユーザー属性の
vpn-group-policy - または RADIUS Class などで返却
- トンネルグループ④の
Contents
1. 最小構成のグループポリシー例
まずは“全部トンネル(フルVPN)”でいい、という一番シンプルな例です。
conf t
! 内部グループポリシーとして作成
group-policy ANYCONNECT_POLICY internal
group-policy ANYCONNECT_POLICY attributes
vpn-tunnel-protocol ssl-client
dns-server value 192.168.10.10
default-domain value example.local
vpn-idle-timeout 30 ! 30分操作なしで切断
vpn-simultaneous-logins 2 ! 同時ログイン2まで
split-tunnel-policy tunnelall ! すべての通信をトンネルへ(フルトンネル)
!
! 必要に応じて後述の vpn-filter や split-tunnel を追加
exit
write memory
vpn-tunnel-protocol ssl-client
AnyConnect(SSL-VPN)を使う指定。
(古い IPsec-VPN 等は使わない前提ならこれでOK)
split-tunnel-policy tunnelall
すべての通信をVPNトンネルに通す(フルVPN)。
クライアントのインターネットも会社経由になります。
dns-server / default-domain
社内向け名前解決をクライアントでも使えるようにする。
2. よく使うパターン別の設定
パターンA:フルトンネル(すべて社内経由)
「家から会社にVPNを張ったら、全部会社経由で出したい」
→ セキュリティを優先するパターン。
group-policy ANYCONNECT_POLICY internal
group-policy ANYCONNECT_POLICY attributes
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
dns-server value 192.168.10.10
default-domain value example.local
vpn-idle-timeout 30
vpn-session-timeout 480 ! セッション最大8時間など
vpn-simultaneous-logins 2
exit
- インターネットも社内FW/プロキシを通したい場合に◎
- 帯域はASA/社内側の回線にすべて乗るので、トラフィック量は増えます。
パターンB:スプリットトンネル(社内だけVPN)
「社内宛だけトンネル、それ以外(インターネット)は自宅から直接」
→ 在宅勤務でよく使われるパターン。
- まず「社内ネットワーク」を書いた ACL を作成します。
! 社内ネットワークだけを許可する standard ACL
! ※permit したネットワークが “トンネルに入る” と思ってください
access-list ACL_SPLIT standard permit 192.168.10.0 255.255.255.0
access-list ACL_SPLIT standard permit 192.168.20.0 255.255.255.0
- グループポリシー側でこの ACL を参照します。
group-policy ANYCONNECT_POLICY internal
group-policy ANYCONNECT_POLICY attributes
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelspecified
split-tunnel-network-list value ACL_SPLIT
dns-server value 192.168.10.10
default-domain value example.local
vpn-idle-timeout 30
vpn-simultaneous-logins 2
exit
split-tunnel-policy tunnelspecified
ACL で指定したネットワークだけトンネルへsplit-tunnel-network-list value ACL_SPLIT
どの ACL を使うかを指定
これにより:
192.168.10.0/24192.168.20.0/24→ VPNトンネルへ- それ以外(インターネット等) → 自宅のルータから直接
パターンC:除外型のスプリット(インターネットだけ直)
ASA のバージョンによっては
excludespecifiedも使用可能です。
「指定したネットワークにはトンネルを使わない」という考え方になります。
access-list ACL_SPLIT_EX standard permit 0.0.0.0 0.0.0.0
group-policy ANYCONNECT_POLICY internal
group-policy ANYCONNECT_POLICY attributes
split-tunnel-policy excludespecified
split-tunnel-network-list value ACL_SPLIT_EX
...
使い分けは環境によるので、まずは tunnelall か tunnelspecified を押さえておけば十分なことが多いです。
3. VPN フィルタ(vpn-filter)で“社内側の行き先”を制限
スプリットトンネルは「どのトラフィックがトンネルに入るか」でしたが、
vpn-filter は “トンネル越しにどこまで社内に入らせるか” を決める ACL です。
3-1. ACL 作成(extended ACL)
! 例:VPNプールが 192.168.50.0/24 で、
! 社内の 192.168.10.0/24 と 192.168.20.10 のみ許可する場合
access-list ACL_VPNFILTER extended permit ip 192.168.50.0 255.255.255.0 192.168.10.0 255.255.255.0
access-list ACL_VPNFILTER extended permit tcp 192.168.50.0 255.255.255.0 host 192.168.20.10 eq 3389
! 他はデフォルトdeny(ASAのACLは暗黙denyあり)
- source:VPNクライアント(VPNプール)
- destination:社内資産
3-2. グループポリシーに適用
group-policy ANYCONNECT_POLICY internal
group-policy ANYCONNECT_POLICY attributes
vpn-filter value ACL_VPNFILTER
...
exit
これを入れることで、「VPNで入ってきたユーザーが、社内のどこまで到達できるか」を厳密に制御できます。
委託業者用 GP では、この vpn-filter を厳しめにする、などの使い方が典型です。
4. その他 よく使う group-policy 属性
group-policy ANYCONNECT_POLICY internal
group-policy ANYCONNECT_POLICY attributes
vpn-tunnel-protocol ssl-client
dns-server value 192.168.10.10 8.8.8.8
default-domain value example.local
vpn-idle-timeout 30 ! アイドル30分で切断
vpn-session-timeout 480 ! 最大8時間で強制切断
vpn-simultaneous-logins 2 ! 1ユーザ最大2セッション
group-lock value ANYCONNECT ! このGPのユーザーは ANYCONNECT TG 経由のみ許可
banner value "Authorized use only. Unauthorized access prohibited."
!
! AnyConnect 固有の動作(必要であれば)
anyconnect ssl dtls enable ! DTLSも有効化(バージョンにより表現差あり)
!
exit
group-lock value ANYCONNECT
トンネルグループ名と紐付けることで、
「このグループポリシーのユーザーは、このトンネルグループ経由でしか入れない」 という制約をかけられます。
banner value ...
接続時に表示する注意文(コンプライアンス上よく求められるやつ)
5. トンネルグループ④とのひも付け
④で作ったトンネルグループに、このグループポリシーを関連付けてはじめて意味を持ちます:
tunnel-group ANYCONNECT type remote-access
tunnel-group ANYCONNECT general-attributes
address-pool VPN_POOL
default-group-policy ANYCONNECT_POLICY
さらに、ユーザー作成②のところで:
username testuser password <PW> privilege 0
username testuser attributes
vpn-group-policy ANYCONNECT_POLICY
service-type remote-access
としておけば、
testuserがANYCONNECTトンネルグループで接続ANYCONNECT_POLICYが適用される
(default-group-policyとvpn-group-policyが一致しているのでスッキリ)
6. 設定確認コマンド
! GPの内容表示
show run group-policy
show group-policy ANYCONNECT_POLICY
! 接続中セッションの GP を確認
show vpn-sessiondb anyconnect filter name testuser
まとめ
- ⑤は 「VPNユーザーの挙動セット」 を決める超重要ポイント
- トンネル方式(SSL)
- スプリットトンネル(tunnelall / tunnelspecified)
- DNS・ドメイン
- タイムアウト・同時接続数
- vpn-filter ACL で社内アクセス制御
- ④トンネルグループ & ②ユーザーと組み合わせて、“誰がどの入口からどんな権限で入るか” を完成させます。