Ciscoルーターのリモートアクセス設定
苦闘してリモートアクセス設定を実施した記録である。結果として妥協。
トポロジー
リモートアクセス設定を行うルーターはCisco C841M。身の回りにあった機器を下記図のように構成した。
C841MのWAN側に別のルーターYが存在し、C841MとPC-AとがルーターYからDHCPによりIPアドレスを取得(172.16.0.xxx/24)。C841MのVLAN10にPC-Bが存在している(C841MのDHCPによりIPアドレスを取得)。また、C841MにはNATあり。PC-AがC841MにアクセスしてPC-Bと疎通ができるような設定を行う(リモートアクセス(VPN)の結果として、PC-Aには「10.2.2.208」のIPアドレスがアサイン)。PCにはWindows10を用いた。
トライ(失敗)
失敗の記録である。最初に記載するが、私が用いた環境依存により、失敗している可能性はあることに注意。
まずはオーソドックス
C841Mやリモートアクセスをキーワードに検索。
- リモート アクセス IPsec VPN を設定する
-
リモートアクセスVPNに接続できるが、社内の機器と通信できない
これらをトライしたがNG。
ClientにLinux(lubuntu)を利用(NATトラバーサル)
Linuxで、NATトラバーサル(UDPポート4500)を有効にすると、C841Mまでのアクセスは成功した。調べると、Windows10でNATトラバーサルを利用するには、レジストリAssumeUDPEncapsulationContextOnSendRuleの数値を「2」にする必要があるらしいことがわかった。次のような記事が見つかる。
- Windows10でVPN(L2TP/IPsec)が接続できない場合の確認項目
- L2TP / IPsec VPN Does won’t Connect in Windows 10 Fix
- L2TP VPNに繋がらない 809エラーの場合の対処法
しかし、これでも接続できず。さらに、XBox系のサービスを停止する、Firewallの設定を見直す、、などの記事も見つかるが、いずれもNG。PatchをUninstallするなどの下記記事も見つかるが、これもだめだった。
また、Linuxでは、C841MまでのアクセスはOKだが、PC-Bまでの疎通はできず。
その他の検索
他にも、いくつか見つかり(下記)、トライしたがダメだった。
- Cisco 841M で L2TP アクセスを許可する。(途中経過メモ)
- CISCO 841M 設定:その9:VPNの設定
- Cisco 841M/JルータでCisco VPN Client(IPSec)のホスト設定をする
- IOS VPN(ルータ): 既存の L2L VPN への新しい L2L のトンネルまたはリモート アクセスの追加
- L2TP over IPsec on Cisco IOS Router Using Windows 8
FortiClient VPN
VPNで有名どころのFortigateのソフトウェアである、FortiClient VPNでも試したがNG。
Shrew Soft VPN Client(成功)
VPNクライアントソフトを探していたところ
という記事にあった、Shrew Soft VPN Clientを利用して、リモートアクセスもPC-AからPC-Bへの疎通もOKとなった。本ソフトウェアは、Cisco VPN Clientの代替となっているらしい。
C841MのConfiguration
上述の記事にそって設定を行う。ただし、記事内容の一部に不適切と思えるところがあり、適宜修正している。(さらに、用いたトポロジーに合わせて修正あり。)
関連するところのみ記載する。「//」以降が補足コメントである。
#show running-config
aaa new-model
!
aaa authentication login AUTH local // ログイン認証にローカルデータベースを利用し名称を「AUTH」とする
aaa authorization network NET local // ネットワークサービス認可にローカルデータベースを利用し名称を「NET」とする
!
aaa session-id common
!
ip dhcp excluded-address 10.10.10.1
ip dhcp excluded-address 10.2.2.1 // LAN側のDHCPの除外IPアドレス
ip dhcp excluded-address 10.2.2.201 10.2.2.210
!
ip dhcp pool pool10 // 10.10.10.0/25のDHCPプール(管理用ネットワーク)
import all
network 10.10.10.0 255.255.255.128
default-router 10.10.10.1
dns-server 10.10.10.1
lease 0 2
!
ip dhcp pool pool2 // 10.2.2.0/24のDHCPプール(今回使用するネットワーク)
import all
network 10.2.2.0 255.255.255.0
default-router 10.2.2.1
dns-server 10.2.2.1
lease 0 2
!
object-group network local_lan_subnets // LAN側ネットワークの定義
10.10.10.0 255.255.255.128
10.2.2.0 255.255.255.0
!
username admin privilege 15 secret 5 Himitsu
username user1 privilege 15 password 7 Himitsu // VPNアクセス用アカウント
!
crypto isakmp policy 1 // ISAKMPポリシー定義
encr aes // AES
authentication pre-share // 事前共有鍵方式
group 2 // DHグループ2
lifetime 3600
crypto isakmp keepalive 10
!
crypto isakmp client configuration group RA // ISAKMPグループポリシー定義
key password // 事前共有鍵(password)
domain test.com // ドメイン名
pool Test1 // IPアドレスプール
acl split // スプリットトンネリング有効化(アクセスリスト名「split」)
save-password
netmask 255.255.255.0
crypto isakmp profile ISAKMP-PROFILE // ISAKMPプロファイル定義
match identity group RA // ポリシーグループ名
client authentication list AUTH // AAA認証とのリンク(名称「AUTH」)
isakmp authorization list NET // AAA認可とのリンク(名称「NET」)
client configuration address respond // リモートからのアドレスリクエストに応答
client configuration group RA // 必要か不明、、、
virtual-template 1 // 仮想I/F
!
crypto ipsec transform-set TS-IPSEC esp-aes esp-sha-hmac // IPSECトランスフォームセット定義
mode tunnel
!
crypto ipsec profile IPSEC-PROFILE // IPSECプロファイル
set transform-set TS-IPSEC // IPSECトランスフォームセット
set isakmp-profile ISAKMP-PROFILE // ISAKMPプロファイル
!
interface GigabitEthernet0/0 // VLAN10
switchport access vlan 10
no ip address
!
interface GigabitEthernet0/1 // VLAN10
switchport access vlan 10
no ip address
!
interface GigabitEthernet0/2 // 指定なし(VLAN1)
no ip address
!
interface GigabitEthernet0/3 // 指定なし(VLAN1)
no ip address
!
interface GigabitEthernet0/4 // WAN
description PrimaryWANDesc_
ip address dhcp // DHCPによりIPアドレス取得
ip nat outside // NAT外側
ip virtual-reassembly in
duplex auto
speed auto
!
interface GigabitEthernet0/5
no ip address
shutdown
duplex auto
speed auto
!
interface Virtual-Template1 type tunnel // 仮想トンネルI/F
ip unnumbered GigabitEthernet0/4 // 物理I/Fとのリンク
tunnel source GigabitEthernet0/4 // ソースI/F
tunnel mode ipsec ipv4 // IPv4 IPSEC
tunnel protection ipsec profile IPSEC-PROFILE // IPSECプロファイルとのリンク
!
interface Vlan1 // 管理用LAN
description $ETH_LAN$
ip address 10.10.10.1 255.255.255.128
ip nat inside // NAT内側
ip virtual-reassembly in
!
interface Vlan10 // 今回のアクセス対象となるLAN
ip address 10.2.2.1 255.255.255.0
ip nat inside // NAT内側
ip virtual-reassembly in
!
ip local pool Test1 10.2.2.201 10.2.2.210 // リモートアクセス時に割り当てられるIPアドレスプール
ip forward-protocol nd
ip http server
ip http access-class 23
no ip http secure-server
!
ip nat inside source list nat-list interface GigabitEthernet0/4 overload // NAT
!
ip access-list extended nat-list // NAT用アクセスリスト
permit ip object-group local_lan_subnets any
deny ip any any
ip access-list extended split // スプリットトンネリング用アクセスリスト
permit ip 10.10.10.0 0.0.0.127 any
permit ip 10.2.2.0 0.0.0.255 any
!
access-list 23 permit 10.10.10.0 0.0.0.127
!
line con 0
login authentication local_access
no modem enable
line vty 0 4
access-class 23 in
privilege level 15
login authentication local_access
transport input telnet ssh
line vty 5 15
access-class 23 in
privilege level 15
transport input telnet ssh
Ginza#show vlan-switch
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Gi0/2, Gi0/3
10 VLAN0010 active Gi0/0, Gi0/1
Shrew Soft VPN Clientの設定
さきほどの記事に沿って設定を行う。
- General - Remote Host:172.16.0.11 / Port:500
- Authentication Method:Mutual PSK+XAuth
- Authentication - Mutual PSK+XAuth - Local Identity - Identification Type:Key Identifier
- Authentication - Mutual PSK+XAuth - Local Identity - Key ID string:RA
- Authentication - Mutual PSK+XAuth - Remote Identity - Identitication Type:IP Address
- Authentication - Mutual PSK+XAuth - Remote Identity - Use a discovered remote host address:チェック
- Authentication - Mutual PSK+XAuth - Credentials - Pre Shared Key:password
- Phase 1 - Cipher Algorithm:aes
- Phase 1 - Hash Algorithm:sha1
- Phase 2 - Transform Algorithm:esp-aes
- Phase 2 - HMAC Algorithm:sha1
- Policy - Remote Network Resouce:10.2.2.0/255.255.255.0
実験
UsernameとPasswordとを入力しConnectする。
接続が成功すると、下記のように「tunnel enabled」が表示される。
同時に接続状況を下記する。
また、PC-Aには下記のような新しいネットワークインターフェースが見える。
C841Mで設定したドメイン名「test.com」やリモートアクセス用に割り当てたプールからのIPアドレス「10.2.2.208/24」が割り当てられている。ここで、PC-AからPC-Bへpingを実施する。
新しいネットワークインターフェース(ここでは「イーサネットアダプター ローカルエリア接続*11)が作られるため、Wireshark(npcap)では直接的にパケットをキャプチャすることができない。そのかわりに、Shrew Soft VPN Clientでは、オプション設定により、ネットワークデータをキャプチャできる。
「packet dump」にチェックを入れることにより、Wiresharkで読み込み可能な「pcap」ファイルが作成される(暗号化前データと後データ)。これにより、先程のpingをキャプチャしたものが下記である。
暗号化前データ:
暗号化後データ:
なお、IKEやIPsecのログデータやIKEのキャプチャデータも作成されるが、ここでは省略。
おわりに
VPNクライアントソフトウェアを入れずに、Windows10だけでなんとかしたかったのであるが、GiveUp。時間ができたら、またトライするかも。