www.SAMURAJ-cz.com 

20.04.2024 Marcela Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

FortiGate konfigurace SSL VPN

Upraveno 07.05.2020 20:34 | vytvořeno 29.04.2020 20:13 | Samuraj - Petr Bouška |
Po několika úvodních článcích, které se věnovali autentizaci uživatelů, je tu rozsáhlý díl o konfiguraci SSL VPN. Snažil jsem se udělat popis hodně komplexně, protože oficiální dokumentace je pro mne nedostatečná. Pro vytvoření základního VPN připojení stačí pár jednoduchých kroků (příklady jsou v oficiální dokumentaci). Tento článek by měl ukazovat i všechny speciální možnosti, které můžeme nastavit. Věnuje se vazbám mezi jednotlivými částmi konfigurace. A snaží se o globální pohled, který přechází do popisu detailů.

Pozn.: Popis v článku vychází z FortiGate FG-300E s FortiOS verzí 6.2.3. Který je nakonfigurovaný jako FGCP cluster a využívá VDOM.

Obsah

Tento článek je dost rozsáhlý, proto se níže nachází seznam kapitol. Alespoň ty hlavní mají přímý odkaz.

Úvodní zhodnocení a srovnání s Cisco ASA

VPN jsem dříve řešil na Cisco ASA. Na FortiGate jsem se snažil nalézt stejné vlastnosti, jako mělo toto 10 let staré zařízení. Nejprve to vypadalo velmi bledě. Pročetl jsem dokumentaci, která je (jak stále uvádím) velmi špatná a roztříštěná (určitě nestačí, že si člověk otevře oficiální dokumentaci ke své verzi FortiOS). Prohledával jsem internet a fóra s klíčovými slovy, co chci nastavit. Vesměs marně. Nakonec se mi vlastně vše podařilo.

Způsob konfigurace (stavební části) FortiGate VPN se nedá srovnávat s Cisco VPN. Přesto hodně zjednodušeně. Na Cisco můžeme využít Connection Profile pro různé způsoby připojení jednoho uživatele. Na FortiGate využijeme Realm. Na Cisco používáme Group Policy pro politiky připojení skupiny uživatelů. FortiGate má Portal. Cisco využívá AnyConnect Client Profile pro nastavení klienta. FortiGate toto nějak řeší v Portal. Cisco má zajímavou vlastnost Dynamic Access Policy. Na FortiGate asi nic podobného není. Obecně se stejné vlastnosti nastavují na jiných místech (v jiných objektech). A také párování (propojení) objektů se provádí úplně jinak.

Díky Realm se mi podařilo vytvořit různé profily, které si uživatel vybírá při připojení (podle URL). Tím se dá třeba rozlišil připojení z firemního a nefiremního zařízení. Ukázalo se, že pro připojení je možno vyžadovat i počítačový certifikát (to lze nakonec lépe definovat než u Cisco). Jen musíme speciálně upravit konfiguraci FortiClienta. Dají se detekovat různé parametry na klientovi (Host Check), jako jsou registry, soubor, OS, AntiVir. Ovšem musíme mít správné OS (což je v podstatě jen Windows) a správnou verzi FortiClienta. Tohle má Cisco ASA o generace napřed. Mohu jednoduše kontrolovat ohromné množství parametrů a zjistím třeba, že jde o zařízení s Androidem (to umělo Cisco před mnoha lety a FortiGate to neumí ani dnes).

Co je hodně špatné na FortiGate je monitoring připojených uživatelů (navázaných SSL VPN Session). Cisco ukazuje mnoho detailů o všech použitých protokolech (TLS/DTLS), šifrovacích algoritmech, detailech o klientovi, použitém profilu (politice), přenosu paketů, apod.

A další velmi špatná věc je klient pro připojení do SSL VPN. Instalace Cisco AnyConnect Secure Mobility Client 3.1.14018 pro Windows má 5 MB (složka v Program Files má 10 MB). Není dokonalá, ale vesměs funguje spolehlivě a hlavně rychle. Instalace FortiClient 6.0.9.0277 pro Windows má 95 MB. Obsahuje v sobě další komponenty, ale když instaluji pouze VPN klienta, tak má složka v Program Files 290 MB. To samé je FortiClient VPN 6.2.6, kde by měla být pouze funkce VPN. Ale hlavní je, že klient funguje špatně a pomalu. Při připojení se často na desítky vteřin zastaví (většinou na 98%) a někdy se zasekne úplně. Většině lidí pomůže jej úplně ukončit a znovu spustit. Kolegové hlásí, že verze pro Linux je úplně nefunkční (musí používat alternativu OpenFortiVPN).

Remote Access SSL (Secure Sockets Layer) VPN (Virtual Private Network)

Dokumentace SSL VPN 6.2.3, SSL VPN 6.0.0, VPNs 6.0.0

Virtual Private Network (VPN) znamená privátní počítačová síť, která dovolí bezpečně připojit vzdálené uživatele nebo pobočky do LAN (lokální privátní sítě) organizace přes veřejné telekomunikační služby, převážně přes internet. Vše se řeší pomocí vytvoření šifrovaného tunelu mezi dvěma body (nebo jedním a několika). VPN řeší důvěrnost, autentizaci, neporušenost komunikace apod.

VPN je velice široký termín a zahrnuje řadu protokolů a technologií. Hlavní typy VPN jsou dva:

  • Site-to-Site VPN - spojujeme dvě (nebo více) sítě dohromady, většinou centrálu a pobočky, používají se speciální síťová zařízení (VPN koncentrátor, firewall, router, server), která slouží jako VPN gateway a naváží mezi sebou VPN spojení (příchozí komunikaci rozbalí a do sítě posílají standardně, odchozí zapouzdří do VPN tunelu), uživatelské stanice pak nepotřebují VPN klienta, často používané protokoly/typy jsou IPsec VPN a MPLS VPN
  • Remote Access VPN - připojujeme individuální klienty do lokální sítě, klienti musí mít speciální SW - VPN klienta, na straně privátní sítě je opět speciální síťové zařízení, často používané protokoly/typy jsou SSL VPN a IPsec VPN

SSL VPN a protokoly

Zde se budeme věnovat připojení klientů, tedy Remote Access VPN. FortiGate podporuje IPsec VPN i novější a populárnější SSL VPN, která může být dvou typů/módů:

  • Tunnel Mode - standardní VPN připojení, kdy se využívá klient (aplikace) FortiClient pro navázání šifrovaného tunelu do interní sítě
  • Web Mode - připojíme se pomocí webového prohlížeče a dostaneme se na určité zdroje uvnitř privátní sítě (to může být i třeba vzdálená plocha) skrze webové stránky, Cisco toto řešení označuje jako Clientless SSL VPN

Mluvíme o SSL VPN, ale dnes se používá pouze protokol TLS (Transport Layer Security). Aktuálně je na FortiGate defaultně povolený TLS 1.2 a TLS 1.3. SSL VPN má výhodu, že používá rozšířený protokol HTTPS, který dobře prochází skrze Firewally, nemá problémy s NATem a má mnohem jednodušší konfiguraci než IPsec.

FortiGate také podporuje protokol Datagram Transport Layer Security (DTLS), který běží nad UDP (User Datagram Protocol). Oproti TLS, které běží nad TCP (Transmission Control Protocol), poskytuje vyšší výkon. DTLS je defaultně povolené. Když se připojujeme z FortiClienta, tak můžeme v nastavení zatrhnout Preferred DTLS Tunnel (nejprve je třeba odemknout nastavení zámkem v levém dolním nebo pravém horním rohu).

Praxe ukázala, že řada lidí má při zapnutí DTLS problém s připojením, které se jim zastavuje na 98 procentech. Více informací v FortiGate problémy s připojením do SSL VPN přes FortiClient.

Konfigurace SSL VPN na FortiGate

Základní kroky a komponenty

Jaké objekty a nastavení musíme vytvořit, abychom nakonfigurovali SSL VPN.

  • Users and Groups (uživatelé a skupiny) - kdo se bude přihlašovat do VPN, lokální nebo vzdálení uživatelé (LDAP, RADIUS, apod.), rozdělíme uživatele do skupin, podle toho, kteří mají mít společné parametry VPN připojení
  • Addresses (rozsahy adres) - jaké adresy se budou přidělovat uživatelům ve VPN (předpřipraveno je 10.212.134.200-10.212.134.210), můžeme využít jeden adresní Pool, ale vhodnější může být pro každou skupinu uživatelů jiný rozsah adres
  • VPN Realm (oblast) - volitelně můžeme vytvořit více oblastí (URL adres) přes které se přihlásíme do VPN, díky Realm můžeme stejnému uživateli nastavit jiné parametry podle přihlašovací adresy
  • VPN Portal (portál) - profily pro uživatelské skupiny, základem je povolení módů Tunnel VPN či Web VPN, přiřazení IP adres, parametry pro VPN
  • VPN Settings (nastavení) - globální nastavení pro VPN, interface, kde FortiGate poslouchá pro připojení klientů, certifikát, IP rozsahy, mapování uživatelů (skupin) na portály
  • Firewall Policy (politika) - politiky, které povolují provoz z rozhraní SSL-VPN Tunnel Interface pro určité IP adresy a uživatele VPN

Pozn.: Důležité je, že dokud není vytvořena politika pro danou skupinu uživatelů, tak se její uživatelé do VPN ani nepřihlásí.

Jak probíhá autentizace a připojení do VPN

Oficiální dokumentace na tuto otázku vůbec neodpovídá. Já jsem si zapnul debug LDAP autentizace a SSL VPN a vyzkoušel různé situace (uživatelé se ověřovali na LDAP serveru) a z toho dal dohromady následující průběh:

  • uživatel zadá svoje přihlašovací údaje pro připojení do VPN (buď na webu nebo ve FortiClient)
  • provede se autentizace uživatele vůči LDAPu, pokud selže (nepřipojí se k serveru, špatné jméno nebo heslo), tak vrací [sslvpn_login_unknown_user]
    • obecně se zkouší autentizaci vůči různým mechanizmům (pokud jsou definovány) v daném pořadí POP3, RADIUS, TACACS+, LDAP, lokální uživatelé
    • pokud máme definováno více serverů (třeba LDAP), tak se hledá na všech
    • první autentizace, která projde úspěšně, se použije a podle ní se bere zařazení do skupiny (která skupina měla definovaného uživatele z tohoto zdroje)
  • na LDAPu se hledá, jestli je uživatel členem některé definované skupiny (viz. dále), pokud není členem, tak vrací [sslvpn_login_unknown_user], jinak vrátí jméno skupiny, pokud je členem více (VPN) skupin, tak vrací pouze první nalezenou
  • ke skupině se hledá přiřazený Portal, pokud se nenalezne, tak se použije default (All Other Users/Groups)
  • podle parametrů Portalu dojde k navázání tunelu/zobrazení webu

Důležité je, jaké skupiny se prohledávají. Nejsou to všechny skupiny na LDAP serveru, ani ty které máme definované na FortiGate jako Remote Groups z tohoto LDAPu. I když to je úvodní podmínka, aby skupina na FortiGate existovala. Ale prohledávají se pouze skupiny, které jsou použity v nějaké politice (Policy), která má (pravděpodobně) jako zdrojový interface SSL-VPN Tunnel Interface. Z toho plyne, že můžeme mít VPN připojení kompletně nastavené, ale pokud neexistuje nějaká politika pro daného uživatele, tak se nepřipojí ani do webové VPN.

Pokud autentizace z nějakého důvodu selže a vrátí [sslvpn_login_unknown_user], tak se uživateli zobrazí obecná chyba. Nijak neindikuje, jestli bylo zadáno špatné heslo, uživatele neexistuje, nemá povoleno připojení do VPN nebo je chyba na straně serveru. Ve webu se zobrazí jednoduše

Error: Permission denied.

FortiClient vrátí

Unable to establish the VPN connection. The VPN server may be unreachable.
FortiClient chyba autentizace FortiGate Web VPN chyba autentizace

Plánování a příklad SSL VPN

Na začátku plánování VPN je dobré si rozmyslet, jaké různé varianty připojení chceme vytvořit. Například podle různých povolených komunikací do interní sítě. Zda pro někoho chceme povolit Split Tunel a jinde ne. Zda některým uživatelům zpřístupníme pouze Web VPN s určitými definovanými odkazy. Podle toho si pojmenujeme jednotlivé VPN, připravíme skupiny uživatelů, které budou mít danou VPN povolenu, připravíme adresní rozsahy a politiky pro provoz.

Uvedeme si rámcově body konfigurace SSL VPN připojení pro praktický případ. Uživatele máme uložené v Active Directory doméně a ověřovat je budeme přes LDAP. V příkladu budeme řešit pouze jednu skupinu uživatelů konzultanty. Ti mají z libovolného zařízení povolen omezený přístup do interní sítě pouze na webové servery HTTPS. Ověřují se pomocí jména a hesla (můžeme přidat i OTP). Z firemních zařízení je povolen neomezený přístup do interní sítě. K ověření jména a hesla se přidává ověření počítačového certifikátu.

VPN připojení konzultantů z nefiremních zařízení

  • Realm - NonCompany - vytvoříme objekt s adresou Virtual Host vpn.firma.cz
  • User Groups - G VPN Consultant - v AD DS vytvoříme skupinu a zařadíme do ní uživatele, na FortiGate vytvoříme stejně pojmenovanou skupinu (Remote Group) a napojíme ji na tuto LDAP skupinu
  • Addresses - VPNconsultantPool - vytvoříme objekt Address typu IP Range, jako Interface zvolíme SSL-VPN tunnel interface a zadáme rozsah adres (dle našeho adresního plánu) 172.31.254.10-172.31.254.100
  • SSL-VPN Portals - VPN-Consultant - vytvoříme portál, povolíme Tunnel Mode a zakážeme Web Mode, přiřadíme pool IP adres VPNconsultantPool, můžeme zapnout Split Tunnel a vybrat interní adresy
  • IPv4 Policy - VPN Consultant to Local from NonCompany - vytvoříme politiku, kde povolíme službu HTTPS z SSL-VPN tunnel interface do LAN, jako zdroj zadáme skupinu G VPN Consultant a adresní rozsah VPNconsultantPool, jako cíl LANnet

VPN připojení konzultantů z firemních zařízení

  • Realm - Company - vytvoříme objekt s adresou Virtual Host vpn2.firma.cz
  • User Groups - G VPN Consultant - využijeme již existující skupinu
  • Addresses - VPNconsultantPoolCompany - vytvoříme objekt Address typu IP Range, jako Interface zvolíme SSL-VPN tunnel interface a zadáme rozsah adres (dle našeho adresního plánu) 172.31.254.101-172.31.254.199
  • SSL-VPN Portals - VPN-Consultant-Company - vytvoříme portál, povolíme Tunnel Mode a zakážeme Web Mode, přiřadíme pool IP adres VPNconsultantPoolCompany, můžeme zapnout Split Tunnel a vybrat interní adresy,
  • IPv4 Policy - VPN Consultant to Local from Company - vytvoříme politiku, kde povolíme všechny služby ALL z SSL-VPN tunnel interface do LAN, jako zdroj zadáme skupinu G VPN Consultant a adresní rozsah VPNconsultantPoolCompany, jako cíl LANnet

Nastavíme globální parametry VPN

  • určíme interface a port, kde bude FortiGate přijímat SSL VPN připojení klientů
  • nastavíme serverový certifikát
  • Tunnel Mode Client Settings - zvolíme Specify custom IP ranges a vybereme rozsahy VPNconsultantPool, VPNconsultantPoolCompany
  • DNS Server - zvolíme Specify a zadáme firemní DNS servery
  • Authentication/Portal Mapping - vytvoříme dvě pravidla
    • G VPN Consultant - /noncompany - VPN-Consultant
    • G VPN Consultant - /company - VPN-Consultant-Company - zapneme vyžadování klientského certifikátu a přiřadíme Peer User s nastavenými parametry certifikátu

Autentizace uživatelů (Uživatelé a skupiny)

  • (VDOM) > User & Device > User Definitions
  • (VDOM) > User & Device > User Groups

Jak FortiGate pracuje s uživateli a skupinami, a jak se uživatelé ověřují, jsme si popsali v minulém článku FortiGate uživatelé, skupiny a autentizace vůči LDAP (AD DS). Pro větší zabezpečení přístupu můžeme využít FortiGate autentizace certifikátem do SSL VPN nebo FortiGate dvoufaktorová autentizace s použitím OTP.

Pro přihlášení do VPN můžeme použít lokální uživatele i uživatele ze vzdálených serverů (LDAP, RADIUS, TACACS+). Standardně se uživatelé ověřují zadáním jména a hesla. Speciální případ jsou Peer (PKI) user (mohou být zařazeni do Firewall nebo Peer Group), kteří používají klientský digitální certifikát. Vyžadování certifikátu můžeme zapnout i pro uživatele ze vzdálených serverů.

Můžeme využít i dvoufaktorovou autentizaci. Pokud chceme použít OTP (SMS, email, FortiToken) pro uživatele z LDAP serveru, tak nestačí vytvořit na FortiGate skupinu, kde bude členem skupina z LDAP serveru. Musíme vytvořit lokálně jednotlivé LDAP uživatele a u nich nastavit detaily pro OTP.

Zablokování přihlášení při chybné autentizaci

Pokud přihlášení do VPN opakovaně selže (špatné jméno, heslo, či se jinak nepovede ověřit), tak se na určitou dobu zablokuje přístup na přihlášení. Výchozí nastavení jsou 2 pokusy a zablokování na 60 vteřin. Poté se uživateli zobrazí chyba. A nejde ani znovu vyvolat přihlašovací dialog na webu, dokud neuběhne čas (neblokuje se uživatel, ale IP adresa).

Too many bad login attempts. Please try again in a few minutes.

Konfigurace se provádí pouze v CLI v konfiguraci SSL VPN.

config vpn ssl settings
    set login-attempt-limit 2
    set login-block-time 60
end

Přidělované adresní rozsahy

  • (VDOM) > Policy & Objects > Addresses

Existuje předefinovaný objekt SSLVPN_TUNNEL_ADDR1, který obsahuje rozsah adres (IP Range) 10.212.134.200-10.212.134.210. Ten můžeme upravit nebo si vytvořit i více vlastních objektů. Měli bychom volit privátní adresy ze subnetu, který nepoužíváme ve firemní síti. A snažit se nalézt takové, které se nepoužívají ani v domácích sítích.

Můžeme vybrat třeba subnet 172.31.254.0/24 a v něm vytvořit několik adresních rozsahů (IP Pool) jako 172.31.254.10-172.31.254.100 a 172.31.254.101-172.31.254.150. Ty definujeme jako objekt adresa, nejčastěji typu IP Range, jako interface můžeme zvolit SSL-VPN Tunnel Interface. A později je přiřadíme skupině uživatelů pomocí nastavení portálu (Portal).

SSL VPN Realms - různé přihlašovací adresy (URL)

  • (VDOM) > VPN > SSL-VPN Realms

K této oblasti jsem nenalezl skoro žádnou dokumentaci. Fortinet uvádí článek SSL VPN multi-realm, který je extra špatný i na jejich poměry. Další je již starý Configuring SSL VPN web portals.

Pozn.: Musíme mít povolenu vlastnost System > Feature Visibility - SSL-VPN Realms.

VPN Realm nám dovolí vytvořit různé URL adresy, buď se stejným doménovým jménem (Hostname) rozlišené podle cesty (Path), nebo různá doménová jména. Na adrese (Realm) můžeme vytvořit vlastní webovou přihlašovací stránku (výchozí přihlašovací stránku můžeme upravit ve (VDOM) > System > Replacement Messages).

Realm pak použijeme v mapování uživatelů na portál a vznikají kombinace uživatel - portál - Realm. Můžeme tak pro skupinu uživatelů přiřadit jiný portál podle toho přes jaké URL se přihlásí. Díky tomu jim můžeme přiřadit jinou IP adresu. A podle zdrojové IP adresy definujeme povolené komunikace ve FW politice.

FortiGate - SSL VPN Realms

Pomocí GUI můžeme vytvořit Realm, který je identifikovaný svým URL Path. Zjednodušený tvar URL je protocol://hostname:port/path. Pokud přistupujeme na SSL VPN (ať ve webu nebo FortiClientem) přes adresu https://vpn.firma.cz, tak pro přístup na definovaný Realm přidáme zadanou cestu, třeba https://vpn.firma.cz/company. Dále můžeme nastavit omezení, kolik uživatelů se současně může připojit. A můžeme upravit přihlašovací obrazovku.

Pozn.: GUI nám zobrazí informaci, přes jakou adresu přistoupit na SSL-VPN Realm, ale asi bude ve většině případů chybná, protože použije management adresu FortiGate (jak jsme aktuálně připojeni do konfigurace). A ani když dále definujeme Virtual Host, tak se nezobrazí správná adresa. V nastavení SSL VPN se alespoň zobrazuje IP adresa interface, kde běží VPN.

Pomocí CLI můžeme nastavit další důležitý údaj, který se po nastavení v CLI zobrazí i v GUI. Je nazvaný Virtual Host a jde o jiné hostname, které určí adresu pro tento Realm. Například tedy vpn2.firma.cz. Dokumentace CLI vpn ssl web realm.

config vpn ssl web realm
    edit "company"
       set virtual-host vpn2.firma.cz
    next

