SoftEther VPN 架設記錄
從前小蛙要架設 VPN 都選用最簡單的 pptpd,可參考 透過 pptpd 架設 VPN 這篇,但後來 Mac OSX 跟 iPhone iOS 都把這個協定從系統中拿掉了,之後要架設的時候,開始朝向其他種類的 VPN,像是 OpenVPN、L2TP … 等,但一直都還是拿不定主意要用哪一種,而且 Google 了一堆教學,感覺跟 pptpd 比起來複雜很多 … 後來想到同事之前提過 SoftEther VPN 這一套 Multi-Protocol VPN (維基百科介紹),向他詢問了一些問題之後,決定 ~ 就是他了!
Multi-Protocol VPN 聽起來是不是很威猛呢!至少小蛙是這樣覺得,動一次工就可以有 Multi-Protocol VPN,比安裝得要命卻只有一種 VPN 厲害很多!
一開始的架設上也很不順利,照著 Google 來的好幾篇文章都沒辦法順利完成,後來突然想到同事說過這一套厲害的地方在於,安裝好之後,可以直接 ~ 透過管理介面來設定!這個 … 真的很強大啊!不用再去下一堆指令,直接開始吧!本文參考自 Setting up SoftEther VPN Server on Ubuntu 16.04 Xenial Xerus Linux,記錄下來留做備份並加上自己的一些心得或遇到的問題。
編譯套件
小蛙的環境是 Ubuntu 18.04 LTS 64-bit,搭配安裝的 SoftEther VPN 是 v4.29-9680-rtm 版,上面的文章還有提到一些需求像是 30GB 以上的空間,但小蛙的沒有這麼大空間還是可以裝,另外一點比較重要的是要有 root 權限,那就 ~ 開始吧!
更新套件來源及安裝必須的套件 build-essential
apt-get update apt-get install build-essential
到這邊下載 SoftEther VPN 原始檔,或者也可以直接用小蛙使用的版本,建議自己去下載,可以根據不同的需求調整。
複製下載連結之後,回到系統使用 wget 開始下載,並解壓縮
# 下載 SoftEther VPN 原始檔 wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.29-9680-rtm/softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz # 解壓縮 tar xzf softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz
解壓縮完會得到一個 vpnserver 的資料夾,進入該資料夾並開始編譯
cd vpnserver make
過程中可能會問你一些授權條款相關的問題,都按 1 或 Y 即可。等他全部跑完,沒有出現錯誤就可以直接啟動了!
調整資料夾、權限、相容性檢查
./vpnserver start
把 vpnserver 資料夾移動到 /usr/local 去放
# 從 vpnserver 資料夾退出一層 cd .. # 把整個 vpnserver 資料夾移動到 /usr/local/ 下放 mv vpnserver /usr/local/
我們剛解壓縮的時候,可以發現 vpnserver 下面的資料全部都是 777,這邊把權限調整一下
# 進入資料夾 cd /usr/local/vpnserver/ # 把所有檔案設定成只有 owner 可讀寫 chmod 600 * # vpnserver 及 vpncmd 加上可執行權限 chmod 700 vpnserver chmod 700 vpncmd
接著做一些系統相容性的檢查
cd /usr/local/vpnserver/ ./vpncmd
期間有詢問 1, 2 3 的時候要選 3 Use of VPN Tools,接著輸入 check,系統會開始跑檢查。如果沒有問題的話,繼續將功能設定成服務來用,不然每次要啟動都要進來這資料夾有些不方便,我們可以將 SoftEther VPN 註冊為系統服務,之後就可以直接透過 systemctl 的方式來做啟動跟關閉。
註冊成服務
建立服務檔
vim /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
之後就可以透過 systemctl 來控制了
# 查看狀態 systemctl status vpnserver # 啟動 systemctl start vpnserver # 關閉 systemctl stop vpnserver
設定 SoftEther VPN
從這裡開始,大家可以直接去參考 Setting up SoftEther VPN Server on Ubuntu 16.04 Xenial Xerus Linux,接下來小蛙要記錄的是透過 GUI 的方式來進行管理,因為文章裡面不確定是否為版本不同造成的還是有其他因素,小蛙一直沒辦法跟著文章進行設定。幸好可以透過 SoftEther VPN 管理工具來設定!
到這邊下載管理工具
開始安裝
安裝完之後,開啟管理介面
新設置 -> 依照自己的環境填入資訊,這裡很棒的是,因為根本還沒設定過密碼,第一次連線軟體會請使用者設定一組密碼,並且帶出相關設定的引導畫面
後面小蛙有點忘記每張圖的順序了,不過可以大概對照一下如果有出現選項要怎麼選(補充:小蛙在架設完之後發現速度很慢,對照之前架的跟這次架的差別,發現在「加密與網路」這個選項中,換成 RC4-MD5 之後速度就比較正常了,如果建好之後發現很慢的話,可以試試看喔)
基本上到這邊就已經把 Sever 的部份設定完畢,也建立了一個可以使用 VPN 的使用者了。
20190315 補充
發現 CPU 使用率超高,看到這篇 SoftEther VPN Server 100% CPU 高负载解决方案,照著做把本地網橋關掉之後果然降下來了,留著備查!
Dear Sir
請問,轉成服務模式後,如何讓他在開機時自動啟動呢?
可以參考這篇~把裡面範例的 apache2.service 改成 自己的服務名稱就可以了
https://blog.longwin.com.tw/2020/05/linux-systemd-boot-start-service-2020/
謝謝 已參考,多謝幫忙。
請問您有搭配使用Fail2ban來進行保護嗎?能否分享相關設定呢?
不好意思,小蛙後來很少用 VPN,大多時候 VPN 都是關閉的就沒多加研究 fail2ban 這塊了,剛剛挖到這個 gist 看看有沒有幫助