I firewall Palo Alto Networks possono inoltrare gli accessi VPN GlobalProtect a un server RADIUS. All’auth-proxy Notakey non serve altro: si inserisce nel percorso RADIUS e lascia passare un accesso solo dopo che l’utente lo ha approvato sul proprio telefono.
L’obiezione abituale riguarda il server RADIUS stesso. Molti team non ne gestiscono uno, e allestire FreeRADIUS o Microsoft NPS solo per aggiungere un secondo fattore è un progetto a sé. Questa guida usa invece il plugin RADIUS incluso nell’appliance on-premise Notakey, così l’appliance costituisce l’intero back end: proxy, RADIUS e approvazione sul telefono in un unico punto.
Non abbiamo testato noi stessi un firewall Palo Alto in laboratorio. Le impostazioni Palo Alto riportate di seguito provengono dalla documentazione di Palo Alto, con i relativi link. Il firewall comunica con l’auth-proxy tramite RADIUS standard, esattamente come i concentratori VPN delle nostre altre guide.
Come si combinano i componenti
GlobalProtect app ──▶ Palo Alto portal/gateway ──RADIUS──▶ Notakey auth-proxy ──RADIUS──▶ RADIUS plugin
│
└──▶ approval request ──▶ user's phone
- L’utente si connette con GlobalProtect e inserisce nome utente e password.
- Il firewall invia una richiesta RADIUS all’auth-proxy sull’appliance.
- Il proxy affida la verifica della password al plugin RADIUS. Una password errata viene rifiutata immediatamente.
- Se la password è accettata, il proxy invia una richiesta di approvazione sul telefono dell’utente e mantiene aperto lo scambio RADIUS mentre l’utente decide, per impostazione predefinita 30 secondi.
- Con un Approve il firewall riceve Access-Accept. Con un Deny o in assenza di risposta, l’accesso viene rifiutato.
Che cosa cambia il plugin riguardo alla password
Prima di scegliere il plugin occorre valutare un compromesso. Il plugin non verifica la password di directory dell’utente. Accetta una password globale condivisa da tutti oppure un breve elenco di password per singolo utente, conservato nella configurazione del plugin (Plugin di servizio RADIUS).
In pratica, a proteggere l’accesso è l’approvazione sul telefono: la richiesta arriva al telefono registrato per quel nome utente, e chi lo ha in mano vede che cosa sta approvando. Con la password globale, la fase della password diventa una barriera condivisa anziché un secondo segreto per ciascun utente.
Se la vostra policy o il vostro auditor prevedono la password di directory come uno dei due fattori, puntate l’auth-proxy verso un server RADIUS che verifichi Active Directory, come Microsoft NPS, anziché verso il plugin. Tutto ciò che questa guida descrive sul lato Palo Alto resta invariato; cambiano soltanto l’indirizzo di destinazione e il segreto del proxy, come spiegato nella nostra guida alla 2FA VPN con RADIUS.
Passo 1 – Creare l’applicazione VPN in Notakey
Nel dashboard Notakey, create un’applicazione (servizio) per il VPN, registrate i telefoni degli utenti e copiate l’Access ID dell’applicazione.
Il nome utente digitato in GlobalProtect deve arrivare al proxy esattamente come è stato registrato in Notakey. Tenetelo presente al passo 4, dove Palo Alto può aggiungere o rimuovere un dominio.
Passo 2 – Avviare il plugin RADIUS sull’appliance
Dalla CLI dell’appliance, impostate l’immagine del plugin, sostituite il segreto e la password predefiniti e avviatelo. Non lasciate i valori predefiniti: sono pubblicati nella nostra documentazione.
ntk cfg setc :plugins.radius.image "notakey/radius-all:latest"
ntk cfg setc :plugins.radius.env.SECRET "<long-random-secret>"
ntk cfg setc :plugins.radius.env.PASSWORD "<global-password>"
ntk plugins update
ntk plugins start
PASSWORD è la password globale che gli utenti digitano in GlobalProtect. Per
assegnare invece a determinati utenti una password propria, aggiungete
USER1/PASSW1, USER2/PASSW2 e così via; l’elenco completo delle opzioni
si trova nell’articolo sul plugin.
Passo 3 – Puntare l’auth-proxy verso il plugin
Il proxy individua il plugin tramite il nome del suo container, radius.
Usate lo stesso segreto su entrambi i lati, come indicato nell’articolo sul
plugin; lo userà anche il firewall.
ntk cfg set :ap.vpn_port_in "1812"
ntk cfg set :ap.vpn_radius_address "radius"
ntk cfg set :ap.vpn_secret_in "<long-random-secret>"
ntk cfg set :ap.vpn_secret_out "<long-random-secret>"
ntk cfg set :ap.vpn_access_id "<access-id-from-step-1>"
ntk cfg set :ap.vpn_message_ttl "30"
ntk cfg set :ap.message_title "VPN login"
ntk cfg set :ap.message_description "Allow {0} to connect to the VPN?"
ntk ap start
vpn_message_ttl è il tempo a disposizione dell’utente per approvare. {0}
nella descrizione viene sostituito con il nome utente. Il proxy ascolta le
richieste RADIUS sulla porta UDP 1812; il firewall deve poter raggiungere
l’appliance su quella porta.
Una differenza rispetto ad altri VPN: con GlobalProtect non aspettatevi di vedere l’indirizzo IP dell’utente nella richiesta di approvazione. L’auth-proxy legge l’indirizzo del client dall’attributo RADIUS standard previsto a tale scopo, Calling-Station-Id. GlobalProtect non vi inserisce l’IP del client; lo invia soltanto in un attributo vendor-specific proprio di Palo Alto (la nota di SecureAuth su questo comportamento). Formulate la descrizione in modo che la richiesta indichi comunque all’utente che cosa sta approvando: il servizio e il nome utente.
Passo 4 – Configurare il firewall Palo Alto
La guida di Palo Alto Set Up RADIUS or TACACS+ Authentication descrive i passaggi generali. Queste sono le impostazioni che contano per un’approvazione sul telefono.
Profilo del server RADIUS (Device → Server Profiles → RADIUS) (riferimento dei campi):
- Server: l’indirizzo dell’appliance, la porta 1812 e il segreto del passo 3.
- Timeout: il valore predefinito è di 3 secondi, sufficiente per una verifica della password ma ben lontano da quanto serve a una persona per trovare il telefono. L’intervallo consentito va da 1 a 120 secondi, e la stessa Palo Alto raccomanda, per le configurazioni a più fattori, di lasciare agli utenti il tempo necessario per rispondere. Impostatelo ben al di sopra della finestra di 30 secondi del proxy, per esempio a 60.
- Retries (tentativi): il valore predefinito è 3. Con un timeout lungo ne basta 1. Se il firewall reinvia comunque una richiesta, l’auth-proxy la riconosce e la ignora, quindi l’utente non riceve una seconda richiesta di approvazione.
- Authentication Protocol: scegliete PAP. Il protocollo predefinito, PEAP-MSCHAPv2, racchiude l’accesso in un tunnel cifrato e, nella configurazione standard, nasconde l’identità dell’utente nella richiesta esterna. Il proxy deve leggere il nome utente per sapere a quale telefono rivolgersi. PAP è l’opzione che Palo Alto indica per un server RADIUS che non usa EAP né CHAP. Con PAP, RADIUS trasmette il nome utente in chiaro e nasconde soltanto la password, tramite il segreto condiviso (RFC 2865). Tenete il collegamento tra firewall e appliance su una rete attendibile e mantenete il segreto lungo e casuale.
Profilo di autenticazione (Device → Authentication Profile):
- Type: RADIUS, con il profilo del server qui sopra.
- Username Modifier:
%USERINPUT%trasmette il nome utente invariato. Se impostate un User Domain, Palo Alto lo antepone o lo accoda, oppure rimuove il dominio digitato dall’utente. Qualunque sia il risultato, deve corrispondere al nome utente registrato in Notakey. - Allow List (scheda Advanced): l’elenco è vuoto per impostazione
predefinita, il che blocca tutti. Aggiungete gli utenti o i gruppi che devono
potersi connettere, oppure
all.
Portale e gateway: aggiungete il profilo di autenticazione alle impostazioni di autenticazione dei client del portale e del gateway GlobalProtect, poi eseguite il commit.
Passo 5 – Evitare due approvazioni per connessione
Una connessione GlobalProtect si autentica due volte: una presso il portale e una presso il gateway. Con RADIUS su entrambi, l’utente riceve due richieste di approvazione per una sola connessione, ed è proprio il tipo di rumore che abitua le persone ad approvare senza leggere.
I cookie di authentication override di Palo Alto risolvono il problema (impostazioni di autenticazione del portale). Dopo il primo accesso riuscito il portale emette un cookie cifrato, che il gateway accetta al posto di una nuova richiesta:
- Sul portale, attivate Generate cookie for authentication override.
- Sul gateway, attivate Accept cookie for authentication override.
- Usate lo stesso certificato sul portale e sul gateway per cifrare e decifrare il cookie.
- Scegliete con cognizione di causa la durata del cookie. Finché il cookie è valido, all’utente non viene più chiesto nulla: una durata lunga significa meno approvazioni, ma anche meno protezione se il portatile viene rubato.
Provatelo
Connettetevi con GlobalProtect. Dopo la password, la richiesta di approvazione arriva sul telefono con il titolo e la descrizione impostati al passo 3. Con un Approve il tunnel si attiva. Poi riprovate e scegliete Deny: la connessione deve fallire.
Se gli accessi falliscono anche quando approvate rapidamente, controllate prima di tutto i timeout:
- il timeout del profilo del server RADIUS sul firewall, che deve superare i 30 secondi del proxy;
- il timeout di connessione di GlobalProtect stesso. Alcuni amministratori sul
forum della community di Palo Alto riferiscono di averlo aumentato per gli
accessi a più fattori
(discussione nella community).
Se le approvazioni date verso la fine della finestra falliscono mentre quelle
rapide funzionano, la causa probabile è questa: aumentate quel timeout,
oppure riducete
vpn_message_ttl.
Che cosa non copre
- Accessi di phishing inoltrati. Un’approvazione sul telefono fa sì che una password rubata o indovinata non basti da sola. Non ferma però un attaccante che inoltra un accesso reale attraverso una pagina falsa in tempo reale; solo i metodi legati al sito, come le chiavi FIDO, lo fanno. Spieghiamo la differenza nel nostro articolo sull’MFA fatigue e sugli attacchi relay.
- L’esposizione del firewall stesso. Perché un accesso VPN o di amministrazione protetto dalla sola password sia un problema, e che cos’altro correggere per primo, lo spieghiamo nel nostro articolo su FortiBleed. Le lezioni valgono per i firewall di qualsiasi produttore.
Provate la demo dal vivo per approvare un accesso dal vostro telefono in circa due minuti, oppure richiedete una demo e vi aiuteremo a pianificare un progetto pilota con GlobalProtect.