Linux下搭建L2TP/IPsec VPN服务(手把手教你配置安全远程连接)

简介: 本教程详细介绍如何在Ubuntu 22.04上搭建L2TP/IPsec VPN服务器,涵盖软件安装、IPsec与xl2tpd配置、用户添加、防火墙设置及连接测试,适合初学者快速掌握Linux下安全的VPN搭建方法。

L2TP(Layer 2 Tunneling Protocol,第二层隧道协议)是一种常用于构建虚拟专用网络(VPN)的协议。它通常与IPsec(Internet Protocol Security)结合使用,以提供数据加密和身份验证,从而保障通信的安全性。在本教程中,我们将详细讲解如何在Linux系统(以Ubuntu 22.04为例)上搭建一个基于L2TP协议的VPN服务器,即使你是小白也能轻松上手。

为什么选择L2TP/IPsec?

L2TP/IPsec 是一种成熟、稳定且被广泛支持的VPN方案。它兼容Windows、macOS、iOS、Android等主流操作系统,无需额外安装客户端即可连接。同时,IPsec提供了强大的加密机制,确保你的数据在网络传输过程中不被窃听或篡改。

准备工作

  • 一台运行 Ubuntu 22.04(或其他主流Linux发行版)的服务器,具备公网IP地址
  • root权限或具有sudo权限的用户账户
  • 确保防火墙允许UDP端口500、4500和1701的通信

第一步:安装必要的软件包

我们使用开源项目 xl2tpdstrongswan 来实现L2TP/IPsec功能。打开终端,依次执行以下命令:

   sudo apt update    sudo apt install strongswan xl2tpd -y  

第二步:配置IPsec(使用StrongSwan)

编辑IPsec配置文件 /etc/ipsec.conf

   sudo nano /etc/ipsec.conf  

清空原有内容,粘贴以下配置(请将 YOUR_SERVER_IP 替换为你的服务器公网IP):

config setup    charondebug="ike 1, knl 1, cfg 0"    uniqueids=noconn L2TP-PSK    auto=add    keyexchange=ikev1    authby=secret    type=transport    left=%any    leftprotoport=17/1701    right=%any    rightprotoport=17/%any    ike=aes256-sha1-modp1024!    rekey=no  

接下来,设置预共享密钥(PSK)。编辑 /etc/ipsec.secrets 文件:

   sudo nano /etc/ipsec.secrets  

添加如下一行(将 your_psk_here 替换为你自己的密钥,例如 MySecretKey123):

: PSK "your_psk_here"  

第三步:配置L2TP(使用xl2tpd)

编辑 /etc/xl2tpd/xl2tpd.conf

   sudo nano /etc/xl2tpd/xl2tpd.conf  

填入以下内容:

[global]listen-addr = 0.0.0.0[lns default]ip range = 192.168.10.10-192.168.10.20local ip = 192.168.10.1require chap = yesrefuse pap = yesrequire authentication = yesname = l2tpdppp debug = yespppoptfile = /etc/ppp/options.xl2tpdlength bit = yes  

然后配置PPP选项:

   sudo nano /etc/ppp/options.xl2tpd  

写入以下内容:

ipcp-accept-localipcp-accept-remotems-dns 8.8.8.8ms-dns 8.8.4.4noccpauthmtu 1280mru 1280locklcp-echo-failure 4lcp-echo-interval 30  

第四步:添加用户账号

编辑 /etc/ppp/chap-secrets 文件来添加用户:

   sudo nano /etc/ppp/chap-secrets  

格式为:用户名 服务名 密码 IP地址,例如:

john l2tpd mypassword *  

这表示用户 john 可以通过L2TP登录,密码为 mypassword,IP由服务器自动分配。

第五步:启用内核转发并启动服务

启用IPv4转发:

   echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf    sudo sysctl -p  

启动并启用服务:

   sudo systemctl restart strongswan    sudo systemctl restart xl2tpd    sudo systemctl enable strongswan    sudo systemctl enable xl2tpd  

第六步:配置防火墙(UFW示例)

如果你使用UFW防火墙,请运行:

   sudo ufw allow 500/udp    sudo ufw allow 4500/udp    sudo ufw allow 1701/udp  

连接测试

现在你可以在Windows、手机等设备上添加L2TP/IPsec VPN连接:

  • 服务器地址:你的服务器公网IP
  • 用户名:你在 chap-secrets 中设置的用户名(如 john)
  • 密码:对应密码
  • IPsec预共享密钥:你在 ipsec.secrets 中设置的PSK

常见问题排查

  • 无法连接?检查防火墙是否放行了500/4500/1701端口
  • 连接后无法上网?确认服务器已开启IP转发,并检查NAT规则(可使用iptables MASQUERADE)
  • 日志查看:使用 journalctl -u strongswantail -f /var/log/syslog

结语

通过本教程,你应该已经成功在Linux服务器上搭建了一个安全可靠的L2TP/IPsec VPN服务。这种方案不仅适用于个人远程办公,也适合小型团队使用。记住定期更新系统和软件,以确保Linux网络配置的安全性。希望这篇关于VPN设置的指南对你有所帮助!

关键词提示:本教程涵盖 L2TP协议Linux网络配置VPN设置L2TP/IPsec 四大核心主题。

来源:https://www.vps5.cn/

相关文章
|
Linux 网络安全 开发工具
centos7部署l2tp ipsec
1、查询操作系统版本 #cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 2、查询系统是否支持ppp,返回yes代表通过。 #modprobe ppp-compress-18 && echo yes 3、查询系统是否开启了tun,返回File descriptor in bad state代表通过。
8653 0
|
Ubuntu 安全 Linux
Linux Ubuntu系统安装OpenVPN服务
Linux Ubuntu系统安装OpenVPN服务
|
2月前
|
弹性计算 运维 应用服务中间件
阿里云轻量应用服务器 vs 云服务器 ECS:全方位深度对比与选购指南
在阿里云的服务器产品体系中,轻量应用服务器与云服务器 ECS 是面向不同需求的核心产品。前者以 “简单易用、高性价比” 为核心,后者以 “功能全面、弹性灵活” 为优势。本文从适用人群、业务场景、功能配置、计费价格等 8 大维度展开深度对比,结合阿里云最新优惠政策,帮你精准匹配最适合的服务器方案。
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
43109 2
配置远程拨号用户发起L2TP隧道连接示例
本文介绍如何在华为设备上配置公网IP地址、路由、L2TP用户及虚拟接口等。具体包括设置GigabitEthernet接口IP,静态路由,创建L2TP组,定义IP池,配置虚拟模板接口,启用L2TP功能并禁用隧道认证,实现用户拨号分配地址与PPP认证功能。附带详细命令行配置代码示例。
配置远程拨号用户发起L2TP隧道连接示例
|
安全 网络安全 网络虚拟化
IPSec——如何快速搭建IPSec服务
IPSec——如何快速搭建IPSec服务
1759 0
|
网络协议 网络安全 网络虚拟化
WireGuard 系列文章(四):WireGuard 快速上手
WireGuard 系列文章(四):WireGuard 快速上手
|
安全 网络虚拟化 数据安全/隐私保护
Windows 10系统自带VPN客户端配置连接PPTP VPN服务器
Windows 10系统自带VPN客户端配置连接PPTP VPN服务器
8049 1
|
监控 安全 Linux
在Linux中,如何配置VPN服务?
在Linux中,如何配置VPN服务?