iPhone 的 Openswan L2TP/IPsec VPN 连接失败

iPhone 的 Openswan L2TP/IPsec VPN 连接失败

我花了一上午的时间尝试在 Debian Squeeze 服务器上使用 Openswan 和 xl2tpd 配置 L2TP/IPsec VPN,供 iOS 和 Mac 客户端混合使用。我尝试使用预共享密钥进行设置,以简化操作。

iPhone 连接并开始创建 VPN,然后卡住并半途失败。我摆弄了很多参数并仔细检查了所有内容,但还是找不到问题所在。

/var/log/auth.log这是卡住之前的最后一条日志消息:

pluto[30733]: "L2TP-PSK"[5] 166.147.96.226 #5: STATE_QUICK_R2: IPsec SA established tunnel mode {ESP=>0x0659cf9f <0xc3c2f68c xfrm=AES_256-HMAC_SHA1 NATOA=none NATD=166.147.96.226:10682 DPD=enabled}

大约 30 秒后,iPhone 放弃并且显示以下内容auth.log

pluto[30733]: ERROR: asynchronous network error report on br1 (sport=4500) for message to 166.147.96.226 port 10682, complainant 166.147.96.226: Connection refused [errno 111, origin ICMP type 3 code 3 (not authenticated)]

这是什么意思?服务器无法联系客户端,还是客户端无法建立其他连接,并将此错误传递到它可以建立的 IPsec 连接?

不幸的是,我正在 AT&T 的蜂窝网络上使用 iPhone 进行测试,因为我位于 Wi-Fi 网络内,我想在其中建立 VPN。AT&T 会阻止 VPN 流量吗?

我知道 IPsec 身份验证正在运行,因为如果我更改或删除该行/etc/ipsec.secrets,连接会更快失败,而且我看不到这些日志行。

我相信防火墙允许 UDP 端口 500 和 4500 以及 ESP 协议,因为如果我阻止这些协议,连接就会再次更快失败。

/etc/ipsec.conf连接部分:

conn L2TP-PSK
    authby=secret
    pfs=no
    rekey=no
    keyingtries=3
    dpddelay=30
    dpdtimeout=120
    dpdaction=clear
    compress=yes
    left=%defaultroute
    leftprotoport=udp/1701
    right=%any
    rightprotoport=udp/0
    auto=add

/etc/ipsec.secrets

VPN-SERVER-PUBLIC-IP %any: PSK "mysecretishere"

/etc/xl2tpd/xl2tpd.conf

[global]                ; Global parameters:
access control = no
rand source = dev

[lns default]             ; Our fallthrough LNS definition
ip range = 192.168.1.120-192.168.1.127
local ip = 192.168.1.119
require chap = yes
refuse pap = no
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tp
length bit = yes

/etc/ppp/options.l2tp

ipcp-accept-local
ipcp-accept-remote
ms-dns  192.168.1.1
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
plugin pppol2tp.so
require-mschap-v2

答案1

AT&T 似乎阻止传入的 UDP 数据包(不允许它们穿越 NAT),因此设置 L2TP/IPsec 会非常困难。我认为你只能使用 PPTP。

答案2

这个错误就是你的线索。

ERROR: asynchronous network error report on br1 (sport=4500) for message to 166.147.96.226 port 10682, complainant 166.147.96.226: Connection refused [errno 111, origin ICMP type 3 code 3 (not authenticated)

我以前见过这种情况,每次都是因为主机服务器或远程客户端的网络/防火墙阻止了 ipsec 数据包。如果是用户控制的防火墙或路由器,这是一个简单的修复(启用 IPSEC),但如果它不受您的控制,您就没那么幸运了,必须使用不同的协议。有些人说更改 left=17/%any,但这对我来说从来没有用过(在极少数情况下,客户端可能很聪明,会尝试使用可能未被阻止的其他端口)。

相关内容