pfSense IKEv2 Mobile Clients

張大圖 (Featured Image)差不多說明咗今次嘅 lab,唯一嘅差別係:我用一隻 VPN Hub 將兩個 branch networks 接駁,兩個 networks 互通,然後我再由個 Mobile User 以 IKEv2 駁去隻 VPN Hub,於是 Mobile Users 就可以 access 兩個 networks。VPN Hub 喺上一篇講咗,今篇講用 Windows 10 同 macOS 經 IKEv2 駁去隻 pfSense VPN Hub。

參考咗好多有關嘅資料:

  1. 官方 document
    解釋唔夠詳細
  2. 根據官方 document 網友推定的步驟
    同 1 差不多,多了些解說,但係我唔想用 StrongSwan
  3. 另一網友教 iOS 和 macOS
    冇講 Windows,開始教用 Apple Configurator 2 做設定
  4. 再來另一網友講嘅 Windows 10 + OSX
    用 User Certificate,我唔想一人一張 Cert,同埋我真係唔想用 StrongSwan 😜

我嘅步驟係先喺隻 hub 加張 CA Certificate,設定 mobile user 嘅 login account 資料,將張 Cert 同 login 資料發俾 Windows 10 同 maxOS,Windows 同 Mac 都一樣,喺 client 部電腦 import 張 Cert,create VPN network,用得!好似好簡單?係就係,不過如果要用指定嘅 security level 就會有多啲麻煩,今次先用我測試咗嘅方法,日後你可以慢慢 tune 到最佳嘅 security level。

去 pfSense 嘅 System > Certificate Manager > CAs 加個 CA record,CA = Certificate Authority,係 self-signed 唔係網上公認嘅 Cert,自己用就無謂浪費啦,填啲資料唔使真嘅,不過:

  • 通常 Descriptive name =Common Name
  • Key length 一般會用 1024 或以上,依家多數用 2048
  • Digest Algorithm 級數採用 SHA256
  • 有效期 Lifetime 可以用 3560 (十年)
準備好張 CA 就可以去 System > Certificate Manager > Certificates 開張 Cert 俾哩隻 pfSense server 用:

  • 通常 Descriptive name =Common Name =隻 pfsense 嘅 WAN domain name,IP 都應該得瓜?😁
  • Certificate authority 就選用啱啱整出嚟嗰張
  • Certificate type 用 Server Certificate,User Certificate 係發俾個別嘅 mobile user 嘅,我唔使咁複雜,會項唔順。
  • Alternative Names 可以多過一個,日後用哩個資料嚟 reference 哩張 Cert,第 1 同第 2 個 IP係隻 server 嘅 LAN IP 同 gateway,第 3 係 WAN IP,第 4 係 domain name record。
 
搞掂張 Cert 就可以搞 Mobile Client,去 VPN > IPsec > Mobile Client:

  • check Enable Psec Mobile Client Support
  • Highlight Local Database,雖然得一千零一個,不過你都要 click 一下(點選)
  • check Provide a virtual IP address to clients
    個 network IP 唔同 LAN IP segment 就 OK,將來係派俾啲 mobile users 嘅
  • check Provide a list of accessible networks to clients
    啲 login user 最起碼可以用 LAN IP access 隻 pfsense
  • check Provide a DNS server list to clients
    169.254.169.254 係 Google Cloud 提供俾 GCE 用嘅
    8.8.8.8 係 Google 提供俾公眾用嘅
    如果你唔填,啲 login user 就冇 DNS 用
設定 Phase 1 資料:

  • Phase 1 Proposal (Algorithms) 日後可以根據 security level 更改,目前用嘅係 Windows 同 macOS 都通用嘅
設定 Phase 2 資料:

  • Local Network 用 Network 0.0.0.0/0 即係准 login users 將所有 traffic 經 pfsense 出街
開 login user:

  • Identifier = login user name
  • Pre-Shared Key = login user password
開個 Firewall Rules 俾 IPsec,我用全部都准佢用,冇 filter。😀
去 branch 個 pfsense 改一下個 OpenVPN Server Client 設定,准 172.0.1.0/24 訪問 branch LAN 36.
到此為止 server side 就算準備好了,可以搞 client side 了。 先將第 2 步準備咗嘅 Cert export 出嚟,想辦法傳俾 client部電腦(Mac)。
Double click 張 Cert 會彈出 Keychain Access 畫面 Right click 張 Cert 再 click GetInfo 會彈出詳細資料,將 Trust 改為 Always Trust。
打開 Network 加一個 IKEv2 network:

  • Server Address 可以用 IP 或者 domain name,有啲網友話用 domain name 唔可以經個 VPN connection send all traffic,我唔覺得冇影響
  • Remote ID =隻 pfsense 嘅 domain name
  • Local ID =張 Cert 嘅 Common name
Authentication Settings = Login user name + password,Advanced… 就冇嘢要填。
你可以去 Apple Store 下載 Apple 自家嘅 Configurator 2 create 個 Profile 嚟安裝:

  • 加個 Profile Name,隨你喜歡嘅名
  • Click Certificates,加張 Cert
  • 加個 VPN
    你可以改選自己啱用嘅 security,彈性比較大,係網友推薦搞 macOS VPN 嘅首選方法!
  • File > Save
Scroll down 俾你參考
Double click Configurator 2 做出嚟檔案,自動會 create 一個 Profile。 同時會 create 一個 VPN network connection。
成功 connect 之後就可以 ping branch LAN 36, 😱 Windows 10 都係由 double click 張 Cert 開始
Click Install Certificate… 將張 Cert install 入 Trusted root Certification…Certificates 之下
跟手就加個新嘅 VPN network 記住個 login 唔使次次輸入
Security 用 IKEv2, Authentication 用 EAP-MSCHAP v2 Networking 我唔選 IPV6
IPV4 就由 server side 提供 成功 Connect 就可以 ping LAN 36, 😜

*** 完 ***