www.SAMURAJ-cz.com 

19.04.2024 Rostislav Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

FortiGate autentizace RADIUS, skupiny a MS NPS

Středa, 09.06.2021 07:31 | Samuraj - Petr Bouška |
Článek navazuje na předchozí popisy autentizace uživatelů a přidává ověřování proti externímu serveru typu RADIUS. I ten můžeme využít pro uživatele v Microsoft doméně (Active Directory Domain Services), třeba pro ověření do SSL VPN. Stručně se podíváme na konfiguraci Network Policy Server (NPS). Hlavně na způsob, jak přenášet údaj o zařazení uživatele do skupiny.

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

Autentizace na RADIUS serveru

Podobně, jako můžeme uživatele ověřovat vůči LDAP serveru, tak můžeme použít RADIUS. Můžeme tak třeba ověřovat uživatele Active Directory domény za využití Microsoft Network Policy Server (NPS). Všechny ověřené uživatele můžeme zařadit do jedné vzdálené skupiny. Nebo, podobně jako v případě LDAP, můžeme zařazovat do určité skupiny podle údajů z RADIUS serveru.

Definice RADIUS serveru

  •  (VDOM) > User & Device > RADIUS Servers

Vytvoříme nový RADIUS server tlačítkem Create New.

  • Name - pojmenování serveru na FortiGate
  • Authentication method - pomocí Specify můžeme vybrat používanou metodu, Default zkouší postupně všechny
  • NAS IP - Network Access Server IP je adresa FortiGate, z které se připojuje na RADIUS, když nevyplníme, tak se použije adresa rozhraní, které komunikuje s RADIUS serverem, pokud vyplníme, tak se také vkládá do atributů Called-Station-ID (Called Station Identifier) a NAS-IP-Address (NAS IPv4 Address) odesílané žádosti
  • Include in every user group - pokud zapneme, tak bude RADIUS server vložen do všech skupin uživatelů
  • IP/Name - zadáme IP adresu nebo FQDN RADIUS serveru
  • Secret - zadáme sdílené tajemství (Shared Secret), také se označuje jako Pre-Shared Key (PSK), které je nastaveno na RADIUS serveru a slouží pro ověření, maximum 16 znaků (uvádí dokumentace GUI, ale CLI nemá specifikováno)
FortiGate RADIUS Servers

Pro testování můžeme využít tlačítka

  • Test Connectivity - otestuje připojení k RADIUS serveru, pokusí se provést ověření uživatelem test01 (nevadí, že ověření neprojde, ale ověří se celý proces)
  • Test User Connectivity - zadáme přihlašovací údaje uživatele a proběhne ověření na RADIUS serveru, zobrazí se také odpověď serveru (vrácené atributy)

Pozn.: Nenašel jsem informace, jestli je pro redundanci lepší, definovat dva samostatné RADIUS servery, nebo použít jeden a u něj zadat jak Primary Server, tak Secondary Server.

Další konfigurace pomocí CLI

Různé další parametry můžeme definovat v CLI. Například defaultně se používá port 1812 pro server. Pokud náš RADIUS server používá jiný, třeba port 1645, tak musíme nastavit.

config user radius
  edit <name>
    set radius-port 1645
  next
end

Je zde možnost, kterou jsem hledal u LDAP serveru. Pokud používáme VDOM, tak standardně odchází komunikace z aktuální VDOM, ale můžeme změnit na posílání z management VDOM. Pro komunikaci na RADIUS nemusíme vytvářet politiku, která ji povolí.

    set use-management-vdom enable

V příkazové řádce jsou také další položky pro nastavení odchozí komunikace, které jsem nezkoušel, source-ip a interface-select-method.

Vytvoření skupiny, která obsahuje vzdálenou skupinu z RADIUS

  • (VDOM) > User & Device > User Groups

Vytvoříme skupinu (Create New) typu Firewall

  • pod Remote Groups klikneme na Add
  • vybereme náš vytvořený RADIUS server (Remote Server)
  • pokud jako Group necháme Any, tak všechny ověřené účty na tomto RADIUS serveru budou členy této skupiny
  • nebo zvolíme Specify a textově zadáme název skupiny (může jich být více), který RADIUS předává v atributu Fortinet-Group-Name
FortiGate User Groups - RADIUS

Více RADIUS serverů

Pokud máme více RADIUS serverů, tak můžeme do skupiny přidat všechny a na nich vybrat stejnou skupinu. Tím zajistíme vyšší dostupnost. Můžeme dokonce kombinovat vzdálené servery různých typů. Pokud máme definovaný LDAP a chceme přejít na RADIUS, tak můžeme pouze do existující skupiny přidat RADIUS. Nepoznáme pak z názvu skupiny, kde byl uživatel ověřen. Pokud uděláme novou skupinu (pro jiný typ ověření), tak bude mít jiný název.

Více autentizačních mechanizmů

Pokud máme definováno více autentizačních mechanizmů, tak se zkouší v daném pořadí POP3, RADIUS, TACACS+, LDAP, lokální uživatelé. První autentizace, která projde úspěšně, se použije a podle ní se bere zařazení do skupiny.

Pokud tedy máme vytvořenou skupinu se zdrojem přes LDAP a druhou přes RADIUS, a obě skupiny jsou nastaveny ve VPN (v konfiguraci a FW politice), tak se první použije RADIUS. Pokud je vše v pořádku, tak se při přihlášení do VPN vždy vrátí skupina s RADIUSem a na LDAP nedojde.

Vendor Specific Attribute (VSA)

Pro předání názvu skupiny z RADIUS serveru na FortiGate se využívá RADIUS Vendor Specific Attribute (VSA). Fortinet Vendor ID je 12356. Seznam Fortinet atributů (VSA Diretory) Technical Tip: Fortinet RADIUS attribute. Nás zajímá

ATTRIBUTE   Fortinet-Group-Name                           1 string

Troubleshooting (debug) RADIUS

Můžeme vyzkoušet ověření zadáním jména a hesla uživatele proti definovanému serveru. Pomocí GUI v editaci RADIUS serveru a tlačítka Test User Connectivity. Nebo pomocí CLI příkazu.

diagnose test authserver radius <RADIUS server_name> <authentication method> <username> <password>

Příklad

FW1 (FWINT) # diagnose test authserver radius RADIUS mschap2 bouska Heslo
authenticate 'bouska' against 'mschap2' succeeded, server=primary assigned_rad_session_id=228953860 session_timeout=0 secs
 idle_timeout=0 secs!
Group membership(s) - G VPN 1

Pomocí CLI také můžeme ověřit napřímo (bez definování serveru).

diagnose test authserver radius-direct <name or IP> <port number> <secret> <authentication method> <username> <password>

Příklad

FW1 (FWINT) # diagnose test authserver radius-direct 192.168.10.10 1812 PSK mschap2 bouska Heslo
RADIUS server '192.168.10.10' status is OK
Access-Accept
AVP: l=17 t=Vendor-Specific(26) v=Fortinet(12356)
VSA: l=11 t=Fortinet-Group-Name(1)
Value: 'G VPN 1'
...

Pro řešení problémů je vhodné zapnout debug režim pro Remote user authentication (fnbamd je Fortinet non-blocking authentication daemon). To se týká řady autentizačních metod (ne pouze RADIUS), takže můžeme dostávat hodně výstupu.

diagnose debug application fnbamd -1
diagnose debug console timestamp enable
diagnose debug enable

Příklad vybraných řádků z výstupu

__fnbamd_rad_send-Sent radius req to server 'RADIUS': fd=14, IP=192.168.10.10(192.168.10.10:1812) code=1 id=49 len=186
 user="bouska" using MS-CHAPv2
fnbamd_radius_auth_validate_pkt-RADIUS resp code 2
extract_success_vsas-FORTINET attr, type 1, val G VPN 1
fnbamd_auth_handle_radius_result-->Result for radius svr 'RADIUS' 192.168.10.10(1) is 0
fnbamd_radius_group_match-Passed group matching

Výsledná hodnota 0 znamená authentication  success, 1 by byla authentication failed.

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

diagnose debug disable
diagnose debug reset

Microsoft Network Policy Server (NPS)

Pouze stručný popis nastavení Microsoft NPS jako RADIUS server pro FortiGate.

  • RADIUS Clients and Servers - RADIUS Clients - vytvoříme FortiGate klienta, zadáme jméno, adresu, Shared Secret
  • Connection Request Policies - může nám dostačovat defaultní Use Windows authentication for all users

Network Policies

Hlavní část je vytvoření jedné nebo více (pro různé skupiny) Network Policies. Zde jsou zmíněny jen hlavní volby.

  • Policies - Network Policies - New
  • Overview - Policy Enabled, Grant Access
  • Conditions - přidáme podmínku
    • Client Friendly Name - jméno definovaného RADIUS Client
    • Windows Groups - nalezneme požadovanou skupinu v AD DS
  • Constraints - zvolíme Authentication Methods
  • Settings - Vendor Specific - Add
Network Policy Server - Network Policies - Vendor Specific 1

Vendor Specific Attribute

V politice musíme vytvořit VSA a do něj zadat název skupiny.

  • v seznamu najdeme atribut se jménem Vendor-Specific a přidáme Add
  • přidáme hodnotu Add
  • Enter Vendor Code zadáme 12356
  • zatrhneme Yes. It conforms
  • klikneme Configure Attributes
  • číslo 1, formát String, hodnota název skupiny
Network Policy Server - Network Policies - Vendor Specific 2
zobrazeno: 4745krát | Komentáře [3]

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] SH

    Docela by mne zajímalo, jestli existuje nějaká možnost, jak ověřit běžný uživatelský počítač na RADIUS serveru, aniž by bylo nutné konfigurovat 802.1X na straně L2 přepínače?

    Dle všeho se zdá, že nikoliv, tak mám jako proof-of-concept nachystaný vlastní RSSO agent pro Fortinet v C# jako náhradu za nespolehlivé FSSO, ale šéfovi se to moc nezamlouvá, že je to nějaké nestandardní udělátko a raději by měl nasazené něco, co je běžně k dispozici...

    Pondělí, 19.07.2021 14:03 | odpovědět
  2. [2] mat22

    odpověď na [1]SH:

    Ahoj, tak co třeba Forticlineta na koncové stanici zapojeneého přes EMS server (nastavit si profil a politiky/pravidla) a propojen s Fortigate a přes policy omezit přístupy do jiných segmentů sítě. Lze i dynamickými tagy.

    Úterý, 20.07.2021 19:58 | odpovědět
  3. [3] Honza K.

    Pokud je zapnutá direktiva "Include in every user group", tak vzdálený RADIUS se nepropíše explicitně do už existujících skupin (a správce si toho nevšimne), ale i přesto se Fortigate pak odvolává i na RADIUS, přestože je skupina vázaná na LDAP.

    Pozor také na dřívější (negativní) odpověď LDAP nebo RADIUS. Pokud existuje účet duplicitně, nebo je např. na RADIUS zakázán, bude zamítnuto i přihlášení, protože o pár milisekund dříve dorazila negativní přihlašovací informace od RADIUS, než od LDAP - Fortigate při ověřování posílá žádosti na LDAP i RADIUS současně.

    Tedy - mám-li na FG definován LDAP i RADIUS, určitě tohle nezapínat, přidělá to hodně starostí.

    Pátek, 16.09.2022 15:44 | 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