Ubuntu架設VPN-IPsec/L2TP伺服器

想要最快速方便,VPN還是採用PPTP協定最快,然而基於這個古老的協定充滿漏洞,iOS已經徹底拋棄了,也因此誕生了這篇L2TP/IPsec VPN的架設文章,透過這個架設基本上可以起始下列的VPN連線類型:IPsec/L2TP PSK、IPsec/XAuth PSK、IKEv2。

因為整個設定的過程太複雜,所以在網路上大致上分成兩大派處理方式,一種是直接以Docker包裝起來運作,一種是跑人家寫好的腳本來運作,我個人比較偏好後者,因此本篇文章就介紹如何安裝腳本起來運行,不在詳細的描述所有的複雜設定。

安裝VPN-IPsec/L2TP伺服器

Step 1. 安裝好Ubuntu,撰寫文章的當下我是安裝20.04.1 LTS版本,裝好後最好下一次apt-get update把作業系統更新一下。

Step 2. 本文採用的是hwdsl2/setup-ipsec-vpn開源的腳本,因此請輸入下列指令取回腳本。

wget https://git.io/vpnsetup -O vpn.sh

Step 3. 然後對這個腳本進行編輯。

nano vpn.sh

Step 4. 編輯之處為下列這三個變數,請自己輸入自己想要的參數並儲存。

YOUR_IPSEC_PSK='請輸入20碼隨機英數符號混合字元'
YOUR_USERNAME='VPN帳號'
YOUR_PASSWORD='VPN密碼'

Step 5. 用最高權限跑這隻腳本進行IPsec安裝。

sudo sh vpn.sh

Step 6. 一陣安裝運作結束後,接著進行IKEv2設定。

sudo ikev2.sh --auto

Step 7. 就這樣安裝完成了,用人家寫好的腳本安裝就是爽(速食時代缺點就是啥也沒學到),接著就重新開機吧。

以Windows 10 Client端進行連線測試

安裝好了之後請使用Windows 10內建的VPN連線即可,要選擇「L2TP/IPsec(使用預設共用金鑰)」這個選項,然後把上面流程中的Step 4.設定的參數打入到剩餘的欄位,設定好後儲存起來,假設命名為:SlashViewVPN。

接著還要進行兩個設定才可以。

Step 1. 進行Regstry註冊檔登錄,嫌麻煩的話直接開最高權限console輸入下列指令:

REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f

Step 2. 到網路和共用中心>變更介面卡設定,找到SlashViewVPN介面>右鍵選擇內容,點選「安全性」頁籤>點選「允許這些通訊協定」並勾選「Challenge Handshake驗證通訊協定(CHAP)」。

設定好後對Windows重新開機,應該就可以連線了。

相關連結:

Linux Ubuntu VPN IPsec L2TP PSK IKEv2 Install Setup Windows10 VpnConnection