GCP 透過 Fortigate (PAYG) 進行 Client-to-site 的 SSL VPN 安全連線小記
之前嘗試 AWS Client VPN 服務, 雖然 GCP 上面目前沒有這樣的服務, 但是可以透過 Marketplace 來達成
今天就是要來進行相關實作
使用 GCP Marketplace 上的 Fortigate Next-Generation Firewall (PAYG) 來架設 SSL VPN
點選上面的連結, 會看到 Fortigate Next-Generation Firewall (PAYG), 選取要使用的 GCP 專案
-- > 點選 啟動
接下來會進入到設定畫面
- 這邊我都按照預設值, 只有把 Zone 改為 asia-east1-b
點選 部署
部署完成之後, 到 GCE 上面觀察
可以看到剛剛部署的 fortigate-payg VM
然後剛剛所建立的作業, 也可以到 Deployment Manager 內查看
後續要刪除也是回到這裏
接下來準備進行設定
登入到 Deployment Manager
查詢 fortigate-payg-1 上面顯示的 Admin URL
會被告知 要使用 admin 以及暫時密碼登入
點選 Accept
登入後會被要求更改密碼
然後要求使用新的密碼登入
然後被要求設定主機名稱, 這邊我選 Begin
設定主機名稱 -- > 點選 OK
登入 Fortigate 之後
因為我不是網路 Domin, 我決定把界面改變爲正體中文
在 System -- > Settings 裡面, 將 Language 改為 Traditional Chinese
點選 Apply 套用
接下來界面就會變成正體中文
接下來建立使用者
點選 用戶 & 認證 -- > 用戶認證
點選 新增
點選 本地用戶 -- > 下一步
輸入使用者名稱 與 密碼 -- > 下一步
輸入 email -- > 下一步
用戶狀態爲啟用 -- > 提交
這樣使用者就建立完成
接下來新增群組
點選 用戶 & 認證 -- > 用戶群組
點選 新增
輸入群組名稱 , 將剛剛的使用者加入成員
點選 確定
這個時候可以觀察到群組已經建立
接下來設定 SSL-VPN 入口頁面
點選 VPN -- > SSL-VPN 入口頁面
點選 新增
輸入名稱
來源 IP Pool: 點選 + 符號, 將 SSLVPN_TUNNEL_ADDR1 加入
停用 啟用切分通道
點選確定
- 相關設定, 預設 PAYG 都設定好了 :)
- 啟動切分通道記得停用
接下來進行 SSL-VPN 設定
接下來設定 SSL-VPN 入口頁面
點選 VPN -- > SSL-VPN 設定
監聽界面: 將 port 1 加入
監聽埠號: 輸入自訂 port, 因為 443 目前爲管理使用
認證/入口網頁對應:
點選 所有其他用戶/群組 點選 編輯
將入口網頁設定爲 tunnel-access
點選 確定
新增SSL_VPN群組 的 Portal
認證/入口網頁對應:
點選 新增
用戶/群組: 選取剛剛建立的 SSL_VPN 群組
入口網頁: 選取剛剛建立的 SSL-VPN-Portal
點選 確定
這邊可以觀察到會有兩個入口網頁對應
最後將伺服器憑證: 換成 Fortinet_Factory
點選 套用
- 實務上當然還是要用自己簽的憑證, 這邊只是 Lab
套用完成之後, 就會發現警告從 2 個變成 1 個 : )
接下來設定 SSL-VPN 政策
點選 政策 & 物件 -- > 防火牆政策
點選 新增
進行相關設定
名稱: 輸入名稱
進入介面: sslvpn 通道界面
離開界面: port 1
來源: all ( 位址物件 ) + SSL_VPN (用戶)
目的: all ( 位址物件 )
服務: ALL
點選 確定
可以觀察到防火牆政策已經建立
因為我們剛剛設定 SSL VPN 的 portal 是走 port 10443
所以記得去 GCP 防火牆規則建立規則
- 針對 port 10443 允許連入
接下來進行測試
在桌機 ping 剛剛建立的 GCE 內部 IP
> ping 10.140.15.220
PING 10.140.15.220 (10.140.15.220) 56(84) bytes of data.
--- 10.140.15.220 ping statistics ---
27 packets transmitted, 0 received, 100% packet loss, time 26623ms
建立 SSL VPN 連線
我是使用 FortiClient 建立連線
驗證結果
> ping 10.140.15.220
PING 10.140.15.220 (10.140.15.220) 56(84) bytes of data.
64 bytes from 10.140.15.220: icmp_seq=1 ttl=63 time=39.3 ms
64 bytes from 10.140.15.220: icmp_seq=2 ttl=63 time=41.2 ms
64 bytes from 10.140.15.220: icmp_seq=3 ttl=63 time=33.0 ms
--- 10.140.15.220 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 33.083/37.901/41.278/3.501 ms
當然也可以 SSH 啦 :)
觀察相關資訊
# ip address show ppp0
6: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1354 qdisc pfifo_fast state UNKNOWN group default qlen 3
link/ppp
inet 10.212.134.200 peer 1.1.1.1/32 scope global ppp0
valid_lft forever preferred_lft forever
- 這邊可以注意到桌機取得 10.212.134.200 的 IP, 透過 fortigate NAT 跟內網聯繫
接下來進行清理 LAB 工作
- 刪除防火牆規則 test-fortigate10443
- 刪除測試用的 GCE
- 在 Deployment Manager 內的 fortigate-payg-1 點選 刪除
因為我不是網管專業, 如果是正式環境
- 可能要串 AD / LDAP 驗證 , 啟用 MFA
但也是又向 GCP 邁進一步
~ enjoy it
Reference:
- 感謝 ikala 的 Leo 提供實作方向
沒有留言:
張貼留言