使用 Android(ICS VPN 客户端)和 Strongswan 4.5.0 服务器设置 VPN 连接(IKEv1)时出现问题

使用 Android(ICS VPN 客户端)和 Strongswan 4.5.0 服务器设置 VPN 连接(IKEv1)时出现问题

我在使用 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 得到的观察结果。

  1. 最初,身份保护(主模式)交换发生在设备和服务器之间,并且全部成功。
  2. 在所有成功的身份保护(主模式)交换之后,服务器将向设备发送交易(配置模式)。
  3. 作为回复,Android 设备发送的是信息消息而不是交易(配置模式)消息。
  4. 此外,服务器继续发送交易(配置模式)消息,并且设备再次发送身份保护(主模式)消息。
  5. 最后发生超时并且连接失败。

我还捕获了 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 输出?抱歉,我无法发表评论,因此我不得不在

相关内容