FortiGate SSL VPN naar IPsec VPN migratie

FortiGate SSL VPN naar IPsec VPN migratie

Vanaf FortiOS 7.6.3 wordt SSL-VPN in tunnelmodus niet meer ondersteund. Organisaties die willen upgraden naar FortiOS 7.6.x en daarbij willen overstappen op Dial-up IPsec VPN, kunnen dit artikel gebruiken als handleiding voor de migratie. De meeste configuratiestappen zijn uitgewerkt in CLI, omdat diverse benodigde opties niet beschikbaar zijn in de GUI.

Het artikel bevat ook een afzonderlijk onderdeel voor de migratie van SSL-VPN SAML SSO naar IPsec VPN SAML SSO. Hiervoor moet in Azure een aanvullende enterprise-applicatie voor SSL-VPN worden aangemaakt en op de FortiGate een nieuwe SAML SSO Service Provider worden ingericht. Bestaande SSO-gebruikersgroepen kunnen worden hergebruikt, mits zij aan de nieuwe VPN-applicatie zijn toegewezen.

Basis Configuratie

We starten met een basisconfiguratie voor split-tunneling op basis van lokale authenticatie. Vrijwel alle authenticatiemethoden worden ondersteund, met uitzondering van LDAP PEAP. Als LDAP-authenticatie nodig is, dient in plaats daarvan LDAP EAP-TTLS te worden gebruikt.

Firewall address groups en subnets gebruikt voor split tunnel.

Houd de split-tunnelbestemmingen beperkt tot de RFC1918 private-adresreeksen, tenzij uw omgeving vraagt om een afwijkende inrichting. Verkeer dat wordt toegestaan, kan op een later moment altijd nog verder worden ingeperkt via de relevante firewall policies.

config firewall address
    edit "RFC1918-1"
        set subnet 10.0.0.0 255.0.0.0
    next
    edit "RFC1918-2"
        set subnet 172.16.0.0 255.240.0.0
    next
    edit "RFC1918-3"
        set subnet 192.168.0.0 255.255.0.0
    next
end

config firewall addrgrp
    edit "RFC1918"
        set member "RFC1918-1" "RFC1918-2" "RFC1918-3"
    next
end
 
IPRange voor de VPN clients.
config firewall address
    edit "Dialup-VPN-Range"
        set type iprange
        set start-ip 10.11.11.1
        set end-ip 10.11.11.254
    next
end
 
VPN tunnel configuratie

Onderstaand vindt u de configuratie van de VPN-tunnel, aangevuld met een beknopte toelichting op de belangrijkste instellingen.

config vpn ipsec phase1-interface
    edit "Dialup-VPN"
        set type dynamic
        set interface "wan1"
        set ike-version 2 <- FortiClient EMS 7.4.6 support geen IKEv1 meer.
        set peertype any
        set net-device disable
        set mode-cfg enable <- Stuurt de nodige config naar de VPN clients.
        set ipv4-dns-server1 192.168.1.1 <- Interne DNS server.
        set ipv4-dns-server2 192.168.1.2 <- Interne DNS server.
        set proposal aes256-sha256 <- Standaard settings van FortiClient.
        set dpd on-idle
        set dhgrp 20 <- Standaard setting van FortiClient.
        set eap enable <- Voor authenticatie.
        set eap-identity send-request <- Voor authenticatie.
        unset authusrgrp <- Unset om “inherit from policy” te gebruiken voor authenticatie.
        set assign-ip-from name <- Geeft de clients een IP vanuit de IP pool.
        set ipv4-split-include "RFC1918" <- Subnets gerouteerd door de IPsec Tunnel.
        set ipv4-name "Dialup-VPN-Range" <- IP Range waaruit clients een IP krijgen.
        set save-password enable <- Optioneel
        set client-auto-negotiate enable <- Optioneel
        set client-keep-alive enable <- Optioneel
        set psksecret Test1234! <- IPsec Pre-Shared Key.
        set dpd-retryinterval 60
    next
end


config vpn ipsec phase2-interface
    edit "Dialup-VPN" 
        set phase1name "Dialup-VPN" <- Zorg dat dit matched met phase1-interface
        set proposal aes256-sha256 <- Standaard setting van FortiClient.
        set dhgrp 20 <- Standaard setting van FortiClient.
        set keepalive enable
    next
end
 
VPN user en Group met Firewall Policy

