如何在没有 ipsec 加密的情况下拒绝与 xl2tp 的连接?

如何在没有 ipsec 加密的情况下拒绝与 xl2tp 的连接?

我尝试为我的移动设备和家用路由器设置 l2tp+ipsec 服务器。因此我进行了一些设置并检查它在 Android 设备上是否正常工作。我在 ipsec --status 上看到了加密。

我的系统是基于 Digital Ocean 的 CentOS Linux 版本 7.0.1406(核心)。

我的问题是,我无需 ipsec 即可从 Mikrotik 连接到 L2TP 服务器。

所以现在我需要一些建议:

如何在 Linux 端拒绝没有 IPSEC 加密的 L2TP 连接,因为即使 ipsec demon 停止了,我也可以从 mikrotik 连接到 xl2tpd。

如何正确配置 mikrotik 以在 ipsec 传输模式下连接到 l2tp+ipsec 服务器。

这是我的 Linux 配置:

/etc/ppp/options.xl2tpd

require-mschap-v2
ipcp-accept-local
ipcp-accept-remote
ms-dns  8.8.8.8
auth
crtscts
idle 1800
mtu 1310
mru 1310
hide-password
modem
name l2tpd
multilink
lcp-echo-interval 5
lcp-echo-failure 4
proxyarp

/etc/xl2tpd/xl2tpd.conf

[global]
ipsec saref = yes
force userspace = yes
auth file = /etc/ppp/chap-secrets

[lns default]
ip range = 192.168.1.128-192.168.1.254
local ip = 192.168.1.99
refuse chap = yes
refuse pap = yes
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

/etc/ipsec.conf

config setup
        protostack=netkey
        dumpdir=/var/run/pluto/
        nat_traversal=yes
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10,%v4:!192.168.250.0/24,%v4:!192.168.$
        keep_alive=1800

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=8
    ikelifetime=8h
    keylife=1h
    type=transport
    left=146.185.XXX.XXX
    leftprotoport=17/%any
    right=%any
    rightprotoport=17/%any

答案1

我已将这个问题发布给 GitHub 上的 xl2tpd 团队,这是答案(已检查并在我的设置上工作):

您可以像这样使用 iptables 策略模块:

iptables -A INPUT -p udp --dport 1701 -m policy --dir in --pol ipsec -j ACCEPT
iptables -A INPUT -p udp --dport 1701 -j DROP

https://github.com/xelerance/xl2tpd/issues/97

答案2

以下是 Mikrotik 在 IPSEC 传输模式下的 ipsec 设置的工作部分:

admin@MikroTik] > /ip ipsec policy print 
Flags: T - template, X - disabled, D - dynamic, I - inactive, * - default 
 0 TX* group=default src-address=::/0 dst-address=::/0 protocol=all proposal=default template=yes 

 1     src-address==%MIKROTIK EXTERNAL IP%/32 src-port=any dst-address=%SERVERIP%/32 dst-port=any protocol=udp action=encrypt level=require ipsec-protocols=esp tunnel=no
       sa-src-address=%MIKROTIK EXTERNAL IP% sa-dst-address=%SERVERIP% proposal=default priority=0 
[admin@MikroTik] > /ip ipsec peer print   
Flags: X - disabled, D - dynamic 
 0    address=%SERVERIP%/32 local-address=0.0.0.0 passive=no port=500 auth-method=pre-shared-key secret="KEY" generate-policy=no policy-template-group=default 
      exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-256 dh-group=modp1024 lifetime=1d lifebytes=0 dpd-interval=2m 
      dpd-maximum-failures=5 

相关内容