行业知识
如何在Debian/Ubuntu服务器上架设L2TP/IPSecVPN
Aug.13.2024
在现代网络环境中,VPN(虚拟私人网络)成为了保护个人隐私以及安全性的重要工具。L2TP/IPSec VPN 是一种可靠的选择,它结合了 L2TP(第二层隧道协议)和 IPSec(互联网协议安全),技术上可以提供安全的数据传输。下面将介绍在 Debian 或 Ubuntu 服务器上搭建 L2TP/IPSec VPN 的详细步骤。
准备工作是非常重要的一步。在开始安装之前,确保你的系统是最新的,运行以下命令以更新系统源和软件包:
```bash
sudo apt update
sudo apt upgrade
```
接下来,安装必要的软件包,包括 `strongswan` 和 `xl2tpd`。通过下面的命令安装这两个软件包:
```bash
sudo apt install strongswan xl2tpd
```
安装完成后,你需要配置 IPSec 和 L2TP,确保这两个组件正常联动。
IPSec 的配置文件位于 `/etc/ipsec.conf` 中,你需要编辑这个文件并添加以下配置:
```plaintext
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/255.255.255.0
authby=secret
include /var/lib/strongswan/ipsec.conf
```
这里的 `nat_traversal` 选项用于启用 NAT 穿透功能,`virtual_private` 定义了可以接受的虚拟网络。采用 `authby=secret` 表示采用共享密钥进行身份验证。
在同一目录中,还需要创建一个 `/etc/ipsec.secrets` 文件,来配置共享密钥。内容如下:
```plaintext
: PSK "your_shared_secret"
```
将 `your_shared_secret` 替换为你自己选择的密钥,确保这个密钥复杂、难以被猜测。
接下来,配置 L2TP。编辑 `/etc/xl2tpd/xl2tpd.conf` 文件并添加以下内容:
```plaintext
[global]
listen-addr = your_server_ip
[lns]
ip range = 10.0.0.2-10.0.0.100
local ip = 10.0.0.1
require chap = yes
refuse pap = yes
require authentication = yes
name = L2TPVPN
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
```
在这个配置文件中,`your_server_ip` 应使用你服务器的实际 IP 地址。`ip range` 指定了可以分配给 VPN 客户端的 IP 地址,`local ip` 是 L2TP 服务器的 IP 地址。
继续编辑 PPP 配置。在 `/etc/ppp/options.xl2tpd` 中添加如下内容:
```plaintext
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
nologin
refuse-vj
```
在这个选项文件中,配置了 DNS 的设置,选用了 Google 的 DNS 服务器。确保 `require-mschap-v2` 被包含在內,以确保客户端使用更强的身份验证协议。
完成所有配置后,重启相关服务以使更改生效。执行以下命令:
```bash
sudo systemctl restart strongswan
sudo systemctl restart xl2tpd
```
在重启服务之前,可以通过系统日志确认没有错误发生,可以使用以下命令检查日志:
```bash
sudo journalctl -u strongswan
sudo journalctl -u xl2tpd
```
为了确保你的服务能够正常工作,需要在防火墙上开放必要的端口。对于 L2TP/IPSec VPN,通常打开 UDP 1701、UDP 500 和 UDP 4500 端口。可以使用以下 UFW 命令进行设置:
```bash
sudo ufw allow 1701/udp
sudo ufw allow 500/udp
sudo ufw allow 4500/udp
```
完成防火墙设置后,检查防火墙状态,确保允许的端口已经生效。
到这里,VPN 服务器的基本设置已完成。现在可以在客户端进行连接测试。支持 L2TP/IPSec 的操作系统,包括 Windows、MacOS 和 Android,用户只需输入服务器 IP