2022年9月23日 星期五

Fortigate | 使用Site To Site VPN建立Fortigate與Azure兩端的連線

這邊紀錄一下使用Fortigate建立Site to Site VPN到Azure的過程,架構圖如下,使用Site To Site VPN建立Fortigate與Azure兩端的連線。



步驟一:新增Virtual network gateway

由於我已經建立過了,為了範例我就是在選一次Virtual network,才會出現錯誤訊息,這邊注意Subnet是Azure自動產生,所以照理說在VNET這邊的網路已經照自己的規劃設計好,其他部分就是照著自己的環境去填寫,沒有錯誤訊息後就可以按Create建立Virtual network gateway



步驟二:新增Local Network Gateway

這邊建立Local Network Gateway,意思是新增一個另一端網路設備的連接資訊

IP address: 輸入Fortigate的Public IP
Address Space(s): 輸入Fortigate內部要與Azure連線的網段


步驟三:建立連線

回到步驟一建立好的Virtual Network Gateway,然後點選Connections -> Add


Connection type: 選擇Site-to-site
Local network gateway: 選擇步驟二建立的物件
Share Key(PSK): 輸入一組Key,到時候Fortigate那端也是用同一組Key
IKE Protocol: 選擇IKEv1



步驟四:設定Fortigate Site To Site VPN Phase1

這邊回到Fortigate上,登入到CLI,先設定Phase1,如下所示
關於Azure IPSec的設定可以參考這個連結

config vpn ipsec phase1-interface
    edit "azureit001-p1"
      set interface "port1" #Fortigate綁定Public IP的interface
      set local-gw 168.95.1.1 #Fortigate Public IP
      set keylife 28800
      set peertype any
      set proposal aes256-sha256 3des-sha1 aes128-sha1 aes256-sha1
      set dhgrp 2
      set remote-gw 1.1.1.1 #步驟一建立的Virtual network gateway產生的Pulbic IP
      set psksecret public123 #步驟三輸入的Shared key
      set dpd-retryinterval 10
    next
end


步驟五:設定Fortigate Site To Site VPN Phase2

設定Phase2,如下所示

config vpn ipsec phase2-interface
    edit "azureit001-p2"
        set phase1name "azureit001-p1" #步驟四的Phase1名稱
        set proposal aes256-sha1 3des-sha1 aes256-sha256 aes128-sha1
        set pfs disable
        set auto-negotiate enable
        set keylifeseconds 3600
        set src-subnet 192.168.1.0 255.255.255.0 #Fortigate內部網段
        set dst-subnet 10.10.0.0 255.255.0.0 #Azure網段
    next
end


步驟六:設定Fortigate Static Route

這邊要設定Azure網段的路徑讓Fortigate知道。

config router static
    edit 2
        set dst 10.10.0.0 255.255.0.0 #指定Routing網段
        set device "azureit001-p1" #設定步驟三的Phase1 interface
    next
end


步驟七:設定Fortigate Firewall Police

這邊要設定兩筆Policy,簡單說就是雙向的Policy,這樣兩端服務才能溝通。
第一筆如下,從Phase1介面到DMZ網段的Policy,也就是允許Azure網段到Fortigate DMZ區。

config firewall policy
    edit 1
        set name "Azure-to-DMZ"
        set srcintf "azureit001-p1"
        set dstintf "DMZ"
        set action accept
        set srcaddr "all"
        set dstaddr "all"
        set schedule "always"
        set service "ALL"
    next
end

第二筆如下,從DMZ介面到Phase1介面的Policy,也就是允許DMZ區到Azure網段

config firewall policy
    edit 2
        set name "DMZ-to-Azure"
        set srcintf "DMZ"
        set dstintf "azureit001-p1"
        set action accept
        set srcaddr "all"
        set dstaddr "all"
        set schedule "always"
        set service "ALL"
    next
end

這邊等測試成功後可以在設定更嚴謹的Policy。

步驟九:檢查狀態與Debug

如果一切很順利,那應該就可以正常建立連線,這時可以先去Azure上看連線狀態,到步驟三個連線狀態查看。


在Fortigate GUI查看。


這時候用兩端的機器去互Ping應該可以Ping到,如果不行就要檢查Routing與Policy設定。

如果連線沒有建立好這時候要進Fortigate CLI去開啟Debug查Log最快,如下

# diagnose debug application ike -1
# diagnose debug enable
# diagnose vpn ike restart #Enter後會產生Log這時候找出有問題的訊息來Debug

Debug完成後輸入下方指令關閉Debug
# diagnose debug reset
# diagnose debug disable


參考文章:
https://docs.fortinet.com/document/fortigate-public-cloud/6.2.0/azure-administration-guide/989216/connecting-a-local-fortigate-to-an-azure-vnet-vpn



沒有留言: