在当今远程办公和分布式团队日益普及的背景下,构建一个稳定、安全且易于管理的虚拟私人网络(VPN)服务变得至关重要,Linux系统因其开源、灵活和强大的网络功能,成为搭建L2TP/IPsec VPN服务器的理想平台,本文将详细介绍如何在Linux(以Ubuntu 20.04/22.04为例)上部署L2TP/IPsec协议的VPN服务,确保用户能够通过加密通道安全访问内网资源。

第一步:准备工作
确保你拥有一台运行Linux的服务器(推荐使用Ubuntu Server),并拥有root权限,你需要一个公网IP地址(静态IP更佳),以及开放必要的端口:UDP 500(IKE)、UDP 4500(NAT-T)、UDP 1701(L2TP)和TCP 22(SSH),建议使用防火墙工具如ufw或iptables进行端口管理,

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

第二步:安装必要软件包
我们使用strongSwan作为IPsec后端,xl2tpd用于L2TP隧道控制,执行以下命令安装:

sudo apt update
sudo apt install strongswan xl2tpd -y

第三步:配置IPsec(strongSwan)
编辑 /etc/ipsec.conf 文件,添加如下内容:

config setup
    charondebug="all"
    uniqueids=no
conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev1
    authby=secret
    ike=aes256-sha1-modp1024!
    esp=aes256-sha1!
conn l2tp-psk
    auto=add
    left=%any
    leftid=@your-server-ip
    right=%any
    rightsubnet=192.168.100.0/24
    also=l2tp

注意:rightsubnet 应替换为你内网使用的子网(如192.168.100.0/24),在 /etc/ipsec.secrets 中添加预共享密钥:

%any %any : PSK "your-strong-password"

第四步:配置L2TP(xl2tpd)
编辑 /etc/xl2tpd/xl2tpd.conf

[global]
port = 1701
[lns default]
ip range = 192.168.100.100-192.168.100.200
local ip = 192.168.100.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpd
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

第五步:设置PPP选项
创建 /etc/ppp/options.xl2tpd 文件,内容如下:

+mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

第六步:启用IP转发与NAT
编辑 /etc/sysctl.conf,取消注释:

net.ipv4.ip_forward=1

应用更改:sudo sysctl -p,然后配置iptables规则:

sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -s 192.168.100.0/24 -d 192.168.100.0/24 -i eth0 -o ppp0 -j ACCEPT

第七步:启动服务并测试
重启服务:

sudo systemctl restart strongswan xl2tpd
sudo systemctl enable strongswan xl2tpd

创建用户账号(可选):

sudo adduser vpnuser

客户端可通过Windows或iOS设备连接,输入服务器IP、用户名和密码,并选择“L2TP/IPsec”模式。

通过以上步骤,你已成功搭建一个基于Linux的L2TP/IPsec VPN服务器,具备高安全性、兼容性和易维护性,适用于企业级远程接入场景。

Linux下搭建L2TP/IPsec VPN服务器的完整指南,从零开始配置安全远程访问  第1张

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN