11
8月
2023
5 分钟内通过 L2TP 建立 VPN
17:04

5 分钟内通过 L2TP 建立 VPN

11 8月 2023 17:04

本文介绍如何在 Linux Mint 21.2 下设置 L2TP/IPSec VPN。

简介

之前,我使用 PPTP 协议配置了服务器和客户端。 与 PPTP 不同,L2TP 协议没有漏洞,而且连接速度也快得多。

使用 VPN 类型 L2TP/IPSec PSK

[标记](Инструкция была переработана и проверена 04.12.2023 для совместимости с Ubtuntu 20.04 и 22.04 / Linux Mint 21 / LxLE).[/标记]

删除利伯斯旺

更新 apt 缓存:

sudo apt update

此命令将删除 libreswan 并自动安装 Strongswan:

sudo apt-get 删除 libreswan

在systemd中启动并注册strongswan服务:

sudo systemctl strongswan-starter.service start
sudo systemctl strongswan-starter.service enable

重新安装 NetworkManager 的 Strongswan 插件

sudo apt 重新安装网络管理器-l2tp 网络管理器-l2tp-gnome

生成预共享密钥

任何序列都可以用作公钥(通常推荐 12345678 :)
但最好至少使用 128 位密钥。

dd if=/dev/random count=16 bs=1 | xxd -ps

PSK 密钥应在计算机之间安全传输(不是通过电子邮件,而是通过另一个 VPN 或使用 USB 闪存驱动器)。

Setting up an L2TP server

我们设置了一个路由器,在其上启动 L2TP VPN - 输入共享密钥、用户名和密码。

General settings - Change component set
更改 Zyxel 路由器组件集

Adding VPN L2TP/IPSec on a Zyxel router

Adding an L2TP/IPsec server

我们配置 VPN 服务器。 为此,请转到菜单 「应用」 窗口左侧,单击名称 VPN L2TP/IPSec。 将打开用于设置 VPN 服务器的屏幕:
基本 L2TP/IPSec 服务器设置
向用户授予权限(之前添加的用户名和密码)。
我们为用户提供连接的能力

在 Ubuntu/Linux Mint 客户端上启动服务

sudo systemctl enable ipsec.service
sudo systemctl start ipsec.service

创建到L2TP服务器的连接(在客户端设置L2TP)

以下设置适用于 L2TP/IPSec PSK。

在 Ubuntu / Linux Mint 系统托盘中,左键单击网络图标

  • VPN 连接 - 设置 VPN
    L2TP-01

从下拉列表中选择 VPN 类型,而不是以太网
L2TP-02

类型“第 2 层隧道协议 (L2TP)"

L2TP-03

“创建”按钮。
L2TP-04

协议参数必须与服务器(即家庭路由器)相对应:

  • 网关(网关-白色家庭路由器的IP地址)
  • 输入 - 密码
    *用户名
  • 密码
    L2TP-05

    *启用到 L2TP 主机的 IPSec 隧道*
    预共享密钥**
    L2TP-06

在系统托盘中,单击网络图标 - VPN 连接并选择 L2TP 连接。

就我而言,连接到 VPN 立即生效。
已连接

如果没有,请检查参数(服务器IP地址、预共享密钥、用户名、密码、连接能力)。
在客户端,由于它是发起方,因此不需要在防火墙上打开端口。 在服务器上,端口 1701/UDP、500/UDP 和 4500/UDP 必须打开以供输入(当您启用 VPN L2TP/IPSec 应用程序时,防火墙规则将自动添加到 Zyxel Keenetik)。

L2TP 协议在第二层 OSI 数据包级别运行,在俄罗斯自治系统之间传输时,不会被俄罗斯联邦境内的移动运营商或固定互联网提供商阻止。 例如,Megafon 和 Rostelecom 之间。

在客户端配置VPN连接路由

如果您没有在连接属性中配置路由,则只有路由器(网关)可用。

要访问本地家庭网络上的所有计算机,您需要在客户端的连接属性中配置通过网关的路由

1)首先,打开连接属性(在系统托盘的网络管理器面板上,按鼠标左键 -“VPN 连接”-“连接设置”。将打开一个窗口,其中包含连接列表:
客户端上的路由

选择所需的 VPN 连接并单击齿轮 “属性”

我们开展 路由配置- 在书签上 IPv4 按“路线”,那么“添加”:
添加路线
填写参数:

  • 地址 - 192.168.100.0

  • 网络掩码 - 255.255.255.0

  • 网关 - 192.168.100.1

  • 公制 - 1

(我们指示本地家庭网络的地址,而不是 IP 地址 192.168.100.0,例如 192.168.77.0,

指定家庭网络网关的 IP 地址,而不是网关 192.168.100.1,例如 192.168.77.1)。

通过 VPN,您可以访问家庭网络中的计算机(FTP 等)。 客户也可以从其家庭网络访问互联网。

可以在运行 Android 操作系统的智能手机上执行相同的设置。
在 Android 上设置 VPN
在 Android 上设置 VPN - 续

添加日期为2023年11月27日,修正日期为2026年3月31日:

如果来自 PC 的部分流量经过 VPN 隧道

问题: 与服务器的 VPN 连接已成功建立,但部分客户端流量未通过 VPN。

解决方案:在客户端(工作PC或笔记本电脑)上,配置默认路由。*

1) 删除了带有默认网关的旧路由

sudo ip route del default via 192.168.1.1

其中 192.168.1.1 是工作 PC 路由器的 IP 地址。

2)_添加了一条新路由——通过ppp0设备连接到家庭VPN的默认网关。

sudo ip route add default via 192.168.100.1 dev ppp0

其中:
192.168.100.1 - 安装 VPN 服务器的家庭本地网络的网关(路由器)的 IP 地址,
ppp0 - L2TP VPN 设备名称。

我将脚本保存在我的主文件夹中,名称为 gw.sh 并设置权限:
chmod +x gw.sh

示例脚本:
<代码>#!/bin/sh
sudo ip route del 默认通过 192.168.1.1
sudo ip 路由通过 192.168.100.1 dev ppp0 添加默认值

使用以下命令运行脚本:

./gw.sh

如果您查看 Wireshark,运行脚本后,来自工作 PC 的数据包仅发送至家庭 PC 的外部 IP 地址。 不再有数据包绕过隧道,即所有流量都包含在通往家庭 PC 的 VPN 隧道中。

home VPN 网络断开连接后,您可以使用脚本将默认网关更改为原始网关来恢复网络。

<代码>#!/bin/sh
sudo ip 路由通过 192.168.1.1 添加默认值

其中 192.168.1.1 是工作中的网络路由器的 IP 地址。

添加执行权(eXecute):

sudo chmod +x gw-off.sh

连接家庭 VPN 的客户端流量 脚本执行前:
之前
连接家庭 VPN 的客户端流量 脚本执行后:
之后
与外部 IP 地址的连接已消失。 所有交通都经过隧道。
使用这种方法,Torrent 可能无法工作,但 WWW 浏览却可以正常工作。

与 VPN 断开连接后,必须运行用于恢复设置的 gw-off.sh 脚本。

./gw-off.sh

或者,在与家庭 VPN 断开连接后,您可以使用以下命令重新启动网络。

sudo 服务网络重启


相关出版物