在CentOS上搭建L2TP/IPsec VPN环境,可以为用户提供安全的远程访问解决方案,下面将详细介绍如何在CentOS系统上部署L2TP/IPsec VPN,包括安装所需的软件包、配置IPsec和xl2tpd服务、设置预共享密钥以及用户管理等步骤。
一、安装所需软件包
首先需要安装必要的软件包,包括libreswan、xl2tpd等,可以通过以下命令进行安装:
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
文件,确保以下参数被设置为合适的值:
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服务以应用更改,这将导致所有使用旧预共享密钥的连接失效,直到它们也被更新为止。