www.SAMURAJ-cz.com 

24.04.2024 Jiří Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

FortiGate konfigurace, upgrade, mody provozu, síťová rozhraní, CLI

Pátek, 29.05.2020 09:56 | Samuraj - Petr Bouška |
Článek se věnuje základní konfiguraci (instalace a upgrade) fyzické appliance Next Generation Firewall Fortinet Fortigate. Popisuje možné módy provozu (operační mód, inspekční mód a NGFW mód). Rozebírá fyzická i virtuální síťová rozhraní. Zmiňuje základy použití příkazové řádky (CLI). A na závěr možnost automatického zálohování konfigurace.

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.

Řadu věcí a konfigurace FortiGate jsem popisoval v článku Fortinet FortiGate, který se týkal verze 5.6.3. V tomto článku (a dalších) nebudu popisovat úplně vše znovu, takže pro některé informace je možno nahlédnout do staré verze.

Dokumentace

Fortinet v nových verzích přidává mnoho novinek a mění i principy funkce či konfigurace. Popis bohužel pokulhává. K verzi 6.2.3 není k dispozici komplexnější dokumentace. V dokumentaci ke každé podverzi je popsáno něco jiného, takže se opravdu těžko hledá nějaká informace (je třeba procházet řadu dokumentů).

Instalace / úvodní konfigurace

HW appliance FortiGate má nainstalovánu určitou verzi FortiOS a nastavenu výchozí IP adresu na MGMT rozhraní. Připojíme se k tomuto interface a pomocí webového rozhraní (nebo CLI) https://192.168.1.99 se dostaneme do konfigurace. Uživatel je admin bez hesla. Connecting using a web browser

Provedeme základní nastavení, kdy také nastavíme interface pro správu, a poté připojíme FortiGate standardně do sítě.

  • Network > Interfaces - nastavení IP adresy a Administrative access
  • Network > Static Routes - Default Gateway
  • System > Settings - jméno zařízení

Upgrade FortiOS

Dokumentace Performing a firmware upgrade, Firmware upgrade cluster.

  • (Global) > System > Firmware

Je dobré si přečíst FortiOS Release Notes, protože občas dochází k velkým změnám. Samozřejmě vytvořit zálohu. Mít k dispozici aktuální verzi firmware, kdyby bylo třeba se vrátit zpět.

Nabízí se možné verze, někdy je třeba nejprve upgrade na nižší verzi a pak na vyšší. Instaluje se patch v rámci verze nebo nová verze. Upgrade probíhá rychle, pak je nutný reboot zařízení, který trvá 2 až 3 minut (FortiOS 5.6 ve VM asi 1,5 minuty).

Pozn.: Ne vždy se nové verze v GUI nabízí (ale můžeme stáhnout ručně ze Supportu). Narazil jsem na článek Troubleshooting Tip: No firmware available from FortiGuard under firmware management. Po několika testech na dvou FortiGate to vypadá, že bude spíš problém v dostupnosti FortiGuard serverů. Příkazy často vrací Timeout nebo Error, ale občas vypíší seznam.

V případě HA clusteru probíhá upgrade také automaticky. Nejprve se povýší podřízené jednotky (Slave Node), restartují, přepne se primární jednotka (Master) a proběhne její upgrade. V defaultním nastavení (override disable, ha-uptime-diff-margin 300) se často znovu přepne primární jednotka. Master se volí podle delšího HA uptime, ale ignoruje se, pokud je rozdíl menší než 5 minut (můžeme změnit v konfiguraci). U Active-Active clusteru se na začátku upgradu vypíná Load Balancing.

Pokud používáme Virtual clustering, tak se nejprve přepne Master pro Virtual cluster 2 (aby byl všude primární jednotkou jeden fyzický FortiGate) a proběhne upgrade Slave jednotky. Po naběhnutí upgradované jednotky se čeká (vypadá to na 10 minut). Následně se přepne Master na upgradovanou jednotku a proběhne upgrade druhého FortiGate. Dojde k synchronizaci clusteru a HA override zařídí nastavení Master-Slave na virtuální clustery. V případě clusteru je tedy Firewall téměř neustále dostupný, ale při každém přenutí se přeruší navázané session (třeba VPN).

FortiGate firmware upgrade

Po upgradu je dobré provést kontrolu, zda se převedly všechny objekty politiky. Kontrola se provádí příkazem v CLI (Technical Tip: After FortiOS upgrade, some of the ISDB objects in the policy are missing).

diag debug config-error-log read

Základní nastavení

Pokud používáme VDOM, tak jsou některá nastavení globální (Global) a ovlivňují celý FortiGate. Ale většina se nastavuje v rámci VDOM. Tyto konfigurace musíme provést ve všech vytvořených VDOM. Potřeba je nezapomenout třeba na Feature Visibility.

  • (Global) > System > Settings - Idle timeout, System Time (vlastní NTP musíme nastavit v CLI), Email Service
  • (Global) > System > Settings - Administration Settings HTTPS port - běžně se zde píše varování, že je port 443 v konfliktu se SSL VPN, pokud ale máme povolen admin přístup na jiném interface než SSL VPN (nebo ji vůbec nepoužívám), tak to můžeme ignorovat
  • (VDOM) > System > Feature Visibility
  • (Global) > Network > DNS
  • (Global/VDOM) > System > SNMP
  • (Global/VDOM) > Log & Report > Log Settings
  • (VDOM) > Log & Report > Email Alert Settings

Nahrání certifikátů

  • (Global/VDOM) > System > Certificates - Import - Local Certificate

Jako lokální certifikát nahráváme serverové certifikáty, většinou včetně privátního klíče (můžeme také generovat žádost a nahrát podepsaný certifikát). Tyto certifikáty použijeme přímo pro FortiGate, SSL inspekci či publikaci serveru.

FortiGate System > Certificates

Další možnost jsou vzdálené certifikáty (Remote certificate). To jsou veřejné certifikáty bez privátního klíče.

  • (Global/VDOM) > System > Certificates - Import - CA Certificate

Pokud FortiGate nezná nějakou certifikační autoritu (CA), například interní, tak je dobré nahrát její certifikát. Když importujeme certifikát autority, tak se mu automaticky nastaví jméno. Změnit můžeme pouze v CLI

FW1 (global) # config certificate ca
FW1 (ca) # show 
config certificate ca
    edit "G_CA_Cert_1"
    next
end
FW1 (ca) # rename "G_CA_Cert_1" to Firma_Root_Authority

Pokud jsme nahráli a používáme nějaký Local Certificate, tak potřebujeme mít v systému certifikát jeho kořenové CA. V  případě víceúrovňové CA, certifikát všech CA v řetězci. Jinak můžeme dostávat chybu

fortigate certificate chain is incomplete

Pokud importujeme lokální certifikát z PFX, které obsahuje i certifikáty Root a Intermediate CA, tak stejně musíme ručně nahrát certifikáty CA.

Více info Technical Note: How to avoid certificate error message by chaining Root CA and Intermediate CA certificates on FortiGate.

Módy provozu systému FortiGate

Dokumentace Inspection modes (6.0.0), About inspection modes (6.2.3), Profile-based NGFW vs policy-based NGFW (6.2.3)

Jakým způsobem FortiGate zpracovává provoz, a uplatňuje bezpečnostní funkce, je dáno několika módy provozu. Jedná se o operační mód, inspekční mód a NGFW mód (případně další související parametry). Dříve (do verze 6.0.9) se všechny módy nastavovaly globálně pro celý FortiGate, případně pro každou VDOM (pokud byly aktivované). Od verze 6.2.0 došlo k zásadní změně a inspekční mód se nastavuje per FW politika. Předtím došlo k větší změně ve verzi 5.6.0, kdy byl přidán NGFW mód.

