上一篇有介紹在 Raspberry Pi 樹莓派上面建立 IKEv2 VPN Server
速度不錯,也非常穩定,已經很好用,但是想要讓它在更好用!
這是因為之前建立的 VPN,每次出門時候都要手動去設定裡面打開 VPN,回到家時後也需要手動去關閉 VPN
有點不方便,不夠智慧化啊~
於是開始琢磨 iOS 自動 VPN 連線的功能,蘋果也其實早就有提供 On Demand 的設定
蘋果也有提供相關圖形化設定工具,不過是在 macOS 上面而已,其他平台只能自己手動編寫
但也不是非常麻煩,因為目前網路上也有一堆設定檔可以參考
如果你還沒在樹莓派上安裝過 IKEv2 VPN Server 的話,請先翻上一篇文章,然後再繼續
VPN Server 這邊只要改兩個文件的設定,一個是 ipsec.conf,另外一個是 ipsec.secrets
所以同樣 SSH 進去 Pi 並切換成 root,開始編輯 ipsec.conf
$ ssh [email protected]
$ sudo -s
$ vim /etc/ipsec.conf
改成以下這樣:
# ipsec.conf - strongSwan IPsec configuration file
config setup
charondebug="cfg 2, dmn 2, ike 2, net 2"
uniqueids=never
conn %default
compress=yes
dpdaction=restart
dpddelay=30s
inactivity=300s
fragmentation=yes
forceencaps=yes
rekey=no
keyexchange=ikev2
left=%any
[email protected]
leftauth=pubkey
leftcert=vpn-host-certificate.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightsourceip=10.0.0.0/24
rightdns=8.8.8.8,8.8.4.4
[email protected]
rightauth=eap-mschapv2
ike=aes256gcm16-sha256-ecp521,aes256-sha256-ecp384!
esp=aes256gcm16-sha256,aes256gcm16-ecp384!
conn iOS
auto=add
conn OSX-EAP-TLS
auto=add
include /var/lib/strongswan/ipsec.conf.inc
接著再修改 ipsec.secrets 檔案
$ vim /etc/ipsec.secrets
在該文件的最下面,加入一行:
username : EAP "somepassword"
「username」:要登入的帳號名稱
「somepassword」:請修改成自己偏好的密碼
(上述的 ike 與 esp 在「macOS 10.13.4」、「iOS 11.3.1」測試通過,Windows 10 應該也沒有問題~)
以上修改完 Server 端以後,我們開始琢磨 Client 端的設定
先去 macOS 的 App Store 下載 Apple Configurator 2: https://itunes.apple.com/app/apple-configurator-2/id1037126344
下載完畢打開 App 後,在上面選單找到「檔案」 > 「新增描述檔」
打開之後,在「一般」欄位,名稱可以隨意取,方便自己識別即可
接著到「憑證」欄位,這裡我們要匯入上一篇自己簽名的 jkgtw.p12 憑證
如果你還有記憶,這個憑證是有密碼的,此處可以先輸入憑證安裝密碼
或者此處不輸入的話,Client 端在安裝時候也會要求輸入,我這邊選擇不輸入
然後跳到「VPN」欄位,直接點「設定」
這邊可以根據下面我的設定來自己修改,其中要注意的是「透過 VPN 傳送所有流量」記得打勾
啟用「EAP」要打勾,然後「EAP 認證」那邊選擇「使用者名稱/密碼」
帳號跟密碼就是剛剛我們在 ipsec.secrets 最底下添加的一行
「啟用完美前向保密」也打勾
下面的「IKE SA 參數」跟「子 SA 參數」的欄位,我們要稍微修改一下
加密演算法:AES-2560-GCM
完整演算法:SHA2-256
Diffie-Hellman 群組號碼:21
「IKE SA 參數」跟「子 SA 參數」兩個欄位都要修改
以上設定完畢後就可以保存這個 mobileconfig 檔案
剛剛在憑證那邊如果沒有輸入安裝密碼的話,這邊會提示一個錯誤
但是不用管他,我們直接轉「強制保存」即可
保存好以後,找到檔案位置,用自己習慣的文字編輯器打開這個檔案
打開之後,找到 </array>
,在</array>
上面一行加入以下規則
|
|
第 12 跟 13 行請自行修改,改成你自家的 WiFi 名稱
以上的規則內容是:只要設備連上你設定的這些 WiFi 名稱,VPN 就會自動關閉,反之就會自動打開 VPN
如果你需要更多詳細設定內容,可以參閱蘋果官方的說明文件: https://developer.apple.com/library/content/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html
還能設定當設備訪問到「特定網址」時候,再打開 VPN 之類的設定,都在以上官方說明文件裡面有
編輯完畢保存以後,把這個 mobileconfig 檔案透過 email 或者是 AirDrop 丟到設備上都可以
安裝完畢後就能立刻使用囉!iOS 跟 macOS 都通用!
另外如果你有時不想讓它 On Demand 撥號 VPN
iOS 可以到「設定」 > 「一般」 > 「VPN」裡面找到「按要求連線」,把它關閉
macOS 可以到「系統偏好設定」 > 「網路」裡面找到該 VPN,也是能看見「按要求連線」,取消勾選即可