CentOS_7环境搭建
1、安装l2tpd
(1)安装EPEL源
yum install -y epel-release
//Extra Packages for Enterprise Linux,在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的rpm包也不够丰富。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。相当于一个第三方源。
(2)安装xl2tpd
yum install xl2tpd
//安装xl2tpd
(3)安装libreswan
yum install -y libreswan
//LibreSwan是IPsec协议的开源实现,支持基于预共享密钥的认证、支持基于公钥的认证、支持IKE v1/v2版本的密钥交换、支持NSS加密库,还支持Xauth和DNSSec。CentOS系统yum仓库中提供了libreswan的包。(IPsec)
2、修改IPsec配置文件
sudo vim /etc/ipsec.conf
//修改ipsec配置文件,添加以下命令:
3、创建IPsec与L2TP服务关联的配置文件
vim /etc/ipsec.d/l2tp_psk.conf
//在/etc/ipsec.d/目录下创建IPsec与L2TP服务关联的配置文件
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
dpddelay=30
dpdtimeout=120
dpdaction=clear
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=10.0.30.177 # 网卡IP
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
//left参数为公网网卡的IP地址
4、创建保存预共享密钥的文件
vim /etc/ipsec.d/ipsec.secrets
//在/etc/ipsec.d/目录下创建保存预共享密钥的文件
: PSK "123456"
//双引号中为预共享密钥,可以自行设置
5、设置l2tp的账号等信息
vim /etc/ppp/chap-secrets
//找到对应参数,修改成如下:
//用户名:vpnuser
//密码:123456
6、修改内核参数
(1)修改sysctl的内核支持文件
vim /etc/sysctl.conf
//修改sysctl的内核支持文件
//添加如下配置到文件中
sysctl -p
//重新加载配置文件使配置生效
(2)检验IPsec服务配置
ipsec verify
//检验ipsec服务配置
vim /etc/sysctl.conf
//再次修改sysctl的内核支持文件
//将报错的ENABLED项添加到文件中
net.ipv4.conf.ens33.rp_filter = 0
net.ipv4.conf.virbr0.rp_filter = 0
net.ipv4.conf.virbr0-nic.rp_filter = 0
sysctl -p
//再次重新加载配置文件使配置生效
ipsec verify
//再次检验ipsec服务配置,确认没有报错项
(3)重启IPsec服务
systemctl restart ipsec
//重启IPsec服务
7、修改L2TP配置文件
vim /etc/xl2tpd/xl2tpd.conf
//修改监听网卡地址:
//修改分配的地址段:
8、修改安全配置
vim /etc/ppp/options.xl2tpd
//修改xl2tpd配置文件中的安全配置
//修改如下参数:
9、安装和配置防火墙规则
(1)停止firewalld服务并禁用
systemctl stop firewalld
systemctl mask firewalld
(2)安装iptables服务
yum install iptables-services
(3)配置iptables规则
//使用ifconfig查看网卡
sudo iptables -t nat -A POSTROUTING -s 192.168.7.10/24 -o ens33 -j MASQUERADE
sudo iptables -I FORWARD -s 192.168.7.10/24 -j ACCEPT
sudo iptables -I FORWARD -d 192.168.7.10/24 -j ACCEPT
sudo iptables -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1701 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 500 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 4500 -j ACCEPT
sudo iptables -A INPUT -p esp -j ACCEPT
sudo iptables -A INPUT -m policy --dir in --pol ipsec -j ACCEPT
sudo iptables -A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
//NAT转发的这条信息根据自己之前的配置修改,自己的网卡通过ifconfig查看,192.168.7.10为之前步骤7设置的local ip
(4)保存iptables规则
service iptables save
(5)重启防火墙
systemctl restart iptables
10、检查iptables、ipsec、xl2tpd三个服务是否正常运行
(1)检查iptables服务
systemctl status iptables
(2)检查ipsec服务
systemctl status ipsec
(3)检查xl2tpd服务
systemctl status xl2tpd
CentOS_7环境搭建可能遇到的问题
1、l2tp服务器常用指令
systemctl start xl2tpd 启动xl2tp服务
systemctl enable xl2tpd 设置开机自启
systemctl restart xl2tpd 重启pptpd服务
systemctl status xl2tpd 查看状态
2、虚拟机重启后l2tp服务器没启动
systemctl start xl2tpd 启动xl2tp服务
测试步骤(可以使用拥有L2TP功能的路由器验证L2TP服务器是否搭建成功)
路由器管理界面配置
//使用ifconfig查看l2tp服务器
//在WebUI界面配置L2TP的服务器和账号
验证连接成功
//当客户端通过l2tp协议连接时,CentOS通过ifconfig或ip add可以看到连接信息
//串口下ifconfig可以查询到l2tp-vpn信息
版权归原作者 peppermint tea 所有, 如有侵权,请联系我们删除。