星期六, 4月 11, 2020

GCP 透過 Fortigate (PAYG) 進行 Client-to-site 的 SSL VPN 安全連線小記

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


開啟瀏覽器 https://YOUR_FORTI_IP:443 

會被告知 要使用 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:

沒有留言: