階段二:安全防護與連接 (Level 2) - 單元 09:IPsec VPN 實戰
IPsec VPN (Internet Protocol Security Virtual Private Network) 是一種在公共網路(如 Internet)上建立加密通道的技術,用於連接兩個不同的網路端點(Site-to-Site)或使用者與網路(Remote Access)。
想像網際網路 (Internet) 是一條充滿各種車輛(好人、壞人)的公共高速公路。
| 特性 | IKEv1 | IKEv2 (推薦) |
|---|---|---|
| 交換封包數 | Main Mode (6-9 packets) Aggressive Mode (3 packets) |
僅需 4 個封包即可建立 |
| 穩定性 | 斷線需重新完整協商 | 支援 MOBIKE,網路切換時可快速恢復 |
| NAT 穿越 | 需額外設定 (NAT-T) | 內建支援 NAT-T |
在 FortiGate 實務中,除非對方設備老舊僅支援 IKEv1,否則**一律建議使用 IKEv2**。它更快速、更簡單,且在除錯時封包量較少,更容易分析。另外,請務必確認兩端的 Phase 1 與 Phase 2 參數完全一致 (Mirror Image)。
※ 已經強制放大字體,請使用下方卷軸左右滑動檢視完整架構。
情境: 台北總部 (HQ) 需與高雄分公司 (Branch) 連線,存取內部的 ERP 系統。
HQ WAN IP: 1.1.1.1, LAN: 192.168.10.0/24
Branch WAN IP: 2.2.2.2, LAN: 192.168.20.0/24
Preshared Key: Fortinet123!
# 1. 設定 Phase 1 (定義鄰居與驗證) config vpn ipsec phase1-interface edit "To-Branch" set interface "wan1" # 出口介面 set ike-version 2 # 使用 IKEv2 set peertype any set net-device disable # 建立虛擬介面而非綁定硬體 set proposal aes256-sha256 # 加密演算法 set remote-gw 2.2.2.2 # 對端公網 IP set psksecret Fortinet123! # 預先共用金鑰 next end # 2. 設定 Phase 2 (定義加密流量選取器) config vpn ipsec phase2-interface edit "To-Branch" set phase1name "To-Branch" set proposal aes256-sha256 set auto-negotiate enable # 自動發起連線 # src-subnet 與 dst-subnet 預設為 0.0.0.0/0 (由路由控制) # 若需嚴格限制,可在此設定 next end # 3. 設定路由 (讓流量知道往 VPN 介面送) config router static edit 1 set dst 192.168.20.0 255.255.255.0 # 目的:分公司網段 set device "To-Branch" # 介面:VPN 通道 next end # 4. 防火牆策略 (允許流量通過) config firewall policy edit 1 set name "HQ_to_Branch" set srcintf "lan" set dstintf "To-Branch" set srcaddr "192.168.10.0/24" set dstaddr "192.168.20.0/24" set action accept set schedule "always" set service "ALL" set logtraffic all next edit 2 set name "Branch_to_HQ" set srcintf "To-Branch" set dstintf "lan" set srcaddr "192.168.20.0/24" set dstaddr "192.168.10.0/24" set action accept set schedule "always" set service "ALL" set logtraffic all next end
情境: 連鎖店模式。分店 A 與分店 B 之間沒有直接連線,若要通訊必須經過 HQ 轉送。
這需要在 HQ 設定防火牆策略允許 VPN 進到 VPN 出 (Hairpinning)。
# 允許 Spoke A (VPN) 到 Spoke B (VPN) 的流量 config firewall policy edit 3 set name "Spoke_to_Spoke" set srcintf "VPN_Hub_Interface" # 來源:VPN set dstintf "VPN_Hub_Interface" # 目的:同一個 VPN set srcaddr "All_Spokes_Subnets" set dstaddr "All_Spokes_Subnets" set action accept set service "ALL" next end