使用SoftEther在Ubuntu上搭建VPN伺服器

更新時間

引言

無論您是希望能夠遠端連接到企業網絡,還是建立兩個遠端點之間的虛擬網路(透過不安全的網絡,例如互聯網),您都需要使用VPN(虛擬私人網路)。 VPN可讓您透過網際網路或不受信任的網路安全地連接到遠端區域網路(LAN)。

SoftEther是一個開源VPN伺服器,是OpenVPN的替代方案。它被認為是世界上最強大且易於使用的多協定VPN軟體。本文將介紹如何在Ubuntu Xenial Xerus Linux上設定SoftEther。

您將需要的東西

  • Ubuntu 16.04 Xenial Xerus Linux
  • 建議30GB的可用磁碟空間
  • 根權限

請注意,本文所用的二進位檔案是x64架構。如果您的機器不是x64,您需要選擇適合的二進位。

約定

  • # – 需要以根使用者身分或使用sudo指令執行的Linux指令。
  • $ – 需要作為常規非特權使用者執行的Linux指令。
  • > – 需要從vpncmd命令列介面執行的命令。

準備伺服器

升級系統

bash $ sudo apt update $ sudo apt upgrade

安裝編譯工具

如果尚未安裝,請安裝build-essential

bash $ sudo apt install build-essential

安裝SoftEther

取得SoftEther原始碼

我們將取得SoftEther原始碼(最新版本為2016年11月27日發布的4.22版本):

bash $ wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz

解壓縮原始碼

bash $ tar xzf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz

解壓縮成功後,我們會在目前目錄中找到一個名為vpnserver的資料夾。

從原始碼安裝

bash $ cd vpnserver $ sudo make

在安裝過程中,我們需要輸入1來閱讀許可協議,輸入1確認我們已閱讀許可協議,最後輸入1同意許可協議。

安裝完成後,我們可以透過以下命令從安裝資料夾執行VPN伺服器:

bash $ sudo ./vpnserver start

為了更好地管理,我們將其配置為守護程式。

配置為守護程式

請依照下列步驟將VPN伺服器設定為守護程式:

移動安裝資料夾到/usr/local

bash $ cd .. $ sudo mv vpnserver /usr/local

賦予文件適當的權限

bash $ cd /usr/local/vpnserver/ $ sudo chmod 600 * $ sudo chmod 700 vpnserver $ sudo chmod 700 vpncmd

在繼續之前,讓我們檢查VPN伺服器是否能正常運作。確保在啟動vpnserver之前進行此檢查。

運行vpncmd命令

輸入3 ,然後輸入check

bash $ cd /usr/local/vpnserver/ $ sudo ./vpncmd

如果一切正常,我們應該在操作結束時看到「All checks passed」的訊息。

建立systemd服務

建立檔案/lib/systemd/system/vpnserver.service

bash $ sudo vi /lib/systemd/system/vpnserver.service

並在其中放入以下內容:

``` [Unit] Description=SoftEther VPN Server After=network.target

[Service] Type=forking ExecStart=/usr/local/vpnserver/vpnserver start ExecStop=/usr/local/vpnserver/vpnserver stop

[Install] WantedBy=multi-user.target ```

現在VPN伺服器在啟動時會自動啟動,我們可以使用systemctl管理vpnserver。

準備SoftEther VPN伺服器以供使用

SoftEther提供了多種使用案例:臨時VPN、遠端存取LAN、LAN到LAN橋接等。本文將其配置為「遠端存取LAN」的使用。

我們將先建立一個虛擬集線器,然後將該虛擬集線器與伺服器網路(企業LAN)連接。

為vpncmd設定管理員密碼

出於顯而易見的原因,建議在VPN伺服器安裝後立即為vpncmd設定管理員密碼。這可以透過vpncmd工具完成:

bash $ cd /usr/local/vpnserver/ $ sudo ./vpncmd

如上圖所示,選擇1進行“VPN伺服器或VPN橋接的管理”,然後按Enter鍵回答後續問題,直到出現VPN Server>提示。在命令提示字元下,輸入ServerPasswordSet

建立虛擬集線器

使用vpncmd,我們將建立一個名為「myFirstHUB」的虛擬集線器:

『`bash $ cd /usr/local/vpnserver/ $ sudo ./vpncmd

HubCreate myFirstHUB ```

將虛擬集線器連接到伺服器網絡

為了允許客戶端存取伺服器網絡,我們需要將虛擬集線器與LAN連接。這可以透過本地橋接連接或使用SecureNAT功能來完成。

在我們的案例中,將使用SecureNAT功能。 SecureNAT功能允許使用VPN伺服器作為簡單網路網關、DHCP伺服器或遠端存取遠端站點的簡單網關。

讓我們選擇我們的虛擬集線器並啟用SecureNAT功能:

『`bash $ cd /usr/local/vpnserver/ $ sudo ./vpncmd

Hub myFirstHUB SecureNatEnable ```

創建用戶

建立使用者的命令為: UserCreate 。用戶創建後,我們需要設定密碼。請注意,可以使用其他身份驗證方法:NTLM、RADIUS等。預設的身份驗證方法是“密碼”。

設定密碼的命令為: UserPasswordSet

客戶端配置

SoftEther為許多作業系統提供用戶端,包括Linux。

下載客戶端

我們將使用wget命令下載客戶端:

bash $ wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Client/64bit_-_Intel_x64_or_AMD64/softether-vpnclient-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz

解壓縮原始碼

bash $ tar xzf softether-vpnclient-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz

從原始碼安裝

客戶端的編譯與伺服器類似:

bash $ cd vpnclient $ sudo make

安裝後更改檔案權限如下:

bash $ sudo chmod 600 * $ sudo chmod 700 vpnclient $ sudo chmod 700 vpncmd

現在我們可以啟動VPN客戶端並進行必要的配置以連接到伺服器。

bash $ sudo ./vpnclient start $ sudo ./vpncmd

選擇2進入“VPN客戶端管理”。並執行以下操作:

  • 建立虛擬適配器(使用NiceCreate ,可以給任何名稱)
  • 建立VPN連線( AccountCreate account0
  • 指定目標伺服器主機名稱和連接埠號碼( server:port
  • 選擇要連接的虛擬集線器(在我們的案例中使用“myFirstHUB”)
  • 輸入使用者名稱
  • 使用之前建立的虛擬適配器

現在我們可以啟動VPN客戶端連線。在此之前,我們必須為先前在VPN連線中設定的使用者指定密碼。

『`bash

AccountPassword account0 standard AccountConnect account0 ```

客戶端現在已連接,但虛擬適配器沒有分配IP位址。最後一步,我們需要向VPN伺服器請求IP位址。我們可以使用ifconfig指令來尋找VPN虛擬適配器(以vpn_開頭),然後使用dhclient指令請求IP位址。

bash $ sudo dhclient vpn_ethvpn0

執行此命令後,VPN用戶端將從SoftEther VPN伺服器取得IP位址,並可與遠端LAN通訊。

感謝您對本文章的關注。如有問題或改進建議,歡迎提出。

更新時間