您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

时间:2021-06-24 09:52:54  来源:  作者:衡水铁头哥

上次发了服务器上公网的文章,当时L2TP拨号用的是网络上的解决方案,也就是现成的脚本,一跑就OK了。像这样:

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

输入几个关键信息,脚本就自动执行完成了。我看了一下,脚本一共810行,功能很强大,系统方面支持centos 6+、Debian 7+、Ubuntu 12+。

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

但实际上有个隐藏的问题。上次部署用的是CentOS 7的系统,一切正常,重新部署之后腾讯云的CentOS仅支持8.3的镜像,安装频繁报错。

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

查看脚本内容发现,此脚本仅支持CentOS的6和7两个版本,在8上,因为软件名称和操作命令变更,无法正常安装。

既然这样,那就只能拆解代码,自己安装了。

首先找到脚本中需要的软件,或者找到执行脚本时不能正常使用的命令,用yum provides来查找命令,最后整理一下,需要安装以下软件:

yum install -y make gcc gmp-devel xmlto bison flex libpcap lsof vim man xl2tpd libreswan

修改ipsec配置文件

vim /etc/ipsec.conf

在config setup中添加以下命令,允许穿透nat建立l2tp连接。

nat_traversal=yes
CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

上图中最后一行可以看到include /etc/ipsec.d/*.conf这行代码,所以需要在/etc/ipsec.d/目录下创建IPsec与L2TP服务关联的配置文件。

vim /etc/ipsec.d/l2tp_psk.conf

文件复制以下内容,仅需修改left参数为公网网卡的IP地址。

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.8.12
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

在/etc/ipsec.d/目录下创建保存预共享密钥的文件,名字可自定义,扩展名为.secrets。

vim /etc/ipsec.d/ipsec.secrets

预共享密钥参照如下格式填写,其中,IP地址为网卡的IP地址,双引号中为预共享密钥,请自行设置。(注意字段之间用空格或者tab隔开,否则检查会报错)

10.0.8.12 %any: PSK "test123"

修改sysctl的内核支持文件。

vim /etc/sysctl.conf

可以直接用下面的内容替换掉原来的文件。

vm.swAppiness = 0
net.ipv4.ip_forward = 1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.all.promote_secondaries = 1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.lo.arp_announce=2
net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv6.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.lo.disable_ipv6=0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.printk = 5
kernel.shmmax = 68719476736
kernel.softlockup_panic = 1
kernel.sysrq = 1

修改完保存退出,执行以下命令重新加载配置文件使配置生效。

sysctl -p

重启IPsec服务,并检验ipsec服务配置。

systemctl restart ipsec

ipsec verify

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

就是图里面
/proc/sys/net/ipv4/conf/eth0/rp_filter这个文件很奇怪,使用vim无法编辑,修改权限也不行,但是可以用echo。那就用echo命令把里面的1换成0吧。

echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

修改L2TP配置文件,设置监听网卡地址和LNS的IP地址及分配的地址段。

vim /etc/xl2tpd/xl2tpd.conf

主要修改4个地方配置:

1、[global]模块中,取消listen-addr注释,并修改IP地址为网卡地址(10.0.8.12);

2、[global]模块中,取消ipsec saref = yes的注释;

3、[lns default]模块中,在ip_range后设置客户端连接服务器后LNS分配给客户端的ip地址范围;

4、[lns default]模块中,将local ip设置为LNS的网关IP地址。

如下图:

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

修改xl2tpd配置文件中的安全配置。

vim /etc/ppp/options.xl2tpd

文本中增加验证字段的算法要求,DNS视具体情况进行调整。

require-mschap-v2

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

将L2TP服务器的账户与密码写入/etc/ppp/chap-secrets文件。

vim /etc/ppp/chap-secrets

依次写用户名、服务名、密码、IP地址,实际上服务名与IP地址都写成星号即可,主要设置用户名与密码,以空格或tab隔开。填写服务名用于多服务场景,填写IP地址用于指定该用户登录后获取的IP地址为某个固定地址。

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

然后就是防火墙的规则调整了,首先停止firewalld服务并禁用。

systemctl stop firewalld

systemctl mask firewalld

安装iptables服务。

yum install -y iptables iptables-services

清空iptables规则。

iptables -P INPUT ACCEPT

iptables -F

iptables -X

iptables -Z

执行命令进行规则配置,其中转发相关的地址段请设置与L2TP地址段一致。

iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -I FORWARD -s 172.16.113.0/24 -j ACCEPT
iptables -I FORWARD -d 172.16.113.0/24 -j ACCEPT
iptables -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 1701 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4500 -j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -A INPUT -m policy --dir in --pol ipsec -j ACCEPT
iptables -A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

上述命令执行完后,保存iptables规则并重启服务。

service iptables save

systemctl restart iptables

走完上面的流程,现在就需要检查iptables、ipsec、xl2tpd三个服务是否是正常运行了。

systemctl status iptables

systemctl status ipsec

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

systemctl status xl2tpd

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

这个地方出了两次错误,第一次启动失败是内核重新挂载l2tp_ppp失败,需要修改
/usr/lib/systemd/system/xl2tpd.service配置文件,注释掉相关配置。

ExecStartPre=/sbin/modprobe -q l2tp_ppp
CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

然后执行以下命令重启服务。

systenctl daemon-reload

systemctl restart xl2tpd

第二个报错就相对简单,但是不好找,我把LNS的本地地址配错了,一直提示地址绑定失败。所以操作的时候还是要细心。

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

最后再看一下连接成功的页面。

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

 

得益于高链路质量,延迟只有5ms左右。

今天,你学废了吗?



Tags:L2TP服务器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
上次发了服务器上公网的文章,当时L2TP拨号用的是网络上的解决方案,也就是现成的脚本,一跑就OK了。像这样: 输入几个关键信息,脚本就自动执行完成了。我看了一下,脚本一共810行,功能...【详细内容】
2021-06-24  Tags: L2TP服务器  点击:(414)  评论:(0)  加入收藏
▌简易百科推荐
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  干程序那些事    Tags:CentOS7镜像   点击:(1)  评论:(0)  加入收藏
前言在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? 如何实现断线后重...【详细内容】
2021-12-24  程序猿阿嘴  CSDN  Tags:Netty   点击:(12)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  有云转晴    Tags:chrome   点击:(7)  评论:(0)  加入收藏
一. HTTP gzip压缩,概述 request header中声明Accept-Encoding : gzip,告知服务器客户端接受gzip的数据 response body,同时加入以下header:Content-Encoding: gzip:表明bo...【详细内容】
2021-12-22  java乐园    Tags:gzip压缩   点击:(8)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  SofM    Tags:Centos7   点击:(7)  评论:(0)  加入收藏
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  卷毛琴姨    Tags:云服务器   点击:(6)  评论:(0)  加入收藏
参考资料:Hive3.1.2安装指南_厦大数据库实验室博客Hive学习(一) 安装 环境:CentOS 7 + Hadoop3.2 + Hive3.1 - 一个人、一座城 - 博客园1.安装hive1.1下载地址hive镜像路径 ht...【详细内容】
2021-12-20  zebra-08    Tags:Hive   点击:(9)  评论:(0)  加入收藏
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  网安人    Tags:服务器   点击:(7)  评论:(0)  加入收藏
项目中,遇到了一个问题,就是PDF等文档不能够在线预览,预览时会报错。错误描述浏览器的console中,显示如下错误:nginx代理服务报Mixed Content: The page at ******** was loaded...【详细内容】
2021-12-17  mdong    Tags:Nginx   点击:(7)  评论:(0)  加入收藏
转自: https://kermsite.com/p/wt-ssh/由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录 以及 通过密钥实现免密码登录Dec 15, 2021阅读时长: 6 分钟简介Windo...【详细内容】
2021-12-17  LaLiLi    Tags:SSH连接   点击:(16)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条