20 gennaio 2026

La 2FA VPN con RADIUS – l’installazione completa dell’auth-proxy

Mettete l’auth-proxy Notakey davanti a un server RADIUS (FreeRADIUS, NPS, MikroTik User Manager): l’accesso VPN richiede un’approvazione sul telefono.

Questa guida aggiunge un’autenticazione a due fattori con un tocco sul telefono a un VPN che si autentica tramite RADIUS. L’auth-proxy Notakey si colloca tra il vostro concentratore VPN e il vostro server RADIUS: inoltra la verifica della password a RADIUS come di consueto, invia una richiesta di approvazione sul telefono dell’utente e restituisce Access-Accept al VPN solo quando entrambi hanno esito positivo.

Poiché il proxy parla il RADIUS standard su entrambi i lati, funziona con quasi tutti i server RADIUS (FreeRADIUS, Microsoft NPS, lo User Manager nativo di MikroTik o il plugin RADIUS di Notakey) e con qualsiasi concentratore VPN in grado di puntare a un server RADIUS.

Come funziona

VPN concentrator ──RADIUS──▶ Notakey auth-proxy ──RADIUS──▶ your RADIUS server

                                     └──▶ push notification ──▶ user's phone
  1. L’utente si connette al VPN con il proprio nome utente e la propria password.
  2. Il concentratore invia la richiesta RADIUS all’auth-proxy (e non direttamente al vostro server RADIUS).
  3. Il proxy inoltra la richiesta al server RADIUS di destinazione. Se la verifica della password fallisce, l’accesso viene rifiutato immediatamente.
  4. Se la password è corretta, il proxy invia una richiesta di approvazione sul telefono dell’utente e mantiene aperto lo scambio RADIUS mentre l’utente risponde, per impostazione predefinita fino a 30 secondi (vpn_message_ttl).
  5. Approve → Access-Accept viene rinviato al VPN. Deny o scadenza → rifiuto.

Il passo 4 ha una conseguenza importante: il timeout del client RADIUS del vostro VPN deve essere lungo almeno quanto la finestra di approvazione: cioè almeno 30 secondi. La maggior parte dei client RADIUS è impostata per impostazione predefinita su pochi secondi o meno, perché una semplice verifica della password risponde all’istante; qui, invece, una persona deve prendere in mano il telefono.

Prerequisiti

  • Un Notakey Authentication Server: l’offerta cloud gratuita su signup.notakey.com o l’appliance on-premise
  • Un server RADIUS (oppure usate il plugin RADIUS di Notakey; vedi più avanti)
  • Un VPN che si autentica tramite RADIUS
  • Lo stesso nome utente nel servizio Notakey, in RADIUS e nel VPN (il proxy lo utilizza per indirizzare la notifica push)

Passo 1 – Creare l’applicazione VPN

Nel dashboard Notakey, create un’applicazione (servizio) per il VPN, registrate i telefoni degli utenti e copiate l’Access ID dell’applicazione, l’UUID che incollerete nella configurazione del proxy qui sotto.

Passo 2 – Configurare l’auth-proxy

Appliance on-premise: il proxy integrato

L’appliance viene fornita con l’auth-proxy integrato. Configuratelo dalla CLI dell’appliance con un unico documento JSON:

ntk cfg set :ap '{
  "vpn_port_in": "1812",
  "vpn_port_out": "1812",
  "vpn_radius_address": "10.0.1.23",
  "vpn_secret_in": "secret_to_radius_server",
  "vpn_secret_out": "secret_to_radius_server",
  "vpn_access_id": "c468f008-485b-b11c-aad9672fbae1",
  "vpn_message_ttl": "30",
  "message_title": "VPN authentication",
  "message_description": "Allow {0} login?"
}' --json-input

Poi avviate il servizio:

ntk ap start

Significato di ciascun campo:

Campo Significato
vpn_port_in Porta su cui il proxy ascolta le richieste RADIUS del VPN
vpn_port_out Porta del vostro server RADIUS di destinazione
vpn_radius_address Indirizzo del vostro server RADIUS di destinazione
vpn_secret_in Segreto condiviso tra il vostro VPN e il proxy
vpn_secret_out Segreto condiviso tra il proxy e il vostro server RADIUS
vpn_access_id L’Access ID dell’applicazione, dal passo 1
vpn_message_ttl Secondi a disposizione dell’utente per approvare (30 è un valore predefinito ragionevole)
message_title / message_description Ciò che mostra la notifica push; {0} viene sostituito con il nome utente

Appliance cloud: il proxy containerizzato

Con un server Notakey ospitato nel cloud, eseguite lo stesso proxy come container all’interno della vostra rete, davanti al vostro server RADIUS:

docker run --name auth-proxy \
  -e NOTAKEY_HOST="https://2fa.your_company.com/api" \
  -e NOTAKEY_ACCESS_ID="c468f008-485b-b11c-aad9672fbae1" \
  -p 1812:1812/udp \
  -e LISTEN_ADDRESS=0.0.0.0 \
  -e ADDRESS_SECRET_IN=0.0.0.0:secret_to_radius_server \
  -e DOWNSTREAM_ADDRESS=10.0.1.23 \
  -e SECRET_OUT=secret_to_radius_server \
  notakey/authproxy:latest

Gli stessi componenti, un confezionamento diverso: NOTAKEY_HOST è l’URL dell’API della vostra istanza cloud, DOWNSTREAM_ADDRESS il vostro server RADIUS, e i due segreti si abbinano rispettivamente al lato VPN e al lato RADIUS.

Il riferimento completo per entrambe le varianti (compreso un installer MSI per eseguire il proxy su Windows, i requisiti di connettività di rete e la posizione dei log) è il manuale dell’Authentication Proxy.

Passo 3 – Ancora nessun server RADIUS? Usate il nostro

Se non gestite già RADIUS, non c’è bisogno di allestirne uno solo per questo:

  • Plugin RADIUS di Notakey. L’appliance include un plugin di servizio RADIUS (basato su FreeRADIUS). Autentica gli utenti già definiti nel vostro servizio Notakey, così non c’è alcun database utenti RADIUS separato da mantenere. La configurazione è descritta nel nostro articolo della knowledge base Plugin di servizio RADIUS (nessuna configurazione utente necessaria).
  • MikroTik User Manager. Se il vostro VPN termina già su un MikroTik, il suo pacchetto User Manager nativo funge da server RADIUS di destinazione.
  • Qualsiasi RADIUS aziendale esistente (FreeRADIUS, Microsoft NPS e simili) funziona senza modifiche; il proxy è trasparente per esso.

Passo 4 – Puntare il vostro VPN verso il proxy

Riconfigurate il client RADIUS del concentratore VPN: stesso segreto di vpn_secret_in, ma l’indirizzo del server è ora quello del proxy, non quello del server RADIUS. E aumentate il timeout.

Su un MikroTik, si presenta così:

/radius
add service=ppp address=<proxy-address> secret=secret_to_radius_server timeout=30s

/ppp aaa
set use-radius=yes

Il timeout=30s conta. Il timeout RADIUS predefinito di MikroTik è di 300 millisecondi: adatto a una verifica della password, ma del tutto insufficiente per un’approvazione umana. Impostatelo su almeno 30 secondi (in linea con vpn_message_ttl), altrimenti gli accessi falliranno prima ancora che l’utente possa afferrare il telefono. La stessa regola vale per le impostazioni del client RADIUS di qualsiasi altro fornitore.

Provatelo

Connettetevi al VPN. La verifica della password ha esito positivo e la notifica push arriva sul telefono, schermata di blocco compresa, così l’utente non ha nemmeno bisogno di avere l’app aperta:

La notifica push di approvazione che arriva sulla schermata di blocco: «Connessione VPN – accedere come questo utente, da questo IP?» (nome utente e IP oscurati).

Aprendola si vede la richiesta completa: chi sta effettuando l’accesso e da quale indirizzo IP, con un conto alla rovescia mentre il proxy mantiene aperto lo scambio RADIUS:

La richiesta in Notakey Authenticator: il nome del servizio, il login e l’IP di origine da verificare, un conto alla rovescia e i pulsanti Deny / Approve.

La connessione si completa solo dopo un Approve. E questa schermata è il vero guadagno di sicurezza dell’intera installazione: un utente che riceve questa notifica push mentre non si sta connettendo al VPN ha davanti agli occhi qualcun altro che sta usando la sua password, da un IP che può vedere – e un solo tocco su Deny blocca l’accesso e lascia una traccia di audit. Se gli accessi scadono anche quando approvate rapidamente, ricontrollate prima di tutto il timeout del client RADIUS: è l’errore più comune in questa configurazione.

Guide correlate

← Tutti gli articoli

Il vostro primo accesso senza password, già questa settimana

30 minuti con un ingegnere, non una presentazione commerciale. Insieme pianificheremo come avviare un progetto pilota funzionante nel vostro ambiente VPN, SSO o Windows.