In deze stap wordt een gebruiker aangemaakt, toegevoegd aan een groep en vervolgens wordt die groep gekoppeld aan een firewall policy.

Voor correcte VPN-toegang moet de gebruiker lid zijn van een groep die wordt gebruikt in de relevante firewall policy. Is dat niet het geval, dan kan de authenticatie succesvol zijn, maar blijft toegang tot de VPN alsnog geblokkeerd. Bij problemen met inloggen of toegang is het daarom raadzaam eerst te controleren of de gebruiker aan de juiste groep en policy is toegevoegd.

De authenticatie hoeft niet via lokale gebruikers te verlopen. Ook LDAPS, RADIUS en SAML worden ondersteund.

config user local
    edit "solidbe"
        set type password
        set passwd xxxx
    next
end

config user group
    edit "Dialup-Test"
        set member "solidbe"
    next
end
config firewall policy
    edit 0
        set name "Dialup-VPN > Internal"
        set srcintf "Dialup-VPN"
        set dstintf "internal"
        set action accept
        set srcaddr "Dialup-VPN-Range"
        set dstaddr "all"
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set groups "Dialup-Test" <- Hiermee mag de user groep inloggen op VPN.
    next
end

 

Hieronder volgen enkele optionele configuratievoorbeelden.

Full tunnel en Split Tunnel

Een nieuw aangemaakte IPsec VPN-tunnel staat standaard ingesteld als full tunnel, waarbij al het verkeer van de client via de VPN-tunnel wordt geleid.

Wilt u dit wijzigen naar een split-tunnelconfiguratie, gebruik dan set ipv4-split-include om aan te geven welke bestemmingsnetwerken via de tunnel bereikbaar moeten zijn.
Als u de configuratie later weer wilt terugzetten naar full tunnel, kunt u deze instelling verwijderen met unset ipv4-split-include.

config vpn ipsec phase1-interface
    edit "Dialup-VPN"
        set ipv4-split-include "RFC1918"
    next
end

 

Voorbeelden authenticatie met User Group en Inherit from policy

IPsec VPN-authenticatie kan op twee manieren worden geconfigureerd: door een specifieke gebruikersgroep rechtstreeks aan de VPN toe te wijzen, of door gebruik te maken van Inherit from policy.

Het rechtstreeks koppelen van een User Group aan de VPN is doorgaans de meest geschikte optie voor kleinere omgevingen met slechts één VPN-gebruikersgroep. In grotere omgevingen met meerdere gebruikersgroepen biedt Inherit from policy meer flexibiliteit. Bovendien voorkomt deze methode dat voor elke gebruikersgroep een afzonderlijke IPsec VPN-tunnel moet worden ingericht. In dat geval wordt de toegang bepaald door de groepen die in de toepasselijke firewall policies zijn geconfigureerd.

User Group
config vpn ipsec phase1-interface
    edit "Dialup-VPN"
        set eap enable
        set eap-identity send-request
        set authusrgrp "vpn-group"
    next
end
 
Inherit from policy
config vpn ipsec phase1-interface
    edit "Dialup-VPN"
        set eap enable
        set eap-identity send-request
        unset authusrgrp
    next
end
 
IPSec tunnel op port HTTPS (TCP/443)

Sommige hotspots en afgeschermde netwerken blokkeren IPsec VPN-verkeer over UDP/500 en UDP/4500. In dergelijke situaties kan de Dial-Up IPsec VPN worden ingesteld om gebruik te maken van TCP/443.

Dit is uitsluitend mogelijk als TCP/443 niet al in gebruik is door een andere service op de FortiGate, zoals de GUI of SSL-VPN.

Tijdens de migratie kan het zinvol zijn om de IPsec VPN tijdelijk via TCP/10443 te laten werken. Zodra SSL-VPN is uitgeschakeld, kan deze configuratie worden aangepast naar TCP/443.

Bestaande IPsec-tunnels die gebruik blijven maken van UDP/500 en UDP/4500 worden door deze wijziging niet beïnvloed.

config vpn ipsec phase1-interface
    edit "Dialup-VPN"
        set transport tcp
    next
end

config system settings
    set ike-tcp-port 443
end

 

IPsec VPN with SAML authentication

Binnen sommige organisaties wordt SSL-VPN al gebruikt in combinatie met SAML-authenticatie, of het is gewenst om tijdens de migratie op SAML-authenticatie over te stappen.

