我在使用 android(ICS vpn 客户端)和 Strongswan 4.5.0 服务器设置 VPN 连接(IKEv1)时遇到问题。
以下是设置:
Strongswan 服务器在连接到某个 wifi 热点的 ubuntu linux 机器上运行。使用步骤在本指南中链接,我生成了CA,服务器和客户端证书。
一旦生成证书,以下内容(clientCert.p12 和 caCert.pem)将通过邮件发送到手机并安装在 Android 设备上。
以下是分配给各个接口的 IP 地址
服务器所在Linux服务器wlan0接口ip:192.168.43.212,android设备eth0接口ip地址:192.168.43.62;Android设备也挂载了同样的wifi热点。
在 Android 设备上,我使用 IPsec Xauth RSA 选项来设置 VPN 身份验证配置。
我正在使用以下 ipsec.conf 配置:
# basic configuration
config setup
plutodebug=all
# crlcheckinterval=600
# strictcrlpolicy=yes
# cachecrls=yes
nat_traversal=yes
# charonstart=yes
plutostart=yes
# Add connections here.
# Sample VPN connections
conn ios1
keyexchange=ikev1
authby=xauthrsasig
xauth=server
left=%defaultroute
leftsubnet=0.0.0.0/0
leftfirewall=yes
leftcert=serverCert.pem
right=192.168.43.62
rightsubnet=10.0.0.0/24
rightsourceip=10.0.0.2
rightcert=clientCert.pem
pfs=no
auto=add
使用上述配置,当我在 Android 设备上启用 VPN 时,VPN 连接失败,并且在身份验证阶段超时。
我在 android 设备和 strongswan 服务器上运行了 wireshark,下面是从 tcpdump 得到的观察结果。
- 最初,身份保护(主模式)交换发生在设备和服务器之间,并且全部成功。
- 在所有成功的身份保护(主模式)交换之后,服务器将向设备发送交易(配置模式)。
- 作为回复,Android 设备发送的是信息消息而不是交易(配置模式)消息。
- 此外,服务器继续发送交易(配置模式)消息,并且设备再次发送身份保护(主模式)消息。
- 最后发生超时并且连接失败。
我还捕获了 Strongswan 服务器日志,下面是来自服务器日志的片段,也验证了相同的内容(如上所述)。
Apr 27 21:09:40 Linux pluto[12105]: | **parse ISAKMP Message:
Apr 27 21:09:40 Linux pluto[12105]: | initiator cookie:
Apr 27 21:09:40 Linux pluto[12105]: | 06 fd 61 b8 86 82 df ed
Apr 27 21:09:40 Linux pluto[12105]: | responder cookie:
Apr 27 21:09:40 Linux pluto[12105]: | 73 7a af 76 74 f0 39 8b
Apr 27 21:09:40 Linux pluto[12105]: | next payload type: ISAKMP_NEXT_HASH
Apr 27 21:09:40 Linux pluto[12105]: | ISAKMP version: ISAKMP Version 1.0
Apr 27 21:09:40 Linux pluto[12105]: | exchange type: ISAKMP_XCHG_INFO
Apr 27 21:09:40 Linux pluto[12105]: | flags: ISAKMP_FLAG_ENCRYPTION
Apr 27 21:09:40 Linux pluto[12105]: | message ID: a2 80 ad 82
Apr 27 21:09:40 Linux pluto[12105]: | length: 92
Apr 27 21:09:40 Linux pluto[12105]: | ICOOKIE: 06 fd 61 b8 86 82 df ed
Apr 27 21:09:40 Linux pluto[12105]: | RCOOKIE: 73 7a af 76 74 f0 39 8b
Apr 27 21:09:40 Linux pluto[12105]: | peer: c0 a8 2b 3e Apr 27 21:09:40 Linux pluto[12105]: | state hash entry 25
Apr 27 21:09:40 Linux pluto[12105]: | state object not found Apr 27 21:09:40 Linux pluto[12105]: packet from 192.168.43.62:500: Informational Exchange is for an unknown (expired?) SA
Apr 27 21:09:40 Linux pluto[12105]: | next event EVENT_RETRANSMIT in 10 seconds for #9
有人能提供有关此问题的最新信息吗?为什么 VPN 连接会超时以及为什么 Android 和 strongswan 服务器之间的 ISAKMP 交换不正确。
答案1
我按照 strongswan wiki 中发布的说明设置了 IKEv1 连接。我能够应用这些说明在 Jellybean 上设置连接http://wiki.strongswan.org/projects/strongswan/wiki/IOS_%28Apple%29。另外,您是否在 ipsec.secrets 文件中输入了正确的证书条目,您能否发布 racoon 的 logcat 输出?抱歉,我无法发表评论,因此我不得不在