Použití (přiřazení) Realm

  • (VDOM) > VPN > SSL-VPN Settings

V Authentication/Portal Mapping pak můžeme přiřadit vytvořený Realm k mapování uživatele/skupiny na portál. Běžně se použije defaultní, tedy kořen. Uživatelé se pak mohou přihlásit pouze když přistoupí přes přiřazenou adresu, na ostatní přihlašovacích stránkách přihlášení neprojde.

FortiGate - Authentication/Portal Mapping

Úprava zpráv a výchozí přihlašovací obrazovky

  • (VDOM) > System > Replacement Messages

Defaultní přihlašovací obrazovku Web VPN a některé (chybové) zprávy můžeme editovat. Vpravo nahoře se přepneme na Extended View a jde o sekci SSL-VPN.

SSL-VPN Portals - portály

  • (VDOM) > VPN > SSL-VPN Portals

Portál je vstupní branou do SSL VPN, ať jde o tunel nebo webovou VPN. Portály jsou profily, které přiřazujeme uživatelům nebo skupinám a tím jim povolíme připojení do některého módu VPN. Určujeme hlavní parametry chování daného VPN připojení, jako jsou přidělované IP adresy, možnosti FortiClienta nebo obsah Web VPN. Můžeme provést určité kontroly klienta (Host Check) a pokud neprojdou, tak nepovolit připojení.

Defaultně jsou připraveny tři SSL-VPN Portals, které můžeme, ale nemusíme použít.

  • web-access - povolen web přístup
  • tunnel-access - povolen přístup přes klienta
  • full-access - povoleno oboje

globálním nastavení SSL VPN musíme zvolit některý portál jako defaultní (All Other Users/Groups). Aby se uživatelé mohli přihlásit do VPN, a tedy došlo k volbě portálu, tak musí být součástí nějaké FW politiky. Přesto může být bezpečnější vytvořit portál bez přístupu a ten nastavit jako výchozí.

  • no-access - vše zablokováno
FortiGate - SSL-VPN Portals

Nastavení portálu pomocí GUI

Dokumentace Portal configuration

  • (VDOM) >VPN > SSL-VPN Portals

Hlavní volby v portálu je povolení/zakázání připojení přes Tunnel Mode a Web Mode. Pokud není povolený Tunnel Mode, tak se uživatel nepřihlásí FortiClientem. Pokud není povolený Web Mode, tak se uživatel přesto přihlásí na web. Stejně tak, pokud vytvoříme no-access tunel, kde je vše vypnuté (Tunnel Mode i Web Mode). Uživatel dostane zavádějící informaci:

The SSL-VPN portal has been enabled for tunnel mode use only. FortiClient is required to connect.
FortiGate - Web Portal nepovolený

V praxi může být vhodné vytvořit vlastní Portal profily pro jednotlivé skupiny uživatelů. Minimálně tam, kde se vyžadují různé možnosti VPN.

FortiGate - SSL-VPN Portals nastavení

GUI dovoluje nastavit pouze určité vlastnosti portálu.

  • Name - pojmenování portálu
  • Limit Users to One SSL-VPN Connection at a Time - pokud již existuje jedno připojení pro uživatele, tak nelze navázat další
  • Tunnel Mode - povolení připojení do SSL VPN tunel (FortiClient)
    • Enable Split Tunneling - standardně jde všechen provoz do VPN tunelu, při zapnutí se posílají pouze určité adresy a ostatní odchází lokálně do internetu
    • Routing Address - které adresy se směrují do tunelu (pokud nejsou zadány, tak by se měly vzít adresy z definovaných politik)
    • Source IP Pools - rozsah přidělovaných adres pro VPN klienty
  • Tunnel Mode Client Options - nastavení, která ovlivní volby FortiClient
    • Allow client to save password - uživatel může uložit heslo
    • Allow client to connect automatically - když se aplikace spustí (třeba při startu), tak se pokusí automaticky připojit
    • Allow client to keep connections alive - pokud povolíme, tak se klient snaží o nové připojení, když dojde k výpadku, ale musí se uložit heslo
    • DNS Split Tunneling - různé DNS pro různé domény, Split DNS support for SSL VPN portals
  • Host Check - kontrola, že na klientovi běží antivir nebo firewall nebo oboje
  • Restrict to Specific OS Versions - možnost omezit přístup z některých verzí OS (nabízí určité verze Windows a MacOS)
  • Enable Web Mode - povolí přístup na webový portál (i když nepovolíme, tak je možno se přihlásit na web, ale neobsahuje dané funkce)
    • Portal Message - nadpis a název portálu
    • Theme - barevný vzhled
    • Show Session Information - widget navrchu stránky, který obsahuje info době připojení, přenesených datech, uživatelovo jméno
    • Show Connection Launcher - možnost vytvářet spojení na vnitřní zdroje, bez nutnosti, aby byly předdefinovány (Predefined Bookmarks), nabízí tlačítko Quick Connection
    • Show Login History - seznam historie připojení uživatele
    • User Bookmarks - možnost vytvořit vlastní záložku, nabízí tlačítko New Bookmark
    • Pre-Defined Bookmarks - můžeme připravit různé záložky na interní zdroje
  • Enable FortiClient Download - na portále je odkaz na stažení FortiClient, můžeme vybrat OS (Windows, Mac, iOS, Android), ale u mobilních platforem jde pouze o odkaz do ochodu a jinak se stehuje online installer, který dále stahuje data od Fortinetu
    • Download Method - stažení přes přímý link nebo skrze SSL VPN
    • Customize Download Location - můžeme zadat URL, kde je klient pro Windows a Mac

Ve webovém portálu se můžeme připojit na různé protokoly, které jsou zprostředkovány ve webovém prohlížeči. Podporované protokoly pro odkazy jsou HTTP/HTTPS, FTP, RDP, SFTP, SMB/CIFS, SSH, TELNET, VNC. Pomocí CLI můžeme nastavit ještě několik dalších parametrů. Například zakázat některé protokoly pro odkazy.

Dokumentace CLI příkazů uvádí také možnost definovat odkaz typu Port Forward. Ale tyto příkazy se mi nedaří použít a jediná zmínka o této funkci je ke staré verzi Port forwarding mode.

Fortinet Web VPN

Nastavení portálu pomocí CLI

Dokumentace CLI vpn ssl web portal

Níže jsou zmíněny pouze určitá nastavení portálu pomocí CLI. Primárně jde o možnosti, které se nedají nastavit v GUI.

Přidělování adres klientovi

Mimo přidělení z nastaveného rozsahu (range) můžeme nastavit použití adresy přiřazené uživateli z externího serveru (user-group).

config vpn ssl web portal
    edit <name>
        set ip-mode range
    next
end

Adresa DNS a WINS serveru

Můžeme zadat DNS a WINS servery, které dostane klient pro daný portál.

config vpn ssl web portal
    edit <name>
        set dns-server1 0.0.0.0
        set dns-server2 0.0.0.0
        set dns-suffix ''
        set wins-server1 0.0.0.0
        set wins-server2 0.0.0.0
    next
end

Restrikce komunikace klienta

Zablokování komunikace VPN uživatele na jeho lokální subnet. Pokud je vypnutý Split Tunnel (set split-tunneling disable), tak máme k dispozici dva příkazy. První Technical Tip: Enabling SSL VPN Full Tunnel, k druhému jsem nenašel žádné informace.

