Fortinet – Configurazione LDAPS server integrato in Active Directory

Quando parliamo di Firewall sicuramente ci vengono in mente diverse soluzioni, dalle più blasonate alle meno conosciute, ma prima di scegliere una soluzione piuttosto che un’altra, dobbiamo porci un quesito molto importante: “Questo strumento che sto acquistando o valutando è integrabile nel mio contesto infrastrutturale?”

Dal mio punto di vista il primo punto da valutare è se l’apparato sarà integrabile con il mio sistema di identity, perché se ho scelto già un sistema non posso averne un altro per far funzionare lo strumento.

Proprio nella valutazione di questo scenario nasce l’esigenza di integrare il Firewall Fortigate con una infrastruttura Active Directory, in modo tale da gestire, ad esempio, gli accessi VPN con lo stesso nome utente e password presenti in Active Directory.

Figura 1: Funzionamento autenticazione VPN utilizzando il server LDAP configurato nel Fortigate

Requisiti

Per eseguire la configurazione proposta sarà necessario avere quanto segue:

  • Firewall Fortigate: la configurazione proposta è possibile su qualsiasi Firewall Fortigate con release software 6.2 e successive. (non è detto che non sia possibile eseguirla anche sui sistemi precedenti, nella guida viene utilizzata 7.2.x)
  • Dominio Active Directory: un singolo domain controller Windows Server 2012r2 o successivi è sufficiente.
  • Enterprise Certification Authority: una singola macchina Windows Server 2012r2 o successivi è sufficiente.

Creazione Utente di servizio LDAP

Il primo passaggio da eseguire è quello di creare un’utenza dedicata che gestisca le query LDAP verso il server Active Directory.

Create quindi un nuovo utente con il nome e la password che preferite all’interno di una Organizational Unit dedicata.

Figura 2: Creazione Standard User dedicato alle query LDAP all’interno del Fortigate

L’utenza appena creata deve essere di tipo “Standard”, non c’è bisogno che appartenga a gruppi privilegiati.

A questo punto, per consentire al nuovo utente appena creato di operare correttamente, sarà necessario fornire i permessi di delega all’interno di tutte le OU con gli utenti che desideriamo gestire.

Figura 3: Aggiunta della delege per l’untente fgt-ldapuser all’interno di una singola OU

Aggiungiamo ora l’utente all’interno del wizard facendo click su “Add…” e poi su “Next“:

Figura 4: Aggiunta dell’utente all’interno del Wizard di delega Active Directory

Facciamo click su “Create a custom task to delegate” e poi su “Next“:

Figura 5: Spunta da inserire per creare un ruolo di delega di tipo custom

Selezioniamo “User Objects” e poi su “Next“:

Figura 6: Selezionare la voce User Objects

Facciamo ora click su “General” e sui permessi “Change password” e “Reset password

Figura 7: Assegnazione dei permessi all’interno del Tab General

Fate nuovamente click su “General“, così da rimuovere la spunta, quindi fate click su “Property-specific“:

Figura 8: Aggiunta dei permessi di tipo Property-specific

A questo punto, aggiungiamo i seguenti permessi:

  • Read lockoutTime
  • Read pwdLastSet
  • Read UserAccountControl

Al termine delle operazioni fate click su “Next” e poi su “Finish

Figura 9: Completamento del Wizard con riepilogo dei permessi aggiunti

Configurazione FortiGate

Adesso possiamo configurare il Firewall FortiGate in modo tale che possa colloquiare con Active Directory tramite protocollo LDAPS

Per prima cosa facciamo Login all’apparato, quindi sfogliamo la colonna di sinistra, sotto “System” facciamo click su “Certificates

Figura 10: Tab del Fortigate dedicato alla gestione dei certificati

N.B. Qualora utilizziate i VDOM dovrete andare a selezionare quello corretto; in questa guida la configurazione del server LDAPS è stata eseguita nel VDOM di Root:

Figura 11: Selezione del corretto VDOM in fase di configurazione

A questo punto è possibile importare il certificato della CA Enterprise all’iterno del Firewall Fortigate facendo click su “Create/Import” e successivamente su “CA Certificate“:

Figura 12: Selezione della tipologia di certificato da importare

N.B. Qualora abbiate una infrastruttura PKI multi-tier dovrete importare i certificati di tutte le CA presenti nell’alberatura (ES. RootCA + SubCA).

All’interno del TAB che verrà aperto sulla destra dello schermo fate Click su “File” e successivamente su “Upload“:

Figura 13: Selezione della tipologia di file utilizzata per il certificato di RootCA

Selezionate quindi il certificato della RootCA che per semplicità potete recuperare all’interno del server RootCA nel percorso: “C:\Windows\System32\CertSrv\CertEnroll

Figura 14: Selezione del certificato da importare all’interno del Fortigate

A questo punto potete fare click su “OK” per aggiungere il certificato:

Figura 15: Conferma del certificato appena caricato

Una volta importato troverete il certificato sotto “Remote CA Certificate“:

Figura 16: Certificato importato nel gruppo di certificati “Remote CA Certificate”

Configurazione DNS Firewall

Affinché il FortiGate possa correttamente risolvere l’IP del server LDAP, occorre necessariamente configurare il Firewall affinché utilizzi il DNS del domain controller presente all’interno dell’infrastruttura.

N.B. Se il FortiGate non sarà in grado di risolvere l’FQDN del server LDAP, il certificato non verrà validato e di conseguenza il collegamento tramite LDAPS non funzionerà correttamente.

Per configurare il DNS del Fortigate fate click su “Network“, quindi su “DNS

Figura 17: Impostazioni DNS del Firewall Fortigate

All’interno della schermata che si aprirà, sotto “DNS Settings“, aggiungete l’IP del vostro server DNS, in questo caso del Domain Controller:


Figura 18: Aggiunta IP del Domain Controller

N.B. In presenza di una configurazione VDOM è necessario eseguire la configurazione DNS nel modo più opportuno. In questa guida la configurazione del DNS è stata eseguita nel VDOM “Global”.


Figura 19: Selezione del VDOM per la configurazione DNS del Fortigate

Cofigurazione LDAPS Server

Siamo ora pronti a configurare il server LDAPS utilizzando il Certificato di RootCA importato nei punti precedenti.

Nella colonne di sinistra del Fortigate fate click su “User & Authentication” e successivamente su “LDAP Server

Figura 20: Selezionare LDAP Servers

All’interno della finestra centrale selezionare “Create New“:

Figura 21: Selezionare Create New per configurare un nuovo Server LDAP

A questo punto ci verrà chiesto di configurare le impostazioni principale del server, configuriamo quindi come da foto sottostante:

Figura 22: Aggiunta dei parametri di configurazione LDAPS

Di seguito la spiegazione dei parametri principali:

  • Name: Nome della configurazione LDAP che vogliamo eseguire, è possibile assegnare un qualsiasi nome.
  • Server IP/Name: Nome del Server LDAP, in questo caso il Domain Controller.
  • Server Port: Porta di comunicazione del servizio, in questo LDAPS (Porta 636).
  • Common Name Identifier: All’interno del Fortigate gli utenti possono essere rappresentati in diversi modi, per questa guida ho utilizzato il Common Name.
  • Distinguished Name: Organizzational Unit dove il Firewall potrà eseguire query LDAP per aggiungere gli utenti all’interno del Fortigate.
  • Bind Type: Per questa configurazione è necessario utilizzare la configurazione di tipo “Regular”
  • Username/Password: Utente e password dell’utente definito nei punti precedenti, in questo caso “fgt-ldapuser”
  • Secure Connection: Questo parametro consente di abilitare le opzioni per la configurazione della protocollo LDAPS.
  • Protocol: Per questo configurazione dobbiamo necessariamente scegliere LDAPS
  • Certificate: Selezioniamo il certificato di RootCA Importato nei punti precedenti.

Confermiamo le impostazioni facendo click su “OK”

Figura 23: Fare click su “OK” per confermare la configurazione appena eseguita

L’approccio portato avanti fin ora è stato svolto tramite interfaccia grafica, ma le cose più interessanti ed avanzate, come spesso accade, possono essere gestite solo tramite interfaccia a riga di comando, in questo caso parliamo della “Fortigate CLI Console“, raggiungibile tramite l’apposito pulsante posto in alto a destra, vicino alla campanella delle notifiche.

Figura 24: Apertura della CLI Console

Una volta aperta la console è possibile utilizzare in sequenza i due comandi, “config user ldap“:

Figura 25: Utilizzare il comando config user LDAP

e “edit lab.local

Figura 26: Utilizzare il comando edit per selezionare la configurazione ldap desiderata

A questo punto è possibile utilizzare il comando “show full” per mostrare tutta la configurazione, incluse le regolazioni aggiuntive che è possibile impostare:

Figura 27: Set completo di istruzioni mostrato a seguito del comando “show full”

Le configurazioni più interessanti che è possibile aggiungere da cli sono le seguenti:

  • set secondary-server: Consente di aggiungere il nome o l’IP di un Domain Controller secondario.
  • set tertiary-server: Consente di aggiungere il nome o l’IP di un Domain Controller terziario.
  • set password-expiry-warning: Consente di abilitare, se impostato su “enable”, un avviso qualora la password dell’utente sia scaduta. Questo avviso viene mostrato, ad esempio, durante l’autenticazione FortiClient oppure quando si esegue il log-in alla VPN SSL Web.
  • set password-renewal: Consente di abilitare, se impostato su “enable”, la reimpostazione della password direttamente quando si fa accesso al Fortigate. Ad esempio è possibile utilizzare il reset della password durante il login tramite FortiClient oppure quando si esegue il log-in alla VPN SSL Web.
  • set search-type: Per impostazione predefinita, i gruppi nested (gruppi che sono membri di altri gruppi) non vengono ricercati correttamente nel server LDAP, in questo caso Active Directory, poiché ciò potrebbe rallentare la ricerca dell’appartenenza ai gruppi.

Configurazione Utenti/Gruppi all’interno del Fortigate

Ora potete aggiungere gli utenti che potranno poi essere sfruttati all’interno del Fortigate.

Nella colonna di sinistra aprite il tab “User & Authentication“, selezionare “User Definition” e successivamente fare click su “Create New“:

Figura 28: Importazione degli utenti Active Directory tramite Fortigate

All’interno del Wizard che si aprirà selezionate “Remote LDAP User” e quindi su “Next“:

Figura 29: Selezionare Remote LDAP User

Selezionare il menu a tendina vicino a “LDAP Server” e selezionare il “Name” della configurazione LDAPS svolta nei paragrafi precedenti:

Figura 30: Selezionare il corretto Server LDAP

Nella schermata successiva viene proposta l’alberatura Active Directory aggiunta all’interno della configurazione LDAPS del Fortigate.
Utilizzando la barra “Search” è possibile fare la ricerca per utenti:

Figura 31: Utilizzando il tab “Search” è possibile eseguire una ricerca all’interno della OU designata.

Una volta trovati gli utenti che desideriamo importare possiamo selezionarli entrambi e fare click con il tasto destro del mouse sopra uno dei nomi, a quel punto è possibile fare clilck su “Add Selected“:

Figura 32: Aggiungere gli utenti all’interto del Fortigate facendo click su “Add Selected”

Una volta importati correttamente una spunta verde apparirà vicino agli utenti appena importati, è quindi possibile dare conferma e completare il processo di importazione facendo click sul bottone in basso “Submit“:

Figura 33: Fare click su “Submit” per concludere il processo di aggiunta degli utenti

Al termine delle operazioni potrete trovare gli utenti appena aggiunti sotto “User & Authentication“, quindi “User Definition“:

Figura 34: Vista degli utenti LDAP appena aggiunti

Le utenze sono riconoscibili dalla colonna “Type” che riporta l’origine dell’utente.

Conclusioni

In questa guida abbiamo visto come integrare il Fortigate all’interno della nostra infrastruttura di identity tramite protocollo LDAPS. È molto importante tenere sempre presente un approccio implementativo di tipo least privilege, consentendo sempre il privilegio minimo ed evitando, come in questo caso, l’assegnazione di ruoli come “Domain Admin” per l’utente che esegue query LDAP.

La documentazione ufficiale di quanto implementato potete trovarla ai seguenti Link:

https://docs.fortinet.com/document/fortigate/7.4.2/administration-guide/401976/ldap-servers

https://docs.fortinet.com/document/fortigate/7.4.2/administration-guide/102264/configuring-an-ldap-server

https://docs.fortinet.com/document/fortigate/7.4.2/administration-guide/631824/configuring-least-privileges-for-ldap-admin-account-authentication-in-active-directory

https://docs.fortinet.com/document/fortigate/6.2.15/cookbook/107067/enabling-active-directory-recursive-search