如何为VPN设置Linux断开开关

A Linux killswitch is a must for any serious Linux VPN user. It guards your data against leaking to the internet by preventing anyone from accessing your data even if disconnected from the VPN. It also ensures that all information remains confidential regardless of what happens in between.

对于网络犯罪分子来说,灭活开关是一场噩梦。这是一个显著的障碍,阻碍他们达到目标。如果由于计算机或手机冻结、死机,或者您意外切断了连接,即使只有一秒钟,只要您启用了灭活开关,任何人都无法访问那些数据。

先决条件

要跟随操作,您将需要:

  • 用于连接到VPN提供商的配置文件。本文使用NordVPN作为VPN提供商。
  • A Ubuntu device with the OpenVPN client. The examples will use Ubuntu 20.04 and OpenVPN 2.5.3.

安装简单防火墙(UFW)

在本教程中,Linux灭活开关取决于防火墙的配置。首先,从在设备上安装简单防火墙(UFW)并设置防火墙以充当灭活开关开始。

在深入之前,请确保您的Linux发行版是最新的,否则您的UFW防火墙可能无法正常工作。例如,UFW可能无法在启动时加载设置,或者添加/删除的规则无法加载。

1. 运行sudo apt install ufw -y来安装防火墙。

大多数Ubuntu发行版默认安装了UFW防火墙,因此您可能已经安装了UFW。

2. 使用sudo systemctl start ufw启动UFW服务。

3. 检查UFW安装是否成功。运行sudo systemctl status ufw命令,如果成功,输出将显示绿色中的ctive(已退出)。如下所示。

Verifying that UFW is installed and running

4. 使用sudo ufw enable启动UFW。当询问是否要继续操作(y|n)?时,按Y,然后按Enter

Enabling UFW on Ubuntu

允许远程访问协议

现在防火墙已安装完成,您需要配置UFW以允许VPN使用的任何协议。

首先确保您未被锁定在您的客户端中:如果OpenVPN连接出现问题,您可能需要通过SSH登录。如果连接断开,并且您无法通过SSH登录,则需要物理访问设备以重新登录。

1. 使用sudo ufw allow ssh命令允许SSH连接。UFW防火墙将在/etc/services文件中读取端口和协议,并相应地打开端口。您可以检查下面的命令输出。

Allowing SSH Connections on Ubuntu

强烈建议通过要求用户在通过OpenVPN连接时进行SSH密钥验证来增加额外的安全层。该程序将防止暴力攻击和未经授权的连接。

2. 接下来,您需要添加规则以允许VNC协议,通过允许相应端口上的流量。

关于VNC协议,它是可选的。VNC允许远程访问,类似于SSH。VNC提供了图形控制台,而SSH只允许文本控制台。使用sudo ufw allow 5901:5910/tcp命令允许VNC流量。

这些命令将会产生下面这样的输出。

Allowing remote access protocols on Ubuntu with UFW

3. 添加规则后,请确保它们已成功应用。sudo ufw show added命令将列出所有添加的规则,如下所示。

Checking UFW existing rules

配置VPN断开开关

在本节中,您将学习如何使用UFW防火墙设置实际的断开开关。首先运行以下两个命令。

  • sudo ufw default deny outgoing
  • sudo ufw default deny incoming

ufw default deny命令将阻止所有出站/入站流量,除了在前几节中明确允许的SSH连接和远程协议。您可以在下面的截图中看到命令的结果。

Blocking traffic with UFW

接下来,向UFW规则集添加一个例外,以便您的机器可以连接到VPN服务器:您将需要您的VPN服务器配置文件。在本教程中,OpenVPN文件被命名为ata.ovpn,并从NordVPN网站下载。

您的OpenVPN配置文件名可能不同。本教程使用“ata”的命名约定,但您可以根据需要自行命名!

接下来,使用以下命令查看ata.opvn OpenVPN配置文件的内容:sudo head /etc/ata.ovpn。结果输出包括连接的VPN服务器的端口协议IP地址等信息,以下以NordVPN为示例。

为了创建正确的UFW命令,请注意配置文件中输出的端口协议公共IP地址信息。

Opening an OpenVPN config file, the above example is for NordVPN.

接下来,按如下方式创建ufw allow out命令:sudo ufw allow out to 69.28.83.134 port 1194 proto udp。如您所见,使用的IP地址和端口来自以remote开头的配置行,协议来自以proto开头的配置行。

此示例使用NordVPN作为VPN提供商。对于NordVPN,必须打开1194 UDP端口。例如,如果您使用Express VPN,则必须打开1195 UDP端口,而不是1194端口。每个VPN提供商可能有独特的UDP端口。

为OpenVPN创建防火墙例外

当然,为了正确使用,您必须允许OpenVPN通过防火墙。 到目前为止,您已经阻止了除了一些端口之外的所有传入和传出流量。

首先,您必须找到OpenVPN客户端使用的网络接口名称。 运行ifconfig命令以列出所有配置的网络接口名称,如下所示。

Listing network interface names on Ubuntu.

注意结果列表中带有名称tun0的网络接口。 tun0接口是所有传入和传出流量路由的VPN接口,也是要允许的接口。 这是在引导时添加的虚拟接口,这意味着它不是物理连接。 这个接口是OpenVPN的默认设置。

为您使用ifconfig找到的VPN隧道接口添加防火墙异常,以强制所有流量通过它。 否则,将没有任何互联网访问,您的断网保护将失败。 运行以下命令在tun0接口上添加OpenVPN流量的异常。

sudo ufw allow out on tun0 from any to any
Allowing outgoing traffic on the tun0 interface.

有些应用程序,比如在玩游戏时访问语音聊天应用程序,需要通过VPN进行传入连接。 要允许传入连接,请运行以下命令:

sudo ufw allow in on tun0 from any to any
Allowing ingoing traffic to tun0 interface

配置OpenVPN客户端

在这最后一部分,您将配置OpenVPN客户端以服务方式运行,利用您之前创建的配置。

从重命名你的纯文本ata.opvn文件 **(你的文件名可能不同)** 为ata.conf开始。要将OpenVPN客户端作为后台系统服务运行,文件名必须以*.conf文件扩展名命名。另外,你还需要将文件移动到/etc/openvpn目录中。

使用sudo mv /root/ata.ovpn /etc/openvpn/ata.conf命令移动配置文件。

Moving and renaming the OpenVPN configuration file.

现在,切换到/etc/openvpn目录并验证文件是否存在。

cd /etc/openvpn
ls
Showing files in the /etc/openvpn directory

有了配置文件在/etc/openvpn目录中,使用systemctl命令启动OpenVPN客户端服务。要启动服务,请运行:sudo systemctl start [email protected]

OpenVPN客户端名称中的“ata”部分来自所使用的配置文件的名称。根据文件名,你的可能会有所不同。

Starting the OpenVPN service.

要验证OpenVPN服务是否正在运行,请使用如下的systemctl status命令。

sudo systemctl status [email protected]

如下所示,OpenVPN服务的active (running)绿色状态将被显示。

Checking the OpenVPN service status.

最后,你需要配置你的设备自动连接到你的VPN服务。自动连接到VPN确保OpenVPN始终在运行,即使你重新启动你的机器也是如此。

运行sudo systemctl enable [email protected]命令,从现在开始,一旦OpenVPN服务启动,它将自动连接你的设备到VPN。

Enable the OpenVPN service.

结论

这篇文章向您展示了设置Linux VPN连接断开保护的所有步骤。如果连接意外中断,杀死开关将断开计算机的网络连接,防止数据泄漏,确保您在线安全。

Source:
https://adamtheautomator.com/linux-killswitch/