System Operation Settings

  • (Global) > System > Settings - System Operation Settings
FortiGate - System Operation Settings
FortiGate - System Operation Settings VDOM

Globální nastavení se nachází v nastavení systému v sekci System Operation Settings. Pokud používáme VDOM, tak jsou některé konfigurace v Global > System > VDOM. Nachází se zde také volba

Operační mód - Operating Mode

Mód fungování nastavujeme pro celý FortiGate, v případě použití VDOM pro každou VDOM. Výchozí je NAT/Route.

  • NAT/Route- standardní režim pro většinu situací, FortiGate funguje jako brána (Gateway) nebo směrovač (Router) mezi sítěmi, umožňuje využít NAT (nebo routing) a skrýt interní adresy
  • Transparent - v transparentním módu FortiGate nijak nemění IP adresy, pouze provádí bezpečnostní skenování provozu, umisťuje se mezi interní síť a směrovač

Přepnutí se provádí pomocí CLI

config system settings
    set opmode {nat | transparent}
end

Inspekční mód - Inspection Mode

  • (VDOM) > Policy & Objects > IPv4 Policy
FortiGate Inspection Mode

Od verze 6.2.0 se inspekční mód nastavuje v každé politice (Firewall Policy) a výchozí je Flow-based. Dříve se nastavoval globálně pro FortiGate (System > Settings) nebo VDOM (Global > System > VDOM) a výchozí byl Proxy-based. Stručné info Inspection Mode Per Policy.

  • Flow-based inspection - porovnává vzory (pattern) se snímkem paketů pro identifikaci bezpečnostních hrozeb, poskytuje větší výkon, obsah paketů se kontroluje paket po paketu jak prochází politikou (neukládá se do bufferu), poslední paket se zadrží a čeká na výsledek testu, pokud došlo k narušení (violation), tak se odesílá reset
  • Proxy-based inspection - rekonstruuje obsah, který prochází politikou, a zkontroluje jej z hlediska bezpečnostních hrozeb, podporuje více konfiguračních možností, ale je pomalejší, provoz procházející politikou se ukládá do vyrovnávací paměti pro inspekci (třeba při stahování souboru, příjmu poštovní zprávy apod. se ukládají všechny pakety souboru/zprávy, pak se jako celek ověří), pokud dojde k narušení, tak je zahozen a nahrazen zprávou (replacement message), v opačném případě je uvolněn cíli, musíme řešit velké soubory

Pozn.: Ve starších verzích, pokud jsme chtěli používat Virtual ServerHTTPS (a dalšími SSL protokoly), tak jsme museli mít nastaven mód Proxy-based. Nyní nastavujeme per politiku, takže stačí mít určitou politiku v tomto módu (pro použití jakéhokoliv Virtual Server musí být mód Proxy).

config firewall policy
    edit <policyid>
        set inspection-mode {proxy | flow}
    next
end

NGFW mód - Next-Generation FireWall Mode

NGFW mód se nastavuje globálně pro FortiGate (System > Settings) nebo pro VDOM (Global > System > VDOM). Výchozí je Profile-based. Dříve byl k dispozici pouze pro Flow-based Inspection Mode. Možnosti jsou

  • Profile-based - tradiční způsob, kdy vytváříme profily (Profile) pro bezpečnostní funkce (jako AV, Web Filter, Application Control, apod.) a ty aplikujeme na politiky (Policy), definujeme IPv4 Policy
  • Policy-based - přímo v politice můžeme používat aplikační a URL kategorie (nevytváříme profil), vždy používá Central SNAT, definujeme Firewall Policy a Security Policy

Central SNAT můžeme zapnout také pro Profile-based NGFW mode. Pokud využíváme Source NAT, tak jej pak nemusíme definovat na každé politice, ale pouze centrálně v Policy & Objects > Central SNAT.

