熱門分類
載入中…
目錄0%

🛡️FortiGate SSL VPN 完全配置指南:憑證、LDAP、常見錯誤排查

    🛡 FortiGate SSL VPN 完全配置指南:憑證、LDAP、常見錯誤排查

    FortiGate 的 SSL VPN 幾乎是中小企業最常用的遠端連線方案之一。只要正確設定 Portal、Policy、憑證與 LDAP 認證,就能讓使用者在外用 Notebook 或手機安全地連回公司內網。 本篇整理成一份「從 0 到可上線」的完整實務指南,包含:

    • SSL VPN 架構與運作模式(Web Portal / Tunnel Mode)
    • 最小可行配置步驟:Portal、使用者、Policy
    • 匯入與綁定憑證(避免瀏覽器警告)
    • LDAP 整合(AD 帳號登入 SSL VPN)
    • 常見錯誤排查與診斷指令

    一、SSL VPN 架構與模式概念

    FortiGate 的 SSL VPN 大致可分成兩種操作模式:

    1️⃣ Web Portal 模式

    • 使用者用瀏覽器連到 https://防火牆 WAN IP:10443(預設)
    • 登入後看到 Web Portal,裡面可以放:
      • Web Bookmark(內部 Web 系統)
      • RDP / SSH Bookmark
      • 下載 FortiClient 設定檔
    • 適合:只需要存取少量內部 Web 系統的使用者

    2️⃣ Tunnel Mode 模式

    • 使用者透過 FortiClient 建立 SSL VPN Tunnel
    • 連線成功後,PC 會拿到一個虛擬 IP(例如 10.10.10.x)
    • 透過這個 Tunnel 存取內部網段(例如 192.168.1.0/24)
    • 適合:需要完整內部網路存取(檔案伺服器、ERP、RDP…)

    實務上大多同時啟用:Portal + Tunnel,但政策以 Tunnel Mode 為主。


    二、上線前預先確認清單

    • FortiGate 韌體版本已在支援 SSL VPN 的穩定版本上(例如 7.x LTS)
    • 對外 WAN 介面已有固定 IP 或可對應的 FQDN
    • 已確認 SSL VPN 使用的 Port(預設 443 / 10443)沒有被 ISP 或上游設備封鎖
    • 內網網段規劃清楚,避免 SSL VPN IP 池與內網網段衝突

    三、建立 SSL VPN 基本組態(Portal、IP Pool、User Group)

    1️⃣ 建立 SSL VPN 使用的 IP 池

    例如規劃給 VPN 用戶的虛擬 IP 範圍:10.10.10.0/24。

    config firewall address
        edit "SSLVPN_TUNNEL_SUBNET"
            set subnet 10.10.10.0 255.255.255.0
        next
    end
    
    config firewall ippool
        edit "SSLVPN_POOL"
            set type overload
            set startip 10.10.10.1
            set endip 10.10.10.254
        next
    end
      

    2️⃣ 建立本機使用者(若沒有 LDAP / AD 時)

    config user local
        edit "vpnuser1"
            set type password
            set passwd "StrongPassw0rd!"
        next
    end
      

    3️⃣ 建立使用者群組(之後可掛 Local 或 LDAP)

    config user group
        edit "SSLVPN_Users"
            set member "vpnuser1"
        next
    end
      

    四、設定 SSL VPN Portal

    Portal 決定使用者登入後看到的畫面與權限。常見的是 full-access(Tunnel + Portal)。

    config vpn ssl web portal
        edit "full-access"
            set tunnel-mode enable
            set web-mode enable
            set ip-pools "SSLVPN_POOL"
            set split-tunneling enable
            set split-tunneling-routing-address "LAN_SUBNET"
        next
    end
      

    split-tunneling enable:讓 VPN 只走公司內部流量,其餘仍走使用者本地網路, 可降低頻寬負擔。若有「必須所有流量都走公司出口」的合規需求,可改成 disable。


    五、啟用 SSL VPN Listener(綁定 WAN 介面)

    接著在 SSL VPN 設定中,指定由哪個 WAN 介面接收 SSL VPN 連線、使用哪個 Port、用哪一個 Portal。

    config vpn ssl settings
        set servercert "FGT_SSL_CERT"
        set tunnel-ip-pools "SSLVPN_POOL"
        set source-interface "wan1"
        set source-address "all"
        set default-portal "full-access"
    
        config authentication-rule
            edit 1
                set groups "SSLVPN_Users"
                set portal "full-access"
            next
        end
    end
      
    • servercert:綁定 SSL VPN 使用的憑證(之後會講怎麼匯入)
    • source-interface:一般是 wan1 或上網用的介面
    • authentication-rule:決定哪個 User Group 進來用哪個 Portal

    六、建立 SSLVPN → 內網的防火牆 Policy

    SSL VPN 建好後,還要用 Policy 讓 ssl.root 這條虛擬介面可以存取內部 LAN。

    config firewall policy
        edit 100
            set name "SSLVPN_to_LAN"
            set srcintf "ssl.root"
            set dstintf "lan"
            set srcaddr "SSLVPN_TUNNEL_SUBNET"
            set dstaddr "LAN_SUBNET"
            set action accept
            set schedule "always"
            set service "ALL"
            set groups "SSLVPN_Users"
            set nat enable
        next
    end
      
    • srcintf "ssl.root":所有 SSL VPN Tunnel 連線都出現在這個介面
    • dstintf "lan":實際內部網段所在的介面(視你的命名而定)
    • groups:限制只有 SSLVPN_Users 群組的帳號可以走此 Policy

    七、憑證設定:避免瀏覽器警告

    若使用 FortiGate 內建憑證,瀏覽器與 FortiClient 會跳安全警告。正式上線建議:

    • 使用公司自己 CA(內部 PKI)簽 SSL 憑證
    • 或使用公開 CA(如 Let's Encrypt、商用 CA)

    1️⃣ 匯入憑證(已在外部產生好)

    在 GUI 操作路徑大致為:System → Certificates → Import,底層 CLI 可用:

    config vpn certificate local
        edit "FGT_SSL_CERT"
            set password "YourPFXPassword"
            set private-key "-----BEGIN PRIVATE KEY----- ..."
            set certificate "-----BEGIN CERTIFICATE----- ..."
        next
    end
      

    匯入後回到:

    • VPN → SSL-VPN Settings → Server Certificate 選擇 FGT_SSL_CERT

    2️⃣ 使用 FQDN 取代 IP

    • 申請憑證時,CN/SAN 使用 vpn.company.com
    • 外部 DNS 將 vpn.company.com 指向 FortiGate WAN IP
    • 使用者在瀏覽器 / FortiClient 填的就是 https://vpn.company.com

    八、整合 LDAP / AD:用 AD 帳號登入 SSL VPN

    實務上大多希望直接用 AD 帳密登入 VPN,避免多組帳號管理。

    1️⃣ 設定 LDAP 伺服器

    config user ldap
        edit "AD_LDAP"
            set server "10.0.0.10"
            set cnid "sAMAccountName"
            set dn "DC=company,DC=local"
            set type regular
            set username "CN=svc-ldap,OU=Service,DC=company,DC=local"
            set password "SvcLdapStrongPass!"
            set secure ldaps
            set port 636
        next
    end
      

    完成後可用 CLI 測試:

    diagnose test authserver ldap "AD_LDAP" user1 "User1Password"
      

    2️⃣ 建立使用者群組,掛載 LDAP

    config user group
        edit "SSLVPN_Users"
            set member "AD_LDAP"
            config match
                edit 1
                    set server "AD_LDAP"
                    set group "CN=VPN_Users,OU=Security,DC=company,DC=local"
                next
            end
        next
    end
      

    之後 SSL VPN authentication-rule 指定的 Group 就改用這個 LDAP 群組。


    九、常見錯誤排查與診斷指令

    1️⃣ 使用者無法連線:連到一半就失敗

    • 先確認 WAN Policy 或上游設備沒有擋 SSL VPN Port
    • 檢查是否有 IPS / WAF 誤擋

    可用以下 Debug 觀察:

    diagnose debug application sslvpn -1
    diagnose debug enable
      

    觀察使用者登入時是否有錯誤訊息,結束後:

    diagnose debug disable

    2️⃣ 登入失敗:帳密正確但被拒絕

    • 確認 Authentication Rule 有包含該 User Group
    • 確認 User Group 是否包含該使用者(Local 或 LDAP)
    • LDAP 用 diagnose test authserver ldap 測試

    3️⃣ 登入成功但無法連到內部主機

    • 檢查 Policy:srcintf ssl.root → dstintf LAN 是否有放行
    • 確認 SSLVPN_TUNNEL_SUBNET 有包含使用者拿到的虛擬 IP
    • 內部主機的防火牆是否允許來自 VPN 網段
    • 若啟用 split tunneling,要確認 Routing / DNS 指到對的內網

    4️⃣ 憑證錯誤或瀏覽器不信任

    • 確認 SSL VPN 使用的 servercert 是否為正確憑證
    • 憑證的 CN/SAN 是否與使用者輸入的 FQDN 相符
    • 若為內部 CA,要確保使用者端有安裝 Root CA

    5️⃣ 併用二階段驗證(FortiToken / Email OTP)

    • 啟用 Two-factor 後,如使用者登入次數異常,可從 Log → Event → VPN 分析
    • 若 OTP 驗證失敗,常見是時間不同步或信箱收不到碼

    十、實務建議與最佳實務小結

    • 正式環境務必使用「有效憑證 + FQDN」部署 SSL VPN
    • 使用 LDAP / AD 統一帳號管理,並搭配安全群組(如 VPN_Users)
    • Policy 要盡量精準:限制來源、目的網段與服務,而非整個內網全開
    • 建議開啟日誌並集中到 FortiAnalyzer / Syslog 以便稽核與事後追查
    • 使用 split tunneling 可減少出口流量,但需評估資安政策;若有合規要求可全部導回總部
    • 定期檢視未使用帳號,關閉離職或不再需要 VPN 的帳號

    📘 結語

    FortiGate SSL VPN 看起來選項很多,但實際上可以分為幾個關鍵步驟: 規劃 IP 池 → 建立使用者與群組 → 設定 Portal → 綁憑證 → 建 Policy → 測試與排錯。 一旦這套流程建立好,往後要擴充新使用者或新增內部系統,只需要調整群組與 Bookmark 即可。

    — WWFandy・FortiGate 實戰筆記


    🔗 延伸閱讀

    💬 留下你的觀點,讓討論更精彩!

    你在部署 FortiGate SSL VPN 時,有遇過什麼奇怪的問題或實戰心得嗎?歡迎在下方留言分享, 也可以寫下你目前的環境規模(人數、分點、版本),一起交流更穩定的做法。

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級