使用安卓(ICS vpn客户端)与Strongswan 4.5.0服务器build立VPN连接(IKEv1)的问题

我正在使用android(ICS vpn客户端)和Strongswan 4.5.0服务器build立VPN连接(IKEv1)。

以下是build立:

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身份validationconfiguration。

我正在使用下面的ipsec.confconfiguration:

# 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 

通过以上configuration,当我在Android设备上启用VPN时,VPN连接不成功,并在authentication阶段超时。

我在android设备和strongswan服务器上都运行wireshark,从下面的tcpdump就可以看到。

  1. 最初身份保护(主要模式)在设备和服务器之间进行交换,并且都是成功的。
  2. 毕竟成功的身份保护(主模式)交换服务器正在向设备发送交易(configuration模式)。
  3. 答复android设备发送信息消息,而不是交易(configuration模式)消息。
  4. 进一步的服务器继续发送交易(configuration模式)消息,并且设备再次发送身份保护(主模式)消息。
  5. 最后超时发生,连接失败。

我还捕获了Strongswan服务器日志,下面是服务器日志中的代码片段,也validation了上述内容。

 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交换不正确的原因。

我遵循strongswan wiki中发布的指示来build立IKEv1连接。 我能够应用这些说明在Jellybean http://wiki.strongswan.org/projects/strongswan/wiki/IOS_%28Apple%29上build立连接。 你也有正确的条目在ipsec.secrets文件中的证书,你可以发布输出formslogcat的浣熊? 对不起,我不能评论,所以我不得不问