Fortinet – Configurazione SSL VPN con autenticazione Active Directory e MFA
In un mondo in cui il perimetro aziendale è diventato estremamente più ampio rispetto al passato, rimane ancora essenziale proteggere le connessioni alla nostra infrastruttura, sia essa On-Prem o Azure.
La VPN SSL di Fortigate, in questo scenario, ricopre una posizione fondamentale, in quanto consente di realizzare una soluzione scalabile per l’accesso degli utenti alla risorse aziendali in sicurezza.
Come spesso accade tutto parte dall’identità, pertanto in questa guida rivestirà un ruolo importante la gestione e la protezione dell’identità durante il processo di accesso alla VPN.
L’autenticazione con nome utente e password però, nello scenario moderno, non è più sufficiente e pertanto è necessario, sempre, abilitare la MFA per i collegamenti VPN.
Il Firewall Fortigate permette di avere MFA con Token Software proprietari (Fortitoken) la cui implementazione verrà trattata in questa guida, ma, cosa ancora più importante con il mondo Entra ID, potendo sfruttare le policy di Conditional Access per portare il livello di sicurezza degli accessi ad un livello successivo.
Figura 1: Autenticazione SSL VPN Fortigate utilizzando Forticlient e Portale Web SSL VPN
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 precendenti, nella guida viene utilizzata 7.2.x)
- Configurazione Server LDAP eseguita sul Fortigate (Guida ICT power per eseguire la configurazione: https://www.ictpower.it/sicurezza/fortinet-configurazione-ldaps-server-integrato-in-active-directory.htm)
- 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.
- Client Windows 10/ Windows 11 con installato il Software Forticlient.
Configurazione VPN SSL
Una volta eseguito l’acceso al Fortigate, nella sezione in alto a sinistra della schermata, selezionate il VDOM di “Root” per iniziare la configurazione.
Ovviamente questo nel caso in cui abbiate abilitata la funzionalità VDOM, se non attiva potete saltare questo passaggio:
Figura 2: Selezione VDOM di Root
Spostatevi successivamente nella colonna di sinistra e fate click su “VPN“, quindi su “SSL-VPN Settings“:
Figura 3: Selezionare “SSL-VPN Settings”
Nella sezione centale che apparità a schermo fate click su “Enable SSL-VPN“:
Figura 4: Abilitazione VPN SSL utilizzando il selettore
A questo punto è possibile aggiungere le interfacce di tipo “WAN” che vogliamo utilizzare per la VPN SSL:
Figura 5: Inserire tutte le interfacce di tipo “WAN” necessarie
Nel caso in questione ho aggiunto le due principali “WAN” presenti sul Fortigate:
Figura 6: Selezione delle interfacce “WAN” nel Fortigate
Configurate successivamente la porta custom dedicata alla “VPN SSL“:
Figura 7: Aggiunta porta custom per accesso VPN SSL
Nella sezione inferiore troverete un selettore “Server Certificate” dedicato all’aggiunta di un certificato dedicato alla VPN.
Per questa guida verrà utilizzato il certificato di Default presente all’interno del Fortigate, ma è bene ricordare che in scenari di produzione è sempre necessario utilizzare un certificato generato dalla nostra CA Interna o pubblico.
Figura 8: Selettore del certificato dedicato alla VPN SSL
In basso è possibile trovare un settaggio di tipo globale “Limit access to specific hosts” che consente di governare l’accesso alla VPN SSL solo da determinati IP o aree geografiche ad esempio.
È sempre bene valutare restrizioni di questo tipo, poiché spesso non c’è la necessita che la VPN venga resa disponibile in tutto il mondo:
Figura 9: Utilizzando la funzionlità “Restric Access” è possibile selezionare da quale are geografica è possibile collegarsi
In questa guida è stato utilizzato un “Address” di tipo geografico che permette di limitare l’accesso VPN ai soli IP pubblici italiani:
Figura 10: Selezione del Firewall Object Italia per restringere gli accessi alla VPN SSL
Il risultato finale è il seguente:
Figura 11: Risultato finale ottenibile dopo la configurazione dell’accesso limitato per la VPN SSL
Successivamente è possibile trovare il parametro “Idle Logout” che fa “cadere” la sessione VPN quando non utilizzata per il numero di secondi specificato:
Figura 12: Impostazione “Idle Logout” della VPN SSL
Nel Tab “Tunnel Mode Client Settings” è possibile specificare il range di indirizzi IP e il server DNS che il client riceverà durante la connessione VPN.
Per questa guida sono stati lasciati i valori di default:
Figura 13: Lasciare i valori di Default per l’assegnazione degli IP e del DNS della VPN SSL
In “Authentication Portal Mapping” è stato assegnato come modalità di fruizione della VPN SSL sia il Forticlient che la modalità Web.
Figura 14: Assegnazione dei diritti di “Full Access” a tutti gli utenti della VPN SSL
Nella schermata di cui sotto è possibile vedere in dettaglio cosa accade facendo doppio click con il tasto sinistro del mouse su “Full-access“, potendo scegliere, per ogni gruppo o utente del Fortigate quale tipologia di VPN SSL assegnare:
Figura 15: Dettaglio sull’assegnazione della tipologia di VPN SSL
A questo punto è possibile fare click su “Apply” per confermare le impostazioni:
Figura 16: Fare click su “Apply” per confermare le modifiche appena eseguite
Una volta terminata la parte di configurazione relativa alla VPN SSL è possibile creare la prima policy che consentirà l’accesso al pool di utenti Active Directory.
Nella colonna di sinistra fate click su “Firewall Policy“:
Figura 17: Fare click su “Firewall Policy”
Ora sarà possibile vedere nel riquadro centrale, in alto, il bottone “Create New“:
Figura 18: Creazione di una nuova Firewall Policy da interfaccia grafica
Configurate la Policy come da screen sottostante, utilizzando i vostri parametri di configurazione:
Figura 19: Dettaglio della Policy necessaria alla configurazione della VPN SSL
Come è possibile notare, occorre inserire nel campo “Source” il pool di indirizzi IP dedicati ai client che fanno accesso VPN con l’aggiunta dei due utenti LDAP che sono stati importati nel Fortigate durante la guida precedente sulla configurazione del Server LDAPS all’interno del Fortigate (https://www.ictpower.it/sicurezza/fortinet-configurazione-ldaps-server-integrato-in-active-directory.htm).
Come “Destination” è possibile impostare una intera Subnet o un singolo Server all’interno della rete.
Nel campo “Service” è possibile specificare quali protocolli consentire durante la connessione VPN:
Figura 20: Aggiunta di un protocollo all’interno della Policy dedicata alla VPN SSL
Disabilitiamo il “NAT” come da figura sottostante:
Figura 21: Disabilitazione del “NAT” dalla policy VPN SSL
Scegliamo di tenere traccia di tutto il traffico VPN all’interno delle “Logging Options“:
Figura 22: Abilitazione del Logging di tutto il traffico VPN passante per questa specifica Policy
Qualora abilitato, compiliamo come da foto sottostante il campo “Workflow Management” assegnando un commento per la nostra modifica.
Queste impostazioni servono per evitare che chi configura il Firewall possa eseguire dei cambiamente senza le dovute giustificazioni:
Figura 23: Configurazione del “Workflow Management”
Ora è possibile fare click su “OK” per confermare quanto svolto:
Figura 24: Fasre click su “OK” per salvare le impostazioni della Policy
Infine è possibile vedere il risultato della Policy appena configurata:
Figura 25: Risultato della Policy dedicata alla VPN SSL
Accesso VPN FortiClient
La prima modalità di fruizione della VPN SSL Fortigate è rappresentata da un agent chiamato FortiClient, il quale consente di autenticare e instaurare la connessione remota.
Prima di poterne usufruire, occorre eseguire il download del FortiClient direttamente dal sito del produtture utilizzando il seguente link: https://www.fortinet.com/support/product-downloads
Una volta arrivati sul sito è possibile scorrere in basso fino a trovare l’agent in modalità solo VPN:
Figura 26: Selezione per sistema operativo dall’applicazione Forticlient
Una volta installato l’agent apparirà la sua schermata di configurazione, dove è possibile fare click su “Configure VPN” per iniziare la configurazione della VPN SSL:
Figura 27: Inizio della configurazione della VPN SSL tramite FortiClient
Entrati nel tab di configurazione compilate come da foto sottostante, operando gli opportuni cambi, infine fate click su “Save“:
Figura 28: Configurazione VPN SSL lato FortiClient
A questo punto è possibile testare l’accesso alla vpn utilizzando nome utente e password dell’utente, in questo caso “user1”
Figura 29: Avanzamento autenticazione VPN SSL
Una volta collegati è possibile lanciare una connessione RDP per verificare il corretto funzionamento della VPN:
Figura 30: Test connession RDP tramite VPN SSL FortiClient
Una volta eseguito l’accesso con l’utente “user1“, ho eseguito un reset della password per l’utente “user2“, così da verificare il corretto funzionamento del reset password tramite FortiClient:
Figura 31: Cambio utente per verificare la scadenza password con FortiClient
Una volta inserita la vecchia password, Forticlient mi avviserà che la password è scaduta e che c’è la necessità di rinnovarla:
Figura 32: Rinnovo Password Active Directory tramite Forticlient
Una volta fatto click su “OK” possiamo verificare come la connessione venga instaurata correttamente:
Figura 33: Risultato della connessione VPN SSL tramite FortiClient
Come specificato in una mia guida precedente su Ict Power, (LINK: https://www.ictpower.it/sicurezza/fortinet-configurazione-ldaps-server-integrato-in-active-directory.htm) il cambio password tramite Forticlient o VPN Web è possibile grazie all’utilizzo di due parametri fondamentali nella configurazione del Server LDAP all’interno del Fortigate:
- 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.
Figura 34: Dettaglio della configurazione necessaria lato Fortigate per abilitare il reset password
Accesso VPN WebMode
Il Firewall Fortigate consente di abilitare, per tutti o solo una parte degli utenti, la modalità WEB per la VPN SSL.
Questa particolare versione consente di avere una minore superficie di rischio quando facciamo collegare consulenti esterni o fornitori.
È possibile accede a questa modalità digitando in un qualsiasi Browser Web supportato l’IP Pubblico o FQDN del vostro Fortigate con la porta configurata nei punti precedenti:
Figura 35: Indirizzo URL della VPN WEB del Fortigate
Arrivati alla schermata di Log-in è possibile inserire, come fatto per la VPN FortiClient il nome utente con la relativa password:
Figura 36: Inserimento nome utente e password VPN WEB
Precedentemente, per i fini di questa guida, avevo eseguito il reset della password dell’utente “user2“, pertanto, una volta inserite le credenziali, mi viene chiesto il reset della Password nuovamente, questa volta in modalità VPN SSL Web:
Figura 37: Reset Credenziali Active Directory in modalità VPN SSL Web
Una volta fatto click su “Login” è possibile accedere alla pagina principale, dove è possibile fare click su “New Bookmark” per creare una nuova connessione verso una risorsa interna alla rete:
Figura 38: Pagine principale VPN SSL Web
Figura 39: Creazione nuovo Bookmark per l’accesso alle risorse interne
È possibile creare una qualsiasi tipologia di Bookmark, ma per questa guida ho scelto un classico RDP verso il domain controller.
Figura 40: Compilazione dei campi necessari al collegamento alle risorse interne
Al termine della configurazione fate click su “Save“, così da ottenere un nuovo Bookmark che da adesso in poi rimarrà salvato nel vostro profilo VPN:
Figura 41: Bookmark per connessione al Domain Controller tramite RDP
Fate click ora sul Bookmark “DC-1“:
Figura 42: Sessione RDP fruita dalla VPN SSL Web
N.B. La VPN SSL Web richiede molte più risorse della VPN Forticlient. Alcuni modelli di Fortigate, specialmente i più piccoli come il 40F potrebbero soffrire un numero elevato di connessioni di questo tipo.
Accesso VPN SSL con FortiToken
Nel contesto odierno è impensabile lasciare una VPN SSL esposta con solo nume utente e password, è quindi buona cosa inziare da subito un ragionamento dedicato alla parte di multi factor authentication (MFA).
Ogni Fortigate arriva con due Token Software per la MFA chiamati FortiToken, significa che potete coprire due utenti fin da subito e in modo gratuito (tutti gli altri Token devono essere pagati a parte).
La configurazione è semplice e richiede davvero pochi passaggi.
All’interno del Fortigate (Sempre Root Vdom), nella colonna di sinistra, fate click sul Tab “User & Authentication” e successivamente “User Definition“:
Figura 43: Tab Dedicato alla gestione degli utenti del Fortigate
Fate click con il tasto destro del mouse su uno dei due utenti presenti all’interno del Fortigate e importati precedentemente da Active Directory, quindi “Edit“:
Fate click sul selettore “Two-factor Authentication“:
Figura 44: Abilitazione MFA
Nel menù contestuale che si aprirà fate click su “FortiToken“, quindi selezionate uno dei due disponibili:
Figura 45: Selezione del FortiToken
Scorrendo sotto è possibile completare l’assegnazione del token con una mail di registrazione, così che l’utente riceva le istruzioni per la configurazione e il QR Code per l’aggiunta all’applicazione mobile FortiToken:
Figura 46: Inserimento Mail per l’invio delle istruzioni di configurazione del FortiToken
Fate click su “OK” per completare l’operazione:
Figura 47: Fate click su “OK” per completare l’operazione
Accedendo poi alla mail che abbiamo utilizzato in fase di configurazione potrete vedere un messaggio come quello sottostante, con QR Code da far scannerizzare all’applicazione Mobile FortiToken, disponibile nei principali store Apple e Google:
Figura 48: Mail di attivazione FortiToken
Scaricate ora l’applicazione “FortiToken Mobile” dai principali Store Mobile:
Figura 49: Applicazione Fortitoken presente Nell’Apple Store
Figura 50: Applicazione Fortitoken presente su Google Play
Una volta installata sul cellulare o sul tablet, è possibile aggiungere un Token con il tasto “+” e successivamente scannerizzando il QR presente nella mail di cui sopra.
Terminato il processo il Token con i suoi numeri casuali verrà mostrato direttamente nell’applicazione:
Figura 51: Dettaglio applicazione FortiToken Mobile
Una volta pronta l’applicazione, è possibile tentare un nuovo accesso, sia tramite FortiClient che tramite VPN Web, ma questa volta, oltre al nome utente e password ci verrà chiesto di digitare i numeri presenti nell’applicazione FortiToken:
Figura 52: Richiesta MFA tramite FortiToken su FortiClient
Una volta inseriti i numeri è possibile collegarsi tranquillamente alla VPN, ma questa volta con una sicurezza di gran lunga maggiore:
Figura 53: Conessione VPN Instaurata tramite FortiToken
Conclusioni
Una guida sulla VPN può sembrare oggi fuori tempo massimo, ma sono ancora molte le aziende che fanno affidamento su questo tipo di soluzione per i loro collegamenti remoti.
Fortigate risponde a questa esigenza con la massima apertura possibile, consentendo di avere non solo autenticazione tramite Active Directory, ma aggiungendo anche la MFA, la quale può essere sfruttata non solo tramite soluzioni Fortinet, ma ad esempio con l’utilizzo di Entra ID, governando l’accesso VPN tramite Conditional Access Policy.
Come detto nell’articolo precedente, quando si sceglie uno strumento, bisogna sempre porsi la domanda che più conta, ovvero se quello che sto comprando si integrerà al 100% con il mio contesto infrastrutturale, altrimenti avremo acquistato l’ennesimo oggetto che per funzionare ha bisogno di una infratruttura parallela.