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

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

上次发了服务器上公网(低成本用L2TP把物理服务器放到了公网,省了几万块)的文章,当时L2TP拨号用的是网络上的解决方案,也就是现成的脚本,一跑就OK了。像这样:

1677216074913.jpg

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

1677216094175.jpg

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

1677216101132.jpg

查看脚本内容发现,此脚本仅支持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

1677216148642.jpg

上图中最后一行可以看到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

1677216219579.jpg

在/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

1677216297797.jpg

就是图里面/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地址。
/


如下图:

1677216344218.jpg

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

vim /etc/ppp/options.xl2tpd

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

require-mschap-v2

1677216369325.jpg

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


/

vim /etc/ppp/chap-secrets

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

1677216398553.jpg

然后就是防火墙的规则调整了,首先停止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

1677216472002.jpg

 systemctl status xl2tpd

1677216485764.jpg

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

ExecStartPre=/sbin/modprobe -q l2tp_ppp

1677216505245.jpg

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


/

systenctl daemon-reload
        systemctl restart xl2tpd

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

1677216538543.jpg

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

1677216543238.jpg

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

       今天,你学废了吗?

相关文章
监控 安全 Linux
138 0
|
4月前
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
5月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
252 0
|
5月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
526 17
|
7月前
|
Kubernetes Ubuntu Linux
阿里云服务器使用centos还是ubuntu?
在选择阿里云服务器操作系统时,CentOS和Ubuntu各有优势。CentOS以企业级稳定性著称,适合数据库、ERP等长期稳定需求;而Ubuntu开发者友好,支持最新硬件与功能,更适合开发/测试环境及云计算场景。两者在阿里云上均有官方镜像支持,性能差异可忽略。无特殊需求时推荐Ubuntu 22.04 LTS,若需RHEL生态则选AlmaLinux。根据实际需求、团队技术栈及场景灵活决策,阿里云还支持更换系统盘降低试错成本。
|
9月前
|
存储 安全 Linux
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
396 18
|
9月前
|
存储 运维 网络协议
【Syslog】Centos下的syslog服务器配置
通过本文的配置指导,您不仅学会了如何安装和配置 `rsyslog`,还掌握了如何在防火墙中开放必要的端口,并验证服务器的配置是否正确。希望这些知识能够帮助您更好地管理和维护您的Linux系统。
1624 15
|
11月前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
271 1
|
存储 网络协议 Linux
AWS实操-EC2-创建购买linux(centos)EC2服务器
AWS实操-EC2-创建购买linux(centos)EC2服务器