文章目录
以下图组网为例,讲解L2TP VPN的搭建

CentOS7服务端搭建
配置elep-release仓库
服务器联网情况下可采用yum方式进行安装:
yum install epel-release
服务器无法联网的情况下,本步骤可跳过。
安装xl2tpd和openswan(libreswan)软件
服务器联网情况下并已经安装eple,可采用yum方式进行安装:
yuminstall xl2tpd openswan –y
服务器无法联网的情况下,采用本地搭建自建仓库方式安装:
操作方法请见《U盘搭建yum仓库》
注意:提前将xl2tpd和openswan软件包和依赖包放在仓库里。安装完毕后通过启动服务测试是否安装正确。如果能正常启动表示没有部里,如果不能启动,建议重新安装。
启动命令service ipsec start和service xl2tpd start,
配置xl2tpd的配置文件 /etc/xl2tpd/xl2tpd.conf
配置文件默认配置如下:
[global] 为全局选项
listen-addr = IP#监听守护进程所监听的接口的IP地址,默认监听在INADDR_ANY(0.0.0.0),即所有的接口。
Ipsec saref =yes #使用ipsec协议追踪,设置了这个后,xl2tpd接受的包就会有额外的字段,用来允许使用相同的内部NATed IP地址来跟踪多个客户端,并且允许跟踪同一个NAT路由器后面的多个客户端。这需要内核的支持,现在它只用于Openswan KLIPS的mast模块。详见:http://www.openswan.org/。该选项默认为no。
saref refinfo =30 #
force userspace= yes #
debug tunnel =yes #开启tunnel的debug。
auth file =/DIR/FILENAME #指定l2tp隧道认证文件,默认为:/etc/xl2tpd/l2tp-secrets
一般情况不对[global]进行配置。
[lns default] #L2TP Network Server选项
ip range =192.168.1.128-192.168.1.254 #指定将会由LNS 分配LAC PPP 隧道的IP地址列
local ip =192.168.1.99 #被使用作为xl2tpd 自己的IP的地址
require chap =yes #要求远程连接通过CHAP进行身份验证,以进行ppp身份验证。
requireauthentication = yes #要求远程连接进行身份验证
name = LinuxVPNserver #在交互时将此作为xl2tpd 的主机名
ppp debug = yes #开启ppp的debug
pppoptfile =/etc/ppp/options.xl2tpd #指定L2TP的运行参数文件
length bit = yes #如果这个设置为yes,那么将会使用l2tp 数据包有效载荷中的长度位
注意:具体详细解释可以通过man xl2tpd.conf进行帮助查看。
举例配置如下:
服务器用10.0.0.71开启VPN服务,为客户端分配的IP地址范围是为192.168.1.10-192.168.1.254,本地的IP是192.168.0.1,这里注意如客户端是windows系统的,分配范围和本地IP要在同一个地址段里,默认以255.255.255.0的掩码计算。如果是linux系统的则不用。
配置用户名和密码 /etc/ppp/chap-secrets
在/etc/ppp/chap-secrets里配置VPN的用户名和密码,举例如下:
guanli * VPN@2024 *
配置系统网络参数
防火墙配置
firewall-cmd--permanent --add-service=ipsec
firewall-cmd--permanent --add-port=1701/udp
firewall-cmd--permanent --add-port=4500/udp
firewall-cmd--permanent --add-masquerade
firewall-cmd --reload
IP_FORWARD设置
编辑/etc/sysctl.conf文件,在里面配置如下内容:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
应用配置
sysctl –p
关闭SELinux
setenforce 0
这个命令不是永久关闭,系统重启将失效。永久配置需要修改/etc/selinux/config文件,将里面的SELINUX=enforcing改为SELINUX=disabled,需要要系统重启生效。
启动xl2tpd和ipsec服务
service ipsecrestart
service xl2tpdrestart