CiscoASAを使用して、リモートアクセスを実現したい方に設定例を書きましたので参考にしてください。
AnyConnectはとにかく設定がめんどくさいので、コマンド一つ一つにメモ入れておきます。
構成図は以下となりますのでこれを参考に作成していきます。
CiscoASAの「AnyConnect」設定例
CiscoASAでのVPN設定(AnyConnect)は一つ一つを理解するのが結構大変なので、私が実際設定した際のメモを入れながら各コマンドを開設していきます。
※間違っていたら指摘くださいねー。
1.AnyConnectの有効化
webvpn enable outside_1 anyconnect enable tunnel-group-list enable
- webvpnコマンド実施
- WAN側のインターフェースを指定
- AnyConnect有効化
- トンネルグループリスト表示を有効化
2.VPN接続後のユーザーに割りあてるアドレスプールの設定
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.ユーザー認証
username vpn password vpnpass
- ここではAnyConnectの接続するユーザー名を「VPN」、パスワードを「vpnpass」と設定します。
4.IKEv1 ポリシーの有効化
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ポリシーのインターフェース上でのイネーブル化
crypto ikev1 enable outside
- outside インターフェースでイネーブルにする設定
6.グループポリシーの設定
グループポリシーは、IPsec接続用のユーザ関連の属性と値のペアがセットになったものです。
以下がグループポリシー設定の流れとなります。
6-1.”AnyConnect”という名前の内部グループポリシーの設定
group-policy AnyConnect internal
6-2.グループポリシー属性の設定
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」です。
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.トンネルグループの設定
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アドレスのピアからの接続を受信できるようになります。
crypto dynamic-map ipsec-dynamic 1 set ikev1 transform-set IPSEC
- “ipsec-dynamic”というダイナミッククリプトマップを作成、そのマップでIKEv1“IPSEC”というトランスフォームセットを指定
9.NAT免除(例外)ルールの設定
以下の設定は、全ての送信元アドレスから、宛先ネットワーク“192.168.1.0/24”への通信はNAT免除する設定
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
パケットトラッカー確認コマンド
packet-tracer input outside icmp 172.16.0.1 0 0 192.168.1.1 detailed
CiscoASA AnyConnect VPN設定例全体
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を接続して以下のコマンドで確認します。
# show vpn-sessiondb anyconnect
まとめ
CiscoASAでのVPN(anyconnect)の設定例をざっとメモ書きました。
これから、設定をするという方はぜひ参考にしてくださいね。
※間違っていたらご指摘くださいー
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す