如何為VPN設置Linux Killswitch

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連接中斷了一秒鐘,因為你的電腦或手機死機、電池沒電,或者你不小心拔掉了電源線,只要你啟用了殺死開關,任何人都無法訪問那些數據。

先決條件

為了跟著進行操作,你需要:

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

安裝Uncomplicated Firewall (UFW)

在本教程中,Linux殺死開關取決於防火牆的配置。首先,在設備上安裝Uncomplicated Firewall (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命令,如果成功,輸出將顯示為active (exited),並呈現為綠色。

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

強烈建議通過要求用戶通過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服務器相關的信息,例如下面以NordVPN為例的端口協議IP地址

為了編制正確的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 的默認介面。

為您找到的 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.

使用systemctl status命令來驗證OpenVPN服務是否正在運行,如下所示。

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連接的所有步驟。一個kill switch會在連接意外斷開時切斷電腦的網絡連接,防止數據洩漏,確保您在線上的安全。

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