Hoewel het merendeel van de configuratie overeenkomt met die van SSL-VPN met SAML, zijn er enkele belangrijke verschillen waarmee rekening moet worden gehouden.

Voorbeeld SSL VPN met SAML authentication

https://community.fortinet.com/t5/FortiGate/Technical-Tip-Configuring-SAML-SSO-login-for-FortiGate/ta-p/194656

IPsec VPN SAML authenticatie

https://docs.fortinet.com/document/fortigate/7.6.6/administration-guide/951346/saml-based-authentication-for-forticlient-remote-access-vpns

Authenticatie port

SSL VPN en IPsec VPN gebruiken verschillende poorten voor SAML-authenticatie.

Waar SSL VPN met SAML doorgaans gebruikmaakt van de SSL VPN-poort 443, gebruikt IPsec VPN met SAML standaard poort 1001.

IPsec VPN with SAML authentication

zie “IPsec VPN SAML authenticatie”
config system global
    set auth-ike-saml-port <integer> <- Default 1001.
end

 

Service Provider Address

Het correct instellen van het Service Provider Address is essentieel voor een goed functionerende SAML-configuratie bij IPsec VPN. Deze waarde moet consistent zijn met de interface waarop de IPsec VPN is gebonden, de geconfigureerde Service Provider-instellingen op de FortiGate en de instellingen binnen de Azure-applicatie. Wanneer de IPsec VPN bijvoorbeeld is gekoppeld aan wan1, moet het Service Provider Address verwijzen naar het publieke IP-adres of de FQDN van wan1, aangevuld met poort 1001.

De waarden die hierbij op elkaar moeten aansluiten zijn:

  • de IPsec VPN-tunnelinterface (wan1)
  • het geconfigureerde Service Provider Address
  • de bijbehorende configuratie in de Azure SSL VPN Application 

Het Service Provider Address kan ook als FQDN worden geconfigureerd, bijvoorbeeld vpn.example.com:1001, mits deze naam verwijst naar hetzelfde publieke IP-adres dat op wan1 wordt gebruikt voor de VPN-verbinding.

Interface authenticatie server

Werk ook de instelling ike-saml-server bij, zodat deze verwijst naar de nieuwe SAML Service Provider die voor de IPsec VPN is ingericht.

Het is belangrijk om te beseffen dat dit onderdeel is van een migratie. Na het aanpassen van deze instelling zal de bestaande SSL VPN SAML-configuratie niet meer werken als deze nog gekoppeld is aan de oorspronkelijke Service Provider.

config system interface
    edit <name>
        set ike-saml-server <saml_server>
    next
end

 

SAML user groepen

De Entra ID-groepen die reeds voor SSL VPN in gebruik zijn, kunnen ook worden hergebruikt voor IPsec VPN.

Op de FortiGate is het desondanks noodzakelijk om nieuwe gebruikersgroepen aan te maken, aangezien de IPsec VPN-configuratie is gekoppeld aan een nieuwe SAML SSO Service Provider.

config user group
    edit "SSO-VPN-Users"
        set member "Azure-SSL-VPN" <- Varieert
        config match
            edit 1
                set server-name "Azure-SSL-VPN" <-Is anders dan SSL VPN groep
                set group-name "entra-id" <- Varieert
            next
        end
    next
end

config user group
    edit "SSO-IPsec-VPN-Users"
        set member "Azure-IPsec-VPN" <-Varieert
        config match
            edit 1
                set server-name "Azure-IPsec-VPN" <-Different SAML SSO Service Provider
                set group-name "entra-id" <- Varieert
            next
        end
    next
end
 
FortiClient Voorbeeld

Wanneer aes256-sha256 en dhgrp 20 worden gebruikt, kunnen de meeste overige instellingen ongewijzigd op hun standaardwaarden blijven staan.

Deze instelling hoeft alleen te worden aangepast wanneer een aangepaste poort wordt gebruikt. Zie Changing the Tunnel Port to HTTPS (TCP/443) voor meer informatie.

Vragen?

U kunt altijd contact met SolidBE opnemen mocht u een vraag hebben over een van de besproken onderwerpen (Fortinet, Patches, TechTalk ) of wanneer u assistentie nodig heeft om netwerk- of security vraagstukken op te lossen. Wij helpen u graag bij de beheren van een veilige en solide ICT omgeving!

Auteur

Raoul Leeuwis is Network Engineer bij SolidBE

Scroll naar boven