IPSec over L2TP:收到 NO_PROPOSAL_CHOSEN 错误通知

shr*_*gon 5 networking vpn ipsec xl2tpd openswan

环境:

# uname -a
Linux shrimpwagon 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u1 (2017-02-22) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我已经安装了:

# apt-get install strongswan xl2tpd
Run Code Online (Sandbox Code Playgroud)

我正在尝试连接到 Meraki VPN。我与 Meraki 技术人员进行了交谈,他说它看起来没有进行身份验证,但没有提供更多详细信息:

# ipsec up L2TP-PSK
generating QUICK_MODE request 2711688330 [ HASH SA No ID ID NAT-OA NAT-OA ]
sending packet: from 10.0.0.4[4500] to 50.123.152.194[4500] (252 bytes)
received packet: from 50.123.152.194[4500] to 10.0.0.4[4500] (68 bytes)
parsed INFORMATIONAL_V1 request 2555305796 [ HASH N(NO_PROP) ]
received NO_PROPOSAL_CHOSEN error notify
establishing connection 'L2TP-PSK' failed
Run Code Online (Sandbox Code Playgroud)

ipsec.conf:

config setup
    virtual_private=%v4:10.0.0.0/8
#   nat_traversal=yes
    protostack=auto
    oe=off
    plutoopts="--interface=eth0"

conn L2TP-PSK
    keyexchange=ikev1
    ike=aes128-sha1-modp1024,3des-sha1-modp1024!
    phase2=ah
    phase2alg=aes128-sha1-modp1024,3des-sha1-modp1024!
    authby=secret
    aggrmode=yes
    pfs=no
    auto=add
    keyingtries=2
#   dpddelay=30
#   dpdtimeout=120
#   dpdaction=clear
#   rekey=yes
    ikelifetime=8h
    keylife=1h
    type=transport
    left=%defaultroute
#   leftnexthop=%defaultroute
#   leftprotoport=udp/l2tp
    right=50.123.152.194
    rightsubnet=10.2.150.0/24
Run Code Online (Sandbox Code Playgroud)

ipsec.secrets:

%any %any : PSK "****"
Run Code Online (Sandbox Code Playgroud)

xl2tpd.conf:

[lac vpn-connection]
lns = 50.123.152.194
;refuse chap = yes
;refuse pap = no
;require authentication = yes
;name = vpn-server
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
Run Code Online (Sandbox Code Playgroud)

options.l2tpd.client:

ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-mschap-v2
noccp
noauth
idle 1800
mtu 1410
mru 1410
defaultroute
usepeerdns
debug
lock
connect-delay 5000
name swelch
password ****
Run Code Online (Sandbox Code Playgroud)

我从这个网站得到了大部分指令:

https://www.elastichosts.com/blog/linux-l2tpipsec-vpn-client/

我确实必须将其置于积极模式,指定 ikev1 并设置 ike 算法。一旦我这样做了,我就能够开始与 MX 通信。但我现在收到这个错误,我完全不知所措。

提前致谢!

dra*_*788 11

当作为 Meraki 客户端 VPN 连接时,它仅支持已从 Strongswan 默认协议协商列表中删除的协议(因为 SWEET32 生日攻击可能针对其中一些协议),因此您必须明确指定它们(如您所见)。

如果您ike-scan针对 Meraki“服务器”安装并运行它,您sudo ipsec stop; sudo service xl2tpd stop; sudo ike-scan YOUR.SERVER.IP可以看到默认协议是什么。我相当有信心它3des-sha1-modp1024就像你在上面一样,尽管在我的(NetworkManager)生成的 ipsec.conf 中我没有phase2phase2alg行,但是esp.

这是我使用协议的工作配置的片段:

  keyexchange=ikev1
  ike=3des-sha1-modp1024!
  esp=3des-sha1!
Run Code Online (Sandbox Code Playgroud)

旁注:这对您来说可能无关紧要,因为您使用的是 CLI,但我正在使用 PPA 用于 L2TP 的 NM 插件,它来自ppa:nm-l2tp/network-manager-l2tp和在我的 NetworkManager GUI 中引用Phase 1and Phase 2,但在生成的 ipsec 配置中这些映射到ikeesp以上。我使用了这篇博文