引言
無論您是希望能夠遠端連接到企業網絡,還是建立兩個遠端點之間的虛擬網路(透過不安全的網絡,例如互聯網),您都需要使用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通訊。
感謝您對本文章的關注。如有問題或改進建議,歡迎提出。