CentOS 7 搭建 L2TP VPN 完整教程

目录

  1. 什么是L2TP VPN
  2. 为什么选择CentOS 7搭建L2TP VPN
  3. CentOS 7搭建L2TP VPN的前提条件
  4. CentOS 7搭建L2TP VPN的步骤 4.1. 安装必要软件包 4.2. 配置IPSec 4.3. 配置L2TP 4.4. 防火墙设置 4.5. 验证VPN服务是否正常运行
  5. CentOS 7 L2TP VPN常见问题解答 5.1. VPN连接失败怎么办? 5.2. 如何查看VPN日志信息? 5.3. 如何停止或重启VPN服务? 5.4. 如何修改VPN用户名和密码?

什么是L2TP VPN

L2TP (Layer 2 Tunneling Protocol) 是一种隧道协议,可以将 OSI 模型第二层的数据包封装并传输到远程网络。L2TP通常与 IPSec (Internet Protocol Security) 协议配合使用,提供加密和认证功能,构成一种安全可靠的虚拟专用网络(VPN)解决方案。

为什么选择CentOS 7搭建L2TP VPN

CentOS 7 是一个稳定、安全的 Linux 发行版,非常适合搭建VPN服务。相比其他 Linux 发行版,CentOS 7具有以下优势:

  • 安全性强:CentOS 7默认启用SELinux,可以有效防御系统攻击。
  • 稳定性好:CentOS 7基于 RHEL (Red Hat Enterprise Linux)构建,拥有出色的系统稳定性。
  • 社区活跃:CentOS 7有着广泛的用户群和活跃的社区,能获得丰富的技术支持。
  • 免费开源:CentOS 7完全免费使用,无需任何授权费用。

CentOS 7搭建L2TP VPN的前提条件

在开始搭建L2TP VPN之前,您需要准备以下条件:

  • 一台运行CentOS 7的服务器
  • 一个可以访问公网的IP地址
  • 一个合适的VPN用户名和密码

CentOS 7搭建L2TP VPN的步骤

安装必要软件包

首先,我们需要安装几个必要的软件包:

yum install -y epel-release yum install -y ppp xl2tpd ipsec-tools

配置IPSec

  1. 编辑 /etc/ipsec.conf 文件,添加以下内容:

    config setup protostack=netkey nat_traversal=yes oe=off virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.42.0/24

    conn L2TP-PSK rightsubnet=vhost:%priv also=L2TP-PSK-nonat

    conn L2TP-PSK-nonat authby=secret pfs=no auto=add keyingtries=3 rekey=no ikelifetime=8h keylife=1h type=transport left=%defaultroute leftid=%defaultroute right=%any rightproto=udp rightport=1701 ike=aes256-sha256-modp1024! esp=aes256-sha256-modp1024!

  2. 编辑 /etc/ipsec.secrets 文件,添加VPN用户名和密码:

    %any %any : PSK “your_ipsec_pre_shared_key”

    "your_ipsec_pre_shared_key" 替换为您自定义的IPSec预共享密钥。

配置L2TP

  1. 编辑 /etc/xl2tpd/xl2tpd.conf 文件,添加以下内容:

    [global] port = 1701

    [lns default] ip range = 10.0.0.2-10.0.0.254 local ip = 10.0.0.1 require chap = yes refuse pap = yes require authentication = yes name = L2TP pppoptfile = /etc/ppp/options.xl2tpd length bit = yes

  2. 编辑 /etc/ppp/options.xl2tpd 文件,添加以下内容:

    ipcp-accept-local ipcp-accept-remote ms-dns 8.8.8.8 ms-dns 8.8.4.4 noccp auth crtscts idle 1800 mtu 1410 mru 1410 nodefaultroute debug lock proxyarp connect-delay 5000

防火墙设置

如果您的CentOS 7系统开启了防火墙,需要添加以下规则:

firewall-cmd –permanent –add-port=500/udp firewall-cmd –permanent –add-port=4500/udp firewall-cmd –permanent –add-port=1701/tcp firewall-cmd –permanent –add-port=1701/udp firewall-cmd –reload

验证VPN服务是否正常运行

  1. 启动 IPSec 和 L2TP 服务:

    systemctl start ipsec systemctl start xl2tpd

  2. 检查服务状态:

    systemctl status ipsec systemctl status xl2tpd

    如果服务状态正常,说明 L2TP VPN 服务已经成功搭建。

CentOS 7 L2TP VPN常见问题解答

VPN连接失败怎么办?

如果您无法成功连接到 L2TP VPN,可以检查以下几个方面:

  • 确保服务器的公网 IP 地址正确无误,防火墙是否已开放必要端口。
  • 检查 IPSec 和 L2TP 服务是否正常启动,查看相关日志信息。
  • 确保 VPN 用户名和密码输入正确。
  • 尝试重启 VPN 服务或服务器。

如何查看VPN日志信息?

您可以查看以下日志文件来排查 VPN 连接问题:

  • /var/log/messages: 查看系统和服务的常规日志信息
  • /var/log/ipsec.log: 查看 IPSec 相关的日志
  • /var/log/xl2tpd.log: 查看 L2TP 相关的日志

如何停止或重启VPN服务?

可以使用以下命令停止或重启 VPN 服务:

停止服务:

systemctl stop ipsec systemctl stop xl2tpd

重启服务:

systemctl restart ipsec systemctl restart xl2tpd

如何修改VPN用户名和密码?

如果需要修改 VPN 的用户名和密码,可以按以下步骤操作:

  1. 编辑 /etc/ipsec.secrets 文件,修改 IPSec 预共享密钥。
  2. 编辑 /etc/xl2tpd/xl2tpd.conf 文件,修改 VPN 用户名和密码。
  3. 重启 IPSec 和 L2TP 服务使修改生效。
正文完