CiscoASAを使用して、リモートアクセスを実現したい方に設定例を書きましたので参考にしてください。
AnyConnectはとにかく設定がめんどくさいので、コマンド一つ一つにメモ入れておきます。
構成図は以下となりますのでこれを参考に作成していきます。
CiscoASAの「AnyConnect」設定例
CiscoASAでのVPN設定(AnyConnect)は一つ一つを理解するのが結構大変なので、私が実際設定した際のメモを入れながら各コマンドを開設していきます。
※間違っていたら指摘くださいねー。
1.AnyConnectの有効化
1 2 3 4 | webvpn enable outside_1 anyconnect enable tunnel-group-list enable |
- webvpnコマンド実施
- WAN側のインターフェースを指定
- AnyConnect有効化
- トンネルグループリスト表示を有効化
2.VPN接続後のユーザーに割りあてるアドレスプールの設定
1 | ip local pool VPN-POOL 172.16.1.1-172.16.1.253 mask 255.255.255.0 |
- 172.16.1.1~172.16.1.253までをアドレスプールとする設定
※ここでは実際にAnyConnectでVPN接続後にユーザーに割り当てられるIPアドレスプールを設定しますが、このプールで指定したプールの若番がデフォルトゲートウェイとなる仕様となります。
3.ユーザー認証
1 | username vpn password vpnpass |
- ここではAnyConnectの接続するユーザー名を「VPN」、パスワードを「vpnpass」と設定します。
4.IKEv1 ポリシーの有効化
1 2 3 4 5 6 | crypto ikev1 policy 10 authentication pre-share encryption aes-256 hash sha group 2 lifetime 86400 |
- IKEVv1ポリシーの有効化(1が最もプライオリティが高く65534が最も低い)
- 認証方式をpre-share(事前共有鍵)とする設定
- 暗号化方式の指定
- ハッシュアルゴリズムを sha とする設定
- Diffie-Hellmanグループを 2 とする設定
- 暗号キーのライフタイムを1日(86400秒)とする設定
※Diffie-Hellmanグループについては以下を参考にしてください。
https://qiita.com/n-i-e/items/fac121aa5b2a3d16a632
5.ISAKMPポリシーのインターフェース上でのイネーブル化
1 | crypto ikev1 enable outside |
- outside インターフェースでイネーブルにする設定
6.グループポリシーの設定
グループポリシーは、IPsec接続用のユーザ関連の属性と値のペアがセットになったものです。
以下がグループポリシー設定の流れとなります。
6-1.”AnyConnect”という名前の内部グループポリシーの設定
1 | group-policy AnyConnect internal |
6-2.グループポリシー属性の設定
1 2 3 4 5 6 | group-policy AnyConnect attributes dns-server value 172.16.100.1 172.16.100.2 vpn-tunnel-protocol ikev1 ssl-client split-tunnel-policy tunnelspecified split-tunnel-network-list value split default-domain value vpn.ne.jp |
- “AnyConnect”という名前の内部グループポリシー属性の設定
- DNSサーバの設定
- グループポリシーのVPNトンネルタイプの設定
- グループポリシーでスプリットトンネリングをイネーブルにする設定
- スプリットトンネリング用のネットワークリストの設定(★aclで設定した「split」のトラフィックをトンネルを通過するトラフィックと指定する設定)
- ドメインの指定
スプリットトンネルで通したい宛先アドレスは以下のようにアクセスリストで書きます。
※アクセスリスト名は「split」です。
1 2 | access-list split standard permit 192.168.1.0 255.255.255.0 access-list split standard permit 192.168.2.0 255.255.255.0 |
7.トンネルグループの設定
1 2 3 4 5 6 | tunnel-group AnyConnect type remote-access tunnel-group AnyConnect general-attributes address-pool VPN-POOL default-group-policy AnyConnect tunnel-group AnyConnect webvpn-attributes group-alias AnyConnect enable |
- remote-accessのタイプで、AnyConnectというグループを作成する設定
- トンネルグループの“General属性モード”に入る
- “AnyConnect”というトンネルグループで“VPN-POOL”というアドレスプールを使用する設定
- “AnyConnect”というトンネルグループに、“AnyConnect”というグループポリシーを割り当てる設定
- 指定したネットワークとの間のトラフィックのみがトンネリング
- スプリットトンネリングのイネーブル
8.ダイナミッククリプトマップの設定 & インターフェースへの適用
ダイナミッククリプトマップを設定することで、ASAは不明なIPアドレスのピアからの接続を受信できるようになります。
1 | crypto dynamic-map ipsec-dynamic 1 set ikev1 transform-set IPSEC |
- “ipsec-dynamic”というダイナミッククリプトマップを作成、そのマップでIKEv1“IPSEC”というトランスフォームセットを指定
9.NAT免除(例外)ルールの設定
以下の設定は、全ての送信元アドレスから、宛先ネットワーク“192.168.1.0/24”への通信はNAT免除する設定
1 2 3 4 5 6 7 | object network NETWORK_OBJ_172.30.1.0_24 subnet 172.30.1.0 255.255.255.0 object network VPNPOOL subnet 172.16.1.0 255.255.255.0 nat (inside_10,outside) source static any any destination static VPNPOOL VPNPOOL nat (inside_10,outside) source dynamic any interface |
パケットトラッカー確認コマンド
1 | packet-tracer input outside icmp 172.16.0.1 0 0 192.168.1.1 detailed |
CiscoASA AnyConnect VPN設定例全体
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 | cisco-asa# show running-config ip local pool VPN-POOL 172.16.1.1-172.16.1.253 mask 255.255.255.0 ! interface GigabitEthernet1/1 description To_SW channel-group 1 mode active no nameif no security-level no ip address ! interface GigabitEthernet1/2 description To_SW channel-group 1 mode active no nameif no security-level no ip address ! interface GigabitEthernet1/8 description AnyConnect nameif outside security-level 0 ip address 1.1.1.1 255.255.255.0 ! interface Management1/1 management-only nameif manage security-level 100 ip address 172.16.100.1 255.255.255.0 ! interface Port-channel1 description To_SW lacp max-bundle 8 nameif inside security-level 100 no ip address ! interface Port-channel1.10 vlan 10 nameif inside_10 security-level 100 ip address 172.30.1.100 255.255.255.0 ! object network OBJ_172.30.1.0_24 subnet 172.30.1.0 255.255.255.0 object network VPNPOOL subnet 172.16.1.0 255.255.255.0 ! access-list split standard permit 192.168.1.0 255.255.255.0 access-list split standard permit 192.168.2.0 255.255.255.0 ! nat (inside_10,outside) source dynamic any interface nat (inside_10,outside) source static any any destination static VPNPOOL VPNPOOL ! object network OBJ_172.30.1.0_24 nat (inside_10,outside) dynamic interface ! ! route inside_10 192.168.1.0 255.255.255.0 172.30.1.254 1 ! crypto ikev1 enable outside crypto ikev1 policy 10 authentication pre-share encryption aes-256 hash sha group 2 lifetime 86400 crypto ikev1 policy 65535 authentication pre-share encryption 3des hash sha group 2 lifetime 86400 ! webvpn enable outside anyconnect enable tunnel-group-list enable cache disable error-recovery disable group-policy AnyConnect internal group-policy AnyConnect attributes dns-server value 172.16.100.1 172.16.100.2 vpn-tunnel-protocol ikev1 l2tp-ipsec ssl-client split-tunnel-policy tunnelspecified split-tunnel-network-list value split default-domain value education.saga.jp ! username vpn password vpnpass encrypted username vpn attributes vpn-group-policy AnyConnect service-type remote-access ! tunnel-group AnyConnect type remote-access tunnel-group AnyConnect general-attributes address-pool VPN-POOL default-group-policy AnyConnect tunnel-group AnyConnect webvpn-attributes group-alias AnyConnect enable ! |
確認コマンドは実際にAnyConnectを接続して以下のコマンドで確認します。
1 | # show vpn-sessiondb anyconnect |
まとめ
CiscoASAでのVPN(anyconnect)の設定例をざっとメモ書きました。
これから、設定をするという方はぜひ参考にしてくださいね。
※間違っていたらご指摘くださいー

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメント