HCRM博客

如何在CentOS上配置L2TP VPN?

在CentOS上搭建L2TP/IPsec VPN环境,可以为用户提供安全的远程访问解决方案,下面将详细介绍如何在CentOS系统上部署L2TP/IPsec VPN,包括安装所需的软件包、配置IPsec和xl2tpd服务、设置预共享密钥以及用户管理等步骤。

一、安装所需软件包

首先需要安装必要的软件包,包括libreswan、xl2tpd等,可以通过以下命令进行安装:

如何在CentOS上配置L2TP VPN?-图1
(图片来源网络,侵权删除)
sudo yum install y epelrelease
sudo yum install y make gcc gmpdevel xmlto bison flex xmlto libpcapdevel lsof vimenhanced man
sudo yum install y xl2tpd libreswan

二、配置IPsec

1、修改IPsec配置文件:编辑/etc/ipsec.conf文件,添加以下内容以支持NAT穿透:

   nat_traversal=yes

2、创建IPsec与L2TP关联的配置文件:由于默认情况下该文件不存在,需要手动创建并编辑/etc/ipsec.d/l2tp_psk.conf文件:

   conn L2TPPSKNAT
       rightsubnet=vhost:%priv
       also=L2TPPSKnoNAT
   conn L2TPPSKnoNAT
       authby=secret
       pfs=no
       auto=add
       keyingtries=3
       dpddelay=30
       dpdtimeout=120
       dpdaction=clear
       rekey=no
       ikelifetime=8h
       keylife=1h
       type=transport
       left=<your_public_ip>
       leftprotoport=17/1701
       right=%any
       rightprotoport=17/%any

<your_public_ip>替换为服务器的实际公网IP地址。

3、配置预共享密钥:编辑/etc/ipsec.d/ipsec.secrets文件,添加以下内容:

   <your_public_ip> %any: PSK "your_preshared_key"

<your_public_ip>替换为服务器的实际公网IP地址,并将your_preshared_key替换为实际的预共享密钥。

4、修改内核参数:编辑/etc/sysctl.conf文件,确保以下参数被设置为合适的值:

如何在CentOS上配置L2TP VPN?-图2
(图片来源网络,侵权删除)
   vm.swappiness = 0
   net.ipv4.ip_forward = 1
   net.ipv4.neigh.default.gc_stale_time=120
   net.ipv4.conf.all.rp_filter=0
   net.ipv4.conf.default.rp_filter=0
   net.ipv4.conf.default.arp_announce = 2
   net.ipv4.conf.all.arp_announce=2
   net.ipv4.tcp_max_tw_buckets = 5000
   net.ipv4.tcp_syncookies = 1
   net.ipv4.tcp_max_syn_backlog = 1024
   net.ipv4.tcp_synack_retries = 2
   net.ipv4.conf.lo.arp_announce=2
   net.ipv4.conf.default.accept_redirects = 0
   net.ipv4.conf.default.send_redirects = 0
   net.ipv4.conf.default.accept_source_route = 0

保存后运行sysctl p使配置生效。

三、配置xl2tpd

1、修改服务配置文件:编辑/etc/xl2tpd/xl2tpd.conf文件,根据需要调整配置,

   [lns default]
   listen_addr = <your_local_ip>
   services = l2tp

<your_local_ip>替换为服务器的实际内网IP地址。

2、配置用户认证:编辑/etc/ppp/chapsecrets文件,添加VPN用户信息:

   username password

使用openssl passwd 1 'password'生成MD5加密的密码字符串替换上述password部分。

四、启动并测试服务

1、重启服务:执行以下命令重启IPsec和xl2tpd服务:

   sudo systemctl restart ipsec
   sudo systemctl restart xl2tpd

2、检查服务状态:确保两个服务都已成功启动并正在运行。

3、连接测试:使用客户端设备(如Windows 10)尝试连接到新配置的L2TP/IPsec VPN,输入之前设置的用户名、密码以及预共享密钥。

五、多用户支持

如需添加更多用户,只需在/etc/ppp/chapsecrets文件中按相同格式追加条目即可,每个用户的密码同样需要使用openssl passwd 1命令生成MD5加密字符串。

六、FAQs

1、Q: 如何更改VPN服务器的IP地址?

A: 在/etc/ipsec.d/l2tp_psk.conf文件中修改left=<your_public_ip>行,将<your_public_ip>替换为新的公网IP地址,同时更新/etc/ppp/chapsecrets中的相关条目,如果使用了特定的IP绑定。

2、Q: 忘记预共享密钥怎么办?

A: 如果忘记了预共享密钥,需要重新配置IPsec服务,删除或注释掉现有的/etc/ipsec.d/ipsec.secrets中相关的预共享密钥条目,然后添加新的条目,之后重启IPsec服务以应用更改,这将导致所有使用旧预共享密钥的连接失效,直到它们也被更新为止。

分享:
扫描分享到社交APP
上一篇
下一篇