Pozn.: Dokumentace uvádí, že při přepínání mezi Profile-based a Policy-based dojde ke konverzi politik. V praxi se zobrazí info, že politiky budou smazány, a to se stane.

config system settings
    set ngfw-mode {profile-based | policy-based}
end
FortiGate - VDOM Central SNAT

Network Interfaces - síťová rozhraní

Dokumentace Interfaces (6.0.0), Interfaces (6.2.3)

  • (Global/VDOM) > Network > Interfaces

Rozhraní umožňují tok dat mezi sítěmi. Fyzická rozhraní (Physical Interfaces) jsou fyzické porty na zařízení. Můžeme vytvářet množství virtuálních rozhraní.

Speciální rozhraní

Některé speciální typy jsou

  • Zone - zóna je skupina jednoho nebo více fyzických či virtuálních rozhraní, v politikách se pak používají zóny (zařazené interface se ani nenabízí), což může být zjednodušení (třeba pro seskupení síťových segmentů), rozhraní mají stále svoje adresy a směrování (není ovlivněno zónami), při použití VDOM se zóny konfigurují v rámci VDOM a ne globálně, takže mohou mít i stejné názvy (ostatní rozhraní musí mít unikátní název)
  • Virtual Wire Pairs - logicky váže dvě fyzická rozhraní, provoz, který přijde přes jedno rozhraní může odejít pouze druhým rozhraním (pokud je povoleno ve Virtual Wire Pair Firewall Policy)
  • VDOM Link - interní spoj mezi virtuálními doménami (VDOM), které umožňuje Inter-VDOM routing

Pozn.: Narazil jsem na doporučení používat zóny, i když nepotřebujeme seskupit rozhraní. Ale každý interface zařadit do Zone. V politikách pak využíváme zóny, pokud potřebujeme udělat změnu interface, tak zařadíme do zóny jiný a politiky stále fungují.

Pozn2.: Tak jsem to řešil v praxi, že jsem potřeboval změnit interface. Využití zón je fajn, ale pořád je bohužel řada míst, kde se nezadává zóna, ale přímo interface, takže úprav je potřeba hodně. Například statické routy a Virtual IP. Užitečná je funkce zobrazení referencí.

FortiGate - Network Interfaces
FortiGate - Network Interfaces 2

Typy rozhraní

Většinu rozhraní vytváříme pomocí Create New - Interface a následně volíme Type. Také vybíráme jiný interface/port (případně více portů) na kterém se nové rozhraní vytvoří. Některé z možných typů jsou:

  • VLAN - fyzický interface můžeme připojit do sítě jako trunk (IEEE 802.1Q) a na něm vytvořit rozhraní (subinterfaces) pro jednotlivé VLANy dle VLAN ID, když používáme VDOM, tak zařazujeme do VDOM přímo VLAN rozhraní (nemusíme tam dávat rozhraní, na kterém VLAN vytváříme)
  • 802.3ad Aggregate - fyzická rozhraní spojíme do agregovaného rozhraní
  • Redundant Interface - fyzická rozhraní spojíme do redundantního rozhraní
  • Software Switch - logické spojení fyzických portů (můžeme spojit i s WiFi interface) do switche, zařízení na portech mohou mezi sebou komunikovat (neuplatňují se politiky), jsou ve stejném subnetu, switch má jednu IP adresu, chová se jako jeden interface
  • Hardware Switch - spojení portů, které jsou součástí integrovaného switche
  • VLAN Switch - virtual switch, který může mít porty v různých VLAN
  • Loopback Interface - virtuální rozhraní, které je vždy nahoře (link up)
  • EMAC VLAN - Enhanced MAC VLAN umožňuje na fyzickém rozhraní vytvořit několik virtuálních s různou MAC adresou
  • VXLAN - Virtual Extensible LAN zapouzdřuje L2 rámce do L3 paketů, vytváří se VXLAN tunel ukončený na fyzickém nebo virtuálním switch port (VXLAN Tunnel Endpoint - VTEP), konfigurace pouze v CLI
FortiGate - New Interface

Rozhraní 802.3ad Aggregate a Redundant Interface jsou podrobněji popsána v kapitole Redundantní připojení do sítě článku FortiGate High Availability cluster a Virtual Domains (VDOM).

Rozhraní můžeme různě kombinovat. Například spojíme dva fyzické porty do virtuálního 802.3ad Aggregate Interface, který je nastavený jako trunk, takže nad ním vytvoříme několik VLAN subinterfaces.

Pozn.: Další rozhraní jsou například VPN tunely.

Role rozhraní

U rozhraní nastavujeme roli, která nám může sloužit k určité identifikaci, a v GUI způsobí zobrazení/skrytí určitých položek nastavení interface.

  • Undefined - žádná specifická role, zobrazuje vše (až na vytvoření adresního objektu)
  • WAN - připojení do internetu, řada nastavení je skryta, naopak je k dispozici Estimated bandwidth
  • LAN - koncová zařízení v lokální síti
  • DMZ - servery v DMZ

Některá nastavení rozhraní

Rozhraní mají řadu nastavení, dle typu a zvolené role. Některé možnosti jsou:

  • Address IP - pro většinu rozhraní nastavujeme manuálně IP adresu (která pak slouží jako brána pro daný síťový segment) a masku sítě
  • Secondary IP address - můžeme přidat i více IP adres a u každé určit Administrative access
  • Create address object matching subnet - většinou je defaultně zapnutá volba, která k rozhraní vytvoří stejně pojmenovaný objekt adresa (ten se určitě hodí, ale možná si jej chceme pojmenovat jinak)
  • Administrative access - povolujeme různé typy (protokoly) správcovského přístupu přes toto rozhraní, většinu chceme povolit pouze pro Management rozhraní
  • Security mode - umožňuje zapnout Captive Portal pro autentizaci
  • Device Detection - pasivní shromažďování informací o zařízeních za tímto rozhraním
  • Outbound shaping profile - můžeme vynutit limit šířky pásma pro rozhraní
config system interface
    edit "<Interface_Name>"
        set ...
    next
end

Směrování - Static Routes

Dokumentace Advanced static routing

  • (VDOM) > Network > Static Routes

Patrně vždy potřebujeme nastavit Default Gateway (Route) pro cíl 0.0.0.0/0.0.0.0. Často potřebujeme další specifické routy (pro přímo připojená rozhraní definovat nemusíme).

  • (VDOM) > Monitor > Routing Monitor

Zde si můžeme prohlédnout routovací tabulku.

Command Line Interface (CLI)

Dokumentace CLI Reference - Using the CLI

Vše, co nastavíme pomocí GUI se převádí do příkazů. Konfiguraci můžeme provádět přímo v příkazové řádce (CLI), která poskytuje o dost více možností. Příkazovou řádku můžeme použít přímo ve webovém prohlížeči v GUI, kde se v pravém horním rohu nachází tlačítko >_ (CLI Console). Jinak se můžeme připojit běžným způsobem, pomocí lokální konzole (sériový port) či SSH.

Pro použití CLI a pro syntaxi příkazů platí řada pravidel. Při zadávání příkazů můžeme využít:

  • Tab - k zadaným znakům doplní příkaz, dalším stiskem prochází možnosti
  • ? - zobrazí možné příkazy
  • šipka nahoru a dolů - listuje dříve použité příkazy
  • \ a ENTER - umožní zadat příkaz na více řádků (přejde na další řádek bez spuštění příkazu)

Filtrování výstupu

Za příkazy get, show a diagnose můžeme využít příkaz grep pro filtrování výsledků. Můžeme zobrazit řádky, které obsahují nějaký řetězec.

FW1 # get hardware nic mgmt | grep HWaddr
Current_HWaddr      00:09:0f:09:00:01
Permanent_HWaddr    04:d6:90:53:33:0a

Také můžeme použít některé přepínače, zajímavý je kontextový výstup části konfigurace.

FW1 (INT) # show | grep -f full-access
config vpn ssl web portal
    edit "full-access" <---
        set tunnel-mode enable
        set web-mode enable
        set ip-pools "SSLVPN_TUNNEL_ADDR1"
    next
end

Vnoření příkazů, použití next, end

Příkazy se v konfiguraci FortiOS zanořují do sebe a v daném rozsahu (scope) jsou k dispozici určité podřízené příkazy. Při zobrazení se používá odsazení, které určuje stupeň zanoření. Pro ukončení bloku (přesněji položky tabulky nebo objektu) se používají příkazy next a end.

Důležité je, že při zadávání příkazů v určitém bloku/položce se tyto neuplatní hned, ale až po uložení. Uložení provedou právě tyto příkazy. Příkaz next se používá v rámci stejné úrovně pro ukončení edit, kdy ukončujeme jednu položku tabulky a může následovat další. Příkaz end ukončí blok a dostaneme se o úroveň výše.

Pokud bychom změny nechtěli uložit, tak můžeme použít abort.

Zobrazení konfigurace

Kdykoliv můžeme použít příkaz show, který nám zobrazí konfigurační příkazy (změny oproti výchozí konfiguraci) v dané úrovni (objekt/tabulka). Můžeme také zobrazit konfiguraci včetně výchozích hodnot příkazem show full-configuration.

Zobrazení logů a debug

V příkazové řádce můžeme zobrazovat a filtrovat logy. Dokumentace Technical Tip: Displaying logs via CLI.

Pro řešení problémů je užitečné (a často nutné) zapnout debug určité oblasti příkazem diagnose debug. Dokumentace Technical Tip: How to use debug flow to filter traffic. Hodit se může zapnout zobrazení času do výstupu.

diagnos debug console timestamp enable

Automatické zálohování konfigurace

Dokumentace Technical Tip: How to send automated backups of the configuration from a FortiGate and How to add multiple commands in the CLI script, FortiOS CLI execute backup

Ručně můžeme provést zálohu konfigurace, když klikneme v pravém horním rohu na přihlášeného uživatele a zvolíme Configuration - Backup.

Pomocí CLI můžeme vytvořit skript, který se bude opakovaně spouštět po zadaném čase (interval) určitou dobu (repeat, 0 navždy). Provede příkaz, který uloží zálohu na FTP server. Příklad níže je při použití VDOM.

config system auto-script
    edit "BackupFTP"
        set interval 86400
        set repeat 0
        set start auto
        set script "
config global
execute backup config ftp FortiGate/backup.conf 10.0.0.10 uzivatel heslo"
    next
end

Zobrazení výsledku skriptu

FW1 (global) # execute auto-script result BackupFTP 
Script BackupFTP output:
########## script name: BackupFTP ##########

========== #1, 2020-04-16 08:05:41 ==========

Příkazy, které zobrazí stav skriptů, případně skript zastaví.

execute auto-script status
execute auto-script stop BackupFTP
zobrazeno: 7538krát | Komentáře [2]

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.

Bezpečnost

Nástroje zajišťující bezpečnost. Primárně Firewall a podobné.

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

Komentáře

  1. [1] Pavel

    Nemáte strach z důvodu security ukládat po síti na ftp? Datový přenos není šifrovaný.

    Úterý, 16.06.2020 16:06 | odpovědět
  2. [2] Samuraj

    odpověď na [1]Pavel: Tak samozřejmě síť pro správu/zálohování/apod. by měla být oddělena od provozní sítě a přístup do ní řízen. Jinak stejné riziko je nejen přenos po síti, ale také uložená data.

    Úterý, 16.06.2020 19:45 | 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