IPSec over L2TP:收到 NO_PROPOSAL_CHOSEN 错误通知

IPSec over L2TP:收到 NO_PROPOSAL_CHOSEN 错误通知

环境:

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

我已经安装了:

# apt-get install strongswan xl2tpd

我正在尝试连接到 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

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

ipsec.秘密:

%any %any : PSK "****"

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

选项.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 ****

我的大部分说明都是从这个网站获得的:

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

我确实必须将其置于积极模式,指定 ikev1 并设置 ike 算法。完成此操作后,我就可以开始与 MX 通信。但我现在收到了这个错误,我完全不知所措。

提前致谢!

答案1

作为 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!

旁注:这可能对你来说并不重要,因为你使用的是 CLI,但我使用 PPA 作为 L2TP 的 NM 插件,ppa:nm-l2tp/network-manager-l2tp在我的 NetworkManager GUI 中它引用了Phase 1Phase 2,但在生成的 ipsec 配置中,这些映射到ike以上esp。我用过这个博客文章

答案2

当我上次这样做时,NO_PROPOSAL_CHOSEN我必须确保MTU上面显示的设置符合我的系统的预期。我在系统日志中的其他错误行中发现了它。

相关内容