็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿ›ก️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

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš