在CentOS 7 上部署 L2TP/IPSec 服务

在CentOS 7 上部署 L2TP/IPSec 服务

安装strongswan和xl2tpd(yum安装需要启用epel源)

yum install strongswan xl2tpd

修改/etc/strongswan/ipsec.conf 文件,如下

config setup

conn %default

        ikelifetime=60m

        keylife=20m

        rekeymargin=3m

        keyingtries=1

conn l2tp

        keyexchange=ikev1

        left=%defaultroute

        leftsubnet=0.0.0.0/0

        leftprotoport=17/1701

        authby=secret

        leftfirewall=no

        right=%any

        rightprotoport=17/%any

        type=transport

        auto=add

修改/etc/strongswan/ipsec.secrets 文件(没有此文件就新建一个)

# ipsec.secrets - strongSwan IPsec secrets file

: PSK 'presharedkeys'

编辑/etc/xl2tpd/xl2tpd.conf文件的 [lns default] 部分

[lns default]

ip range = 172.16.0.100-172.16.0.199

local ip = 172.16.0.1

require chap = yes

refuse pap = yes

require authentication = yes

name = LinuxVPNserver

ppp debug = yes

pppoptfile = /etc/ppp/options.xl2tpd

ppp部分,这里只设定了chap验证部分

编辑/etc/ppp/options.xl2tpd

ms-dns  114.114.114.114

ms-dns  223.5.5.5

noccp

auth

crtscts

idle 600

mtu 1200

mru 1200

nodefaultroute

debug

lock

proxyarp

connect-delay 2500

编辑/etc/ppp/chap-secrets

# Secrets for authentication using CHAP

# client                server        secret        IP addresses

user                     *               password      *

设置防火墙,以iptables为例

iptables -t filter -A INPUT -p esp -j ACCEPT

iptables -t filter -A INPUT -p udp --dport 500 -j ACCEPT

iptables -t filter -A INPUT -p udp --dport 1701 -j ACCEPT

iptables -t filter -A INPUT -p udp --dport 4500 -j ACCEPT

iptables -t filter -A FORWARD -s 172.16.0.0/24 -j ACCEPT

iptables -t filter -A FORWARD -d 172.16.0.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o enp0s3 -j MASQUERADE

开启IP转发,编辑 /etc/sysctl.conf

net.ipv4.ip_forward = 1

执行sysctl - p 使之生效

开启服务

systemctl start strongswan.service

systemctl start xl2tpd.service

systemctl enable strongswan.service

systemctl enable xl2tpd.service

客户端连接的时候选L2TP/IPSec VPN with pre-shared keys ,PSK(预共享密钥)是/etc/strongswan/ipsec.secrets中的PSK,用户名和密码在/etc/ppp/chap-secrets中

ipsec穿过nat很麻烦,如果服务器在nat后,可以只用l2tp,不启用ipsec(strongswan)。只配置xl2tp和ppp,不配置ipsec。

iptables转发过滤规则暂时没时间试验,可以设为默认允许转发。 iptables -t filter -P FORWARD ACCEPT

nat外网1701映射到内网1701

客户端连接的时候选l2tp,而不是 L2TP/IPSec VPN with pre-shared keys。不需要PSK,用户名和密码和原来一样。

如果服务器有多个网卡,/etc/xl2tpd/xl2tpd.conf 的 [global]部分指明VPN使用的网卡。

[global]

listen-addr = 10.1.1.244

/etc/strongswan/ipsec.conf的conn部分把left改成VPN网卡的地址

…………

conn l2tp

        keyexchange=ikev1

        left=10.1.1.244

…………

你可能感兴趣的:(在CentOS 7 上部署 L2TP/IPSec 服务)