config vpn ssl web portal
    edit <name>
        set exclusive-routing disable
        set service-restriction disable
    next
end

Nastavení Web Mode

Řada nastavení v CLI se týká Web Mode, který musí být zapnutý (set web-mode enable).

config vpn ssl web portal
    edit <name>

Můžeme určit, které aplikace jsou přístupné ve Web VPN pro připojení

        set allow-user-access web ftp smb sftp telnet ssh vnc rdp ping citrix portforward

Možnost skrýt widget pro záložky

        set display-bookmark enable

Umožňuje uživatelům vytvářet záložky pro všechny uživatele ve stejné skupině

        set user-group-bookmark enable

Po přihlášení do Web VPN otevře zadanou interní adresu skrze VPN (otevírá jako nové okno)

        set redir-url ''

Možnost nastavit jazyk pro portál, která mění globální nastavení jazyk ve FortiGate

        set custom-lang ''

Povoluje použíti NTLMv1 pro SMB/CIFS

        set smb-ntlmv1-auth disable

Minimální a maximální povolená verze SMB

        set smb-min-version smbv2
        set smb-max-version smbv3

Transformace zpětných lomítek v URL

        set transform-backward-slashes disable

Zabrání odeslání SSO pověření na klienta

        set hide-sso-credential enable
    next
end

Kontrola klientů

Pak máme ještě příkazy pro kontrolu klientů, na ty se podíváme v dalším díle.

config vpn ssl web portal
    edit <name>
        set host-check none
        set mac-addr-check disable
        set os-check disable
    next
end

SSL-VPN Settings - globální nastavení SSL VPN

  • (VDOM) > VPN > SSL-VPN Settings

Některá nastavení SSL VPN se nastavují globálně a nemůžeme je upravovat pro různé uživatele. Je to například interface a port, kde FortiGate poslouchá VPN připojení klientů. Co mi přijde špatné, že nemůžeme určit IP adresu, na které poslouchá. Globálně určujeme, jaké rozsahy se použijí pro přidělení adres klientům v Tunnel VPN. Provádíme mapování uživatelů (skupin) na portály.

FortiGate -  SSL-VPN Settings

Nastavení SSL VPN pomocí GUI

  • Connection Settings - základní parametry připojení
    • Listen on Interface(s) - určíme rozhraní, na kterém bude SSL VPN poslouchat, nemůžeme určit IP adresu (což mi přijde jako zásadní chyba), ale použije se primární IP adresa na interfacu a pokud jsou použity, tak i všechny sekundární
    • Listen on Port - na jakém portu VPN poslouchá (HTTPS), můžeme dostat varování, že je port v konfliktu s portem pro administraci (nastavení Global > System > Settings), ale pokud používáme jiný interface, tak to není problém (opět jde o zavádějící informaci)
    • Redirect HTTP to SSL-VPN - pokud uživatel přistoupí na HTTP, tak bude přesměrován
    • Restrict Access - povolení přístupu z jakýchkoliv adres či pouze vybraných
    • Idle Logout - při neaktivitě odhlásí VPN session
    • Inactive For - doba neaktivity
    • Server Certificate - certifikát pro HTTPS
    • Require Client Certificate - autentizace klientským certifikátem
  • Tunnel Mode Client Settings - nastavení (adres) pro SSL VPN tunel (FortiClient)
    • Address Range - z jakého rozsahu se přidělují IP adresy, Specify custom IP ranges - můžeme vytvořit objekty adresa a ty zde použít, pokud necháme Automatically assign address, tak se použije předefinovaný objekt SSLVPN_TUNNEL_ADDR1, který můžeme upravit
    • DNS Server - jestli má klient dostat interní DNS servery, FortiClient tyto adresy nastavuje nejen na SSL VPN adaptér, což dělá problémy, popis změny nastavení je na konci článku v konfiguraci FortiClienta
    • Specify WINS Servers - jestli má klient dostat interní WINS servery
  • Authentication/Portal Mapping - přiřazení uživatelů nebo skupin na existující portály, které určují specifické vlastnosti VPN připojení, musíme nastavit defaultní portál (All Other Users/Groups)

Nastavení SSL VPN pomocí CLI

Dokumentace CLI vpn ssl settings

Každé nastavení v GUI aplikuje určitý příkaz do konfigurace. Takže v příkazové řádce nastavíme vše, co máme v GUI, ale nachází se tam i řada dalších nastavení. Níže se podíváme na některé možnosti CLI, které v GUI nejsou.

Jenom taková poznámka, v každé části konfigurace můžeme použít příkaz show, který nám zobrazí aktuální nastavení. Můžeme jej ještě doplnit a zobrazí se všechna nastavení, včetně těch, které mají výchozí hodnotu.

FW1 (setting) # show full-configuration 

Povolené protokoly

Můžeme omezit povolené TLS a případně DTLS protokoly.

config vpn ssl settings
    set ssl-max-proto-ver tls1-3
    set ssl-min-proto-ver tls1-2
    set dtls-tunnel enable
    set dtls-max-proto-ver dtls1-2
    set dtls-min-proto-ver dtls1-0
end

Povolené šifrovací algoritmy

Můžeme vynutit nějakou úroveň bezpečnosti povolením pouze určité kategorie algoritmů (high by mělo být minimálně 128 bit AES nebo ChaCha). Můžeme také vyjmenovat některé šifry, které se nesmí použít (defaultně není nastaveno). Configuring encryption key algorithms

config vpn ssl settings
    set algorithm high
    unset banned-cipher
end

Časové limity připojení

Odhlášení při neaktivitě (idle-timeout) můžeme nastavit i v GUI. Ale dobu platnosti autentizace (auth-timeout), která způsobí ukončení (odhlášení) SSL VPN po uplynutí zadané doby, nastavíme pouze v CLI. Výchozí hodnota je 28800 sekund, tedy 8 hodin.

config vpn ssl settings
    set idle-timeout 300
    set auth-timeout 28800
end

HTTP Strict Transport Security (HSTS) includeSubDomains

Standardně posílá HSTS hlavičku Strict-Transport-Security: max-age=31536000. Můžeme použít příkaz:

config vpn ssl settings
    set hsts-include-subdomains enable
end

Poté se posílá kompletní hlavička:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Authentication/Portal Mapping - autentizační pravidla

V GUI můžeme provést jednoduché přiřazení uživatelů/skupin na portál (a případně Realm). CLI nám nabízí více možností. Autentizační pravidla (mapování) jsou číslována a můžeme je upravit (vytvořit).

    config authentication-rule
        edit 1

V globálním nastavení určujeme, na jakém interface a z jakých adres VPN poslouchá. Můžeme zadat více rozhraní a pak na pravidlech přiřadit určité rozhraní pro dané mapování (Technical Note: SSL VPN source-interface setting in authentication rule taking precedence).

              set source-interface "Port1"
              set source-address "all"

V globálním nastavení můžeme zapnout vyžadování autentizace klientským certifikátem (buď libovolný důvěryhodný certifikát nebo dohromady s User Peer specifický certifikát), pak se uplatní pro všechna připojení. Pokud chceme použít certifikát pouze pro určité uživatele (portál), tak můžeme definovat zde.

              set client-cert disable
              set user-peer {string}

Síla použitých šifer. Nevím, nakolik to souvisí s globálním nastavením set algorithm. Můžeme volit High (>= 168 bits), Medium (>= 128 bits) nebo Any.

              set cipher high

Omezení autentizačních metod. Můžeme volit, odkud musí být ověření uživatele, any, local, radius, tacacs+, ldap.

              set auth any
        next

Firewall Policy - politiky pro komunikaci VPN klientů

  • (VDOM) > Policy & Objects > IPv4 Policy

Poté, co nastavíme SSL VPN připojení, tak musíme definovat povolené komunikace pro uživatele připojené do VPN. Obecně, aby se vůbec mohl uživatel přihlásit do VPN, tak musí být součástí nějaké politiky (která má jako zdrojový interface SSL-VPN Tunnel Interface).

Pro komunikaci VPN klientů do interní sítě vytváříme politiky, kde je jako vstupní interface SSL-VPN Tunnel Interface. Různá pravidla pro různé uživatele, a jejich VPN připojení, můžeme nastavit díky tomu, že jako zdroj zadáváme uživatelské skupiny a adresní rozsahy. Ovšem IP adresy z definovaných rozsahů se přidělují pouze klientům v Tunnel módu, pokud pro nějakou skupinu vytváříme pouze Web VPN, tak se dle dokumentace má zvolit adresa all.

Pozn.: To mi dává smysl, klienti přistupují ze svých veřejných adres a FortiGate dělá proxy. Když se podíváme do logu provozu, tak to odpovídá. Klienti, kteří mají navázaný VPN tunel, tak u nich je zdrojová adresa z VPN rozsahu (to je komunikace, která se zapouzdří do tunelu a na straně FortiGate opět rozbalí). Ale co mi již nedává smysl. Uvědomil jsem si, že tam kde jsem povolil Tunel i Web, tak jsem v politice nastavil pouze IP adresy VPN uživatelů, a přesto přístup přes Web VPN fungoval. Udělal jsem různé testy a pro Web VPN vůbec nezáleží, jaká adresa se zadá jako zdroje, může tam být dokonce none.

Parametry IPv4 politiky

  • název (Name) - rozumné pojmenování politiky
  • vstupní interface (Incoming Interface) - musíme volit rozhraní VPN tunelu, to má alias SSL-VPN Tunnel Interface
  • odchozí interface (Outgoing Interface) - volíme podle sítě, kam chceme povolit komunikaci
  • zdroj (Source) - zadáváme uživatelské skupiny (použité v pravidlech VPN) a adresní rozsahy (objekty adresa, z kterých jsme klientům přiřadili IP adresu)
  • cíl (Destination) - adresy sítí (objekty adresa), kam chceme povolit komunikaci
  • služby (Service) - jaké protokoly/porty chceme povolit, můžeme použít ALL
  • akce (Action) - volíme Accept
  • Inspection Mode, Security Profiles - podle toho, jak využíváme bezpečnostní kontroly, nastavíme požadované hodnoty
  • NAT - opět dle požadavků a topologie můžeme a nemusíme využít překlad zdrojové IP adresy
  • logování (Log Allowed Traffic) - vhodné je All Sessions
  • Enable this policy - samozřejmě musíme politiku povolit
FortiGate IPv4 Policy pro SSL VPN

Díky tomu, že jsme různé uživatelské skupiny přiřadili k určitému portálu, kde byl nastaven určitý adresní rozsah. Tak jednoduše vytvoříme různá pravidla pro různé uživatele. Pokud využijeme i Realm, tak můžeme stejné skupině uživatelů přiřadit různý portál (a tedy IP adresu), podle toho, přes jaké URL (Realm) se přihlásí. Můžeme tak vytvořit firemní profil (Realm), kde dochází ke kontrolám stanice (Host Check) nebo se autentizuje certifikátem. Pokud přihlášení projde, tak politika povolí více komunikací. A druhý profil, kde se uživatel může přihlásit odkudkoliv, ale připojení je omezené.

Běžně povolíme komunikaci VPN klientů do interní sítě. Můžeme ale přidat také obrácené politiky, které povolí určitou komunikaci z interní sítě na VPN klienty. Standardně není možná komunikace VPN klientů mezi sebou, a určitě to je bezpečné. Pokud je třeba, tak můžeme povolit i to Technical Tip: How to perform routing between SSLVPN Clients.

Routing - směrování

V polovině návodů na Fortinetu pro nastavení SSL VPN se uvádí, že je třeba vytvořit statickou route pro adresy klientů ve VPN. Routing in tunnel mode. V druhé polovině návodů nic takového není. Když žádné směrování ručně nenastavím, tak mi stejně veškerá komunikace funguje.

Našel jsem nějaké zmínky, že je to proto, aby fungovaly odpovědi třeba UDP protokolu. Nebo diskusi, kde se někdo ptal právě na důvod tohoto manuálního směrování. Někdo psal, že je to proto aby fungovala komunikace z interní sítě na klienty VPN. Ale ve chvíli, kdy takovou komunikaci povolím politikou, tak funguje a routa není potřeba.

Ještě je otázka, co přesně dělá následující příkaz, který je defaultně zapnutý.

config vpn ssl settings 
     set auto-tunnel-static-route enabled
end

Odstraňování problémů a monitoring klientů

Debug SSL VPN

Dokumentace SSL VPN troubleshooting

Při řešení problémů můžeme pomocí CLI zapnout debug režim pro SSL VPN.

diagnose debug application sslvpn -1
diagnose debug enable

Může se hodit zapnout zobrazení času u jednotlivých záznamů.

diagnos debug console timestamp enable

Nebo také zapnout debugování autentizace.

diagnose debug application fnbamd -1 

Nyní se nám do CLI vypisují všechny související události (i když to všechny je v uvozovkách, stejně jako informační hodnota zpráv). Příklad pouze vybraných událostí při přihlášení uživatele do Web VPN:

[9314:root:188]allocSSLConn:289 sconn 0x7fe3ca091500 (1:root)
[9314:root:188]SSL state:before SSL initialization (78.28.251.155)
[9314:root:188]got SNI server name: vpn.firma.cz realm (null)
[9314:root:188]client cert requirement: no
[9314:root:188]SSL state:SSLv3/TLS read client hello (78.28.251.155)
[9314:root:188]SSL state:TLSv1.3 early data (78.28.251.155)
[9314:root:188]got SNI server name: vpn.firma.cz realm (null)
[9314:root:188]client cert requirement: no
[9314:root:188]SSL state:SSL negotiation finished successfully (78.28.251.155)
[9314:root:188]SSL established: TLSv1.3 TLS_AES_256_GCM_SHA384
[9314:root:188]req: /remote/logincheck
[9314:root:188]rmt_web_auth_info_parser_common:470 no session id in auth info
[9314:root:188]rmt_web_access_check:723 access failed, uri=[/remote/logincheck],ret=4103,
[9314:root:188]User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
[9314:root:188]sslvpn_auth_check_usrgroup:2039 forming user/group list from policy.
[9314:root:188]sslvpn_auth_check_usrgroup:2145 got user (0) group (3:0).
[9314:root:188]sslvpn_validate_user_group_list:1642 validating with SSL VPN authentication rules (2), realm ().
[9314:root:188]sslvpn_validate_user_group_list:1690 checking rule 1 cipher.
[9314:root:188]sslvpn_validate_user_group_list:1698 checking rule 1 realm.
[9314:root:188]sslvpn_validate_user_group_list:1709 checking rule 1 source intf.
[9314:root:188]sslvpn_validate_user_group_list:1748 checking rule 1 vd source intf.
[9314:root:188]sslvpn_validate_user_group_list:1845 rule 1 done, got user (0:0) group (1:0) peer group (0).
[9314:root:188]sslvpn_validate_user_group_list:1963 got user (0:0), group (3:0) peer group (0).
[9314:root:188]two factor check for bouska: off
[9314:root:188]sslvpn_authenticate_user:191 authenticate user: [bouska]
[9314:root:188]sslvpn_authenticate_user:198 create fam state
[9314:root:188]fam_auth_send_req:583 with server blacklist: 
[9314:root:188]fam_auth_send_req_internal:461 fnbam_auth return: 4
[9314:root:188]Auth successful for group G VPN
[9314:root:188]fam_do_cb:654 fnbamd return auth success.
[9314:root:188]SSL VPN login matched rule (1).
[9314:root:188]rmt_web_session_create:781 create web session, idx[1]
[9314:root:188]req: /remote/hostcheck_install?auth_type=16&u
[9314:root:188]deconstruct_session_id:426 decode session id ok, user=[bouska],group=[G VPN],authserver=[DC],portal=[VPN1],host=[78.28.251.155],realm=[],idx=1,auth=16,sid=7631bb58,login=1584609359,access=1584609359,saml_logout_url=no
[9314:root:188]req: /sslvpn/portal.html
[9314:root:188]mza: 0x26f18b0 /sslvpn/portal.html

Pro vypnutí debug režimu můžeme použít

diagnose debug disable
diagnose debug reset

VPN události

  • (VDOM) > Log &Report > Events

Na FortiGate se můžeme podívat na určité událost (Events) ohledně SSL VPN, jen musíme správně přepnout typ události.

FortiGate - Log & Report > VPN Events

Dohled na klientovi

Ve FortiClientovi můžeme zapnout Debug logování a exportovat logy. Pro náročnější kontrolu, co klient dělá, můžeme využít Sysinternals Process Monitor. Pro kontrolu šifer a dalších HTTPS vlastností můžeme využít Qualys SSL Labs.

Monitoring přihlášených uživatelů

  • (VDOM) > Monitor > SSL-VPN Monitor
  • (VDOM) > Monitor > Firewall User Monitor

Rovnou uvedu, že informace o navázaných SSL VPN Session a uživatelích přihlášených do VPN, je další velmi nedostatečná oblast. Dozvíme se pouze základní údaje o uživateli, z jaké veřejné IP adresy je připojen a jakou dostal interní adresu. Tunel můžeme ukončit. Pod monitorem Firewall uživatelů uvidíme několik dalších údajů, jako skupinu a přenesená data.

FortiGate - SSL-VPN Monitor

Nepřišel jsem na to, jak zjistit údaje o použitých protokolech (zda jde o TLS/DTLS), šifrovacích algoritmech, detaily o klientovi, aplikovaný portál a Realm, doba nečinnosti apod. Když řešíme omezení připojení klientů podle MAC adresy, tak bychom také chtěli vidět tento údaj.

Pomocí CLI se dostaneme k podobným údajům jako v GUI

FW1 (FWINT) # execute vpn sslvpn list 
SSL VPN Login Users:
 Index  User     Auth Type Timeout     From  HTTP in/out  HTTPS in/out
 0      bouska   16(1)      3598        1.2.3.4  0/0   0/0
 
SSL VPN sessions:
 Index  User      Source IP Duration  I/O Bytes   Tunnel/Dest IP 
 0      bouska    1.2.3.4    163 1167583/1216084 172.31.254.10

Pokud chceme získat údaje o historii připojování uživatelů do VPN, tak potřebujeme FortiAnalyzer. Přitom ty údaje FortiGate musí znát, protože ve Web VPN nám může zobrazovat naši historii přihlášení.

Pomocí CLI si můžeme zobrazit souhrnné statistiky.

FW1 (FWINT) # diagnose vpn ssl statistics
SSLVPN statistics (FWINT):
------------------
Memory unit:               1
System total memory:       8368185344
System free memory:        5880107008
SSLVPN memory margin:      629145600
SSLVPN state:              normal
 
Max number of users:       9
Max number of tunnels:     6
Max number of connections: 13
 
Current number of users:       6
Current number of tunnels:     5
Current number of connections: 6

FortiClient - klient pro připojení do VPN

Jako VPN klient se používá aplikace FortiClient. Ta je aktuálně ve verzi 6.0.x a 6.2.x, mezi kterými je velký rozdíl. Do verze FortiClient 6.0.x je poskytován zdarma. Jde o klienta, který obsahuje řadu komponent a při instalaci volíme, které budeme používat. Minimálně musíme nainstalovat Security Fabric Agent (Endpoint Telemetry a Host Vulnerability Scan), abychom mohli přidat Secure Remote Access (SSL a IPsec VPN klient), další komponenty jsou třeba AntiVirus, Application Firewall, Web Filtering, Single Sign On.

Od verze FortiClient 6.2.0 začalo jít o placený produkt, který musí být řízený pomocí EMS (Enterprise Management Server). Dříve se mohl FortiClient připojit také k FortiGate (FortiOS od verze 6.2 to nepodporuje). Fortinet dává k dispozici zdarma pouze omezenou verzi FortiClient VPN 6.2. Ta neobsahuje jiné komponenty než SSL a IPsec VPN klient, ale i tyto možnosti jsou omezené. Není například podporován Host Check nebo IKEv2.

K dispozici jsou verze pro různé operační systémy, ale podpora všech funkcí je pouze v klientovi pro Windows. Detaily nalezneme na oficiální stránce FortiClient, kde je k dispozici i stažení online instalátoru (malý soubor, který si při instalaci stahuje další data přes internet, což v praxi funguje velmi pomalu). V nastavení portálu pro Web VPN můžeme povolit stažení klienta, pak se nabízí také online instalátor (takže je lepší zvolit vlastní umístnění a někam nahrát offline instalátor). Pokud máme účet, tak můžeme stáhnout offline instalaci z webu Support Fortinet v menu Download - Firmware Images - FortiClient.

Kolegové mi říkali, že FortiClient 6.0 pro Linux vyžaduje oprávnění Root a celkově nefunguje. Jako funkční zvolili alternativu OpenFortiVPN, případně Fortinet SSLVPN support for NetworkManager (pokud se využívá Split Tunnel, tak je třeba nastavit Use just for resources on this connection).

Zde se primárně věnujeme Windows verzi klienta FortiClient 6.0. Co jsem již psal v úvodu, instalátor 6.0.9.0277 má 95 MB a po nainstalování pouze VPN zabere 290 MB. Instalátor 6.2.6.0951 má 98 MB a zabere 205 MB. Rozhodně nejde o svižnou a spolehlivou aplikaci.

Nastavení FortiClient

Dokumentace FortiClient 6.0

Konfigurace FortiClient 6.2 by měla jít řídit přes EMS server. Pro FortiClient 6.0 by mělo jít vytvořit upravený instalátor, podle požadavků firmy, nástrojem FortiClient Configurator Tool. Ale abychom získali tento nástroj, tak musíme mít účet na Fortinet Developer Network. Pro vytvoření účtu potřebujeme dva sponzory, což jsou zaměstnanci Fortinet, kteří schválí vytvoření účtu.

Takže nám zbývá jen manuální konfigurace FortiClienta v GUI (která podobně jako ve FortiOS dovolí pouze něco) anebo úprava XML konfiguračního souboru. Níže je pohled na rozhraní verze 6.0 a 6.2.

FortiClient 6.0 nastavení
FortiClient 6.2 nastavení

Při řešení problémů se může hodit nastavení úrovně logování a export logů do textového souboru. V podstatě jediná volba pro globální nastavení VPN (další jsou parametry jednotlivých VPN připojení) je využití DTLS, což na některých místech Fortinet doporučuje, přesto je výchozí stav vypnuto.

Odemknutí nastavení

Běžně jsou některé volby zamčené a abychom je mohli použít/změnit tak musíme odemknout nastavení. Zámek vlevo dole nebo vpravo nahoře Unlock Settings.

Záloha konfigurace

Pokud chceme upravit aktuální nastavení, tak můžeme provést zálohu konfigurace, čímž získáme XML soubor s nastavením.

  • FortiClient - Settings - v části System - Backup
  • třeba do souboru forticlient.conf, potvrdíme OK, dostaneme informaci, že záloha proběhla

Obnova konfigurace

Pokud jsme upravili nastavení zálohované konfigurace, nebo jsme dostali připravený konfigurační soubor, tak jej obnovíme (importujeme) do FortiClienta.

  • FortiClient - Settings - v části System - Restore
  • vybereme soubor a potvrdíme, dostaneme informaci, že obnova proběhla

Záloha a obnova v příkazové řádce

Zálohu i obnovu konfigurace můžeme provést pomocí nástroje pro příkazovou řádku FCConfig.exe.

FCConfig -m all -f <filename> -o export
FCConfig -m all -f <filename> -o import

Dokonce můžeme exportovat/importovat pouze určitou část konfigurace. Níže je část VPN a pouze VPN připojení.

FCConfig -m vpn -f <filename> -o exportvpn
FCConfig -m vpn -f <filename> -o importvpn

Úprava nastavení a XML konfigurační soubor

Dokumentace FortiClient 6.0.9 Administration Guide, FortiClient 6.0.9 XML Reference Guide

Pomocí XML konfiguračního souboru můžeme upravit řadu nastavení. Pomocí tohoto souboru můžeme na klienty šířit i nastavené profily pro VPN připojení. Pokud uložíme zálohu, tak v souboru máme většinu nastavení a jejich hodnot, některé další parametry můžeme doplnit. Tak jak jsme si ukázali v článku o autentizaci certifikátem, pokud chceme využít počítačový certifikát. Určitý popis všech nastavení se nachází v XML referenční příručce.

Konfigurační soubor jednoduše otevřeme v textovém editoru a upravíme hodnoty v patřičné části XML. Následně uložíme. XML soubor obsahuje řadu částí, které jsou popsány v dokumentaci. Ty hlavní pro SSL VPN jsou následující.

<forticlient_configuration>
    <system>
    </system>
    <endpoint_control>
    </endpoint_control>
    <vpn>
        <options>
        </options>
        <sslvpn>
            <options>
            </options>
            <connections>
                <connection>
                </connection>
            </connections>
        </sslvpn>
    </vpn>
    <vulnerability_scan>
    </vulnerability_scan>
</forticlient_configuration>

V konfiguraci můžeme nastavit řadu speciálních vlastností. Například spouštět nějaký skript při navázání VPN tunelu. Nebo nastavit navázání VPN tunelu před přihlášením do Windows. Stojí za to podívat se do seznamu možností.

Nastavení DNS serverů pouze na SSL VPN adaptér

Jeden z problémů, které jsem řešil a nikde nenarazil na zmínku co s tím, se týkal registrace DNS jmen do firemního DNS. Když se uživatel připojil do VPN, tak se pro jeho jméno počítače vytvořily 2 i více záznamů ve firemním DNS. Jeden záznam obsahoval IP adresu z VPN připojení, tedy adaptér Fortinet SSL VPN Virtual Ethernet Adapter. Další záznam měl IP adresu z Wireless nebo Ethernet adaptéru lokální sítě uživatele.

Příčina byla vidět hned. Firemní DNS servery se nepřidaly pouze na Fortinet SSL VPN Virtual Ethernet Adapter, ale také na adaptér, kterým byl uživatel připojen lokálně do sítě.

Až v nastavení FortiClienta pomocí XML souboru jsem nalezl, jak toto chování změnit.

<forticlient_configuration>
    <vpn>
        <sslvpn>
            <options>
               <prefer_sslvpn_dns>0</prefer_sslvpn_dns>
            </options>
        </sslvpn>
    </vpn>
</forticlient_configuration>

Případně můžeme nastavit, aby se neprováděla registrace DNS záznamu. Ale to vypadá, že pouze na Fortinet SSL VPN Virtual Ethernet Adapter odškrtne položku Register this connection's addresses in DNS. Pokud nenastavíme přepínač výše, tak se stejně zaregistruje hlavní adaptér. Také to vypadá, že po vrácení přepínače na 0 se znova volba pro registraci DNS nezaškrtne.

Nastavení je na stejném místě a jde o značku.

               <no_dns_registration>1</no_dns_registration>

Odinstalace FortiClient

FortiClient VPN 6.2.6 se mi daří odinstalovat standardně přes Programs and Features. Ale u FortiClient 6.0.9 mi na všech počítačích chybí volba Uninstall a nachází se tam pouze Repair. Postup z dokumentace Uninstalling FortiClient také nefunguje.

Na fórech jsou různé rady, ale jediné, co mi zafungovalo, je použít nástroj FCRemove.exe, který se nachází mezi FortiClientTools ve složce SupportUtils. Tyto nástroje stáhneme z webu Support Fortinet na stejném místě jako klienta.

Pozn.: Když jsme u FortiClientTools, tak se tam nachází také nástroj FortiSSLVPNclient (SSLVPNcmdline), který jsem moc nepochopil. Myslel jsem, že to je nějaký jednoduchý VPN klient, ale bez nainstalovaného FortiClienta nefunguje (ani nevypíše žádnou chybu). Při spuštění zobrazí jednoduché GUI a asi se dá volat i z příkazové řádky.

zobrazeno: 19239krát | Komentáře [1]

Autor:

Související články:

Fortinet FortiGate a další

Bezpečnostní řešení firmy Fortinet. Nejvíce zaměřeno na Next Generation Firewall (NGFW) FortiGate.

VPN - Virtual Private Network

Série článků, která obsahuje obecný popis technologie VPN. Rozebírá jednotlivé typy VPN, jako je Site to Site VPN a Remote Access VPN. A popisuje konfigurace na různých zařízeních.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] Martin

    Ahoj, chtěl jsem se zeptat jestli jste řešil problematiku připojení pouze klientů registrovaných v EMS

    Středa, 29.11.2023 17:34 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách