Los cortafuegos de Palo Alto Networks pueden enviar los inicios de sesión de la VPN GlobalProtect a un servidor RADIUS. Eso es todo lo que necesita el auth-proxy de Notakey: se sitúa en la ruta RADIUS y solo deja pasar un inicio de sesión cuando el usuario lo ha aprobado en su teléfono.
La objeción habitual es el propio servidor RADIUS. Muchos equipos no tienen ninguno, y montar FreeRADIUS o Microsoft NPS solo para añadir un segundo factor es un proyecto en sí mismo. Esta guía utiliza en su lugar el plugin RADIUS que incluye el appliance on-premise de Notakey, de modo que el appliance es todo el back end: proxy, RADIUS y aprobación en el teléfono en un solo lugar.
No hemos probado un cortafuegos Palo Alto en nuestro propio laboratorio. Los ajustes de Palo Alto que siguen proceden de su documentación, con enlaces. El cortafuegos se comunica con el auth-proxy mediante RADIUS estándar, igual que los concentradores VPN de nuestras otras guías.
Cómo encaja todo
GlobalProtect app ──▶ Palo Alto portal/gateway ──RADIUS──▶ Notakey auth-proxy ──RADIUS──▶ RADIUS plugin
│
└──▶ approval request ──▶ user's phone
- El usuario se conecta con GlobalProtect e introduce su nombre de usuario y su contraseña.
- El cortafuegos envía una petición RADIUS al auth-proxy del appliance.
- El proxy delega la comprobación de la contraseña en el plugin RADIUS. Una contraseña incorrecta se rechaza de inmediato.
- Si la contraseña es correcta, el proxy envía una solicitud de aprobación al teléfono del usuario y mantiene abierto el intercambio RADIUS mientras el usuario decide: 30 segundos por defecto.
- Si aprueba, el cortafuegos recibe Access-Accept. Si deniega o no responde, el inicio de sesión se rechaza.
Qué cambia el plugin respecto a la contraseña
Antes de elegir el plugin conviene sopesar una contrapartida. El plugin no comprueba la contraseña de directorio del usuario. Acepta una única contraseña global compartida por todos, o bien una lista breve de contraseñas por usuario guardada en la propia configuración del plugin (plugin de servicio RADIUS).
En la práctica, eso significa que lo que protege el inicio de sesión es la aprobación en el teléfono: la solicitud llega al teléfono registrado para ese nombre de usuario, y quien lo tiene en la mano ve qué está aprobando. Con la contraseña global, el paso de la contraseña es una barrera compartida, no un segundo secreto propio de cada usuario.
Si su política o su auditor exigen que la contraseña de directorio sea uno de los dos factores, apunte el auth-proxy a un servidor RADIUS que compruebe Active Directory, como Microsoft NPS, en lugar del plugin. Todo lo relativo a Palo Alto en esta guía sigue igual; solo cambian la dirección de destino y el secreto del proxy, como se describe en nuestra guía de VPN 2FA con RADIUS.
Paso 1: cree la aplicación de la VPN en Notakey
En el panel de Notakey, cree una aplicación (servicio) para la VPN, registre los teléfonos de los usuarios y copie el Access ID de la aplicación.
El nombre de usuario que se escribe en GlobalProtect debe llegar al proxy exactamente tal como se registró en Notakey. Téngalo presente en el paso 4, donde Palo Alto puede añadir o eliminar un dominio.
Paso 2: arranque el plugin RADIUS en el appliance
En la CLI del appliance, defina la imagen del plugin, sustituya el secreto y la contraseña por defecto y arránquelo. No deje los valores por defecto: están publicados en nuestra documentación.
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 es la contraseña global que los usuarios escriben en
GlobalProtect. Para dar a determinados usuarios su propia contraseña, añada
USER1/PASSW1, USER2/PASSW2, etc.; la lista completa de opciones está
en el artículo del plugin.
Paso 3: apunte el auth-proxy al plugin
El proxy localiza el plugin por su nombre de contenedor, radius. Use el
mismo secreto en ambos lados, como indica el artículo del plugin; el
cortafuegos también lo utilizará.
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 es el tiempo que tiene el usuario para aprobar. {0} en la
descripción se sustituye por el nombre de usuario. El proxy escucha RADIUS en
el puerto UDP 1812; el cortafuegos debe poder llegar al appliance por ese
puerto.
Una diferencia respecto a otras VPN: con GlobalProtect, no espere ver la dirección IP del usuario en la tarjeta de aprobación. El auth-proxy lee la dirección del cliente en el atributo RADIUS estándar previsto para ello, Calling-Station-Id. GlobalProtect no coloca ahí la IP del cliente; solo la envía en un atributo propio de Palo Alto (vendor-specific attribute) (nota de SecureAuth sobre este comportamiento). Redacte la descripción de forma que la tarjeta siga diciendo al usuario qué está aprobando: el servicio y el nombre de usuario.
Paso 4: configure el cortafuegos Palo Alto
La guía de Palo Alto Set Up RADIUS or TACACS+ Authentication cubre los pasos generales. Estos son los ajustes que importan para una aprobación en el teléfono.
Perfil de servidor RADIUS (Device → Server Profiles → RADIUS) (referencia de campos):
- Server: la dirección del appliance, el puerto 1812 y el secreto del paso 3.
- Timeout: el valor por defecto es de 3 segundos, suficiente para comprobar una contraseña y muy lejos de lo que necesita una persona para encontrar su teléfono. El rango admitido es de 1 a 120 segundos, y la propia nota de Palo Alto para configuraciones multifactor recomienda dar a los usuarios tiempo suficiente para responder. Fíjelo holgadamente por encima de la ventana de 30 segundos del proxy, por ejemplo en 60.
- Retries: el valor por defecto es 3. Con un tiempo de espera largo, basta con 1. Si el cortafuegos llega a reenviar una petición, el auth-proxy la reconoce y la ignora, de modo que el usuario no recibe una segunda solicitud de aprobación.
- Authentication Protocol: elija PAP. El valor por defecto, PEAP-MSCHAPv2, envuelve el inicio de sesión en un túnel cifrado y, por defecto, oculta la identidad del usuario en la petición exterior. El proxy necesita leer el nombre de usuario para saber a qué teléfono preguntar. PAP es la opción que Palo Alto indica para un servidor RADIUS que no usa EAP ni CHAP. Con PAP, RADIUS envía el nombre de usuario en texto claro y oculta solo la contraseña, mediante el secreto compartido (RFC 2865). Mantenga el enlace entre el cortafuegos y el appliance en una red de confianza, y el secreto largo y aleatorio.
Perfil de autenticación (Device → Authentication Profile):
- Type: RADIUS, con el perfil de servidor anterior.
- Username Modifier:
%USERINPUT%pasa el nombre de usuario sin cambios. Si define un User Domain, Palo Alto lo antepone o lo añade al final, o elimina el dominio que haya escrito el usuario. Sea cual sea el resultado, debe coincidir con el nombre de usuario registrado en Notakey. - Allow List (pestaña Advanced): la lista está vacía por defecto, lo que
bloquea a todo el mundo. Añada los usuarios o grupos que deban conectarse, o
all.
Portal y gateway: añada el perfil de autenticación a los ajustes de autenticación de clientes del portal y del gateway de GlobalProtect y, a continuación, haga commit.
Paso 5: evite dos aprobaciones por conexión
Una conexión de GlobalProtect se autentica dos veces: una ante el portal y otra ante el gateway. Con RADIUS en ambos, el usuario recibe dos solicitudes de aprobación por una sola conexión, que es justo el tipo de ruido que acaba enseñando a la gente a aprobar sin leer.
Las cookies de anulación de autenticación (authentication override) de Palo Alto lo resuelven (ajustes de autenticación del portal). El portal emite una cookie cifrada tras el primer inicio de sesión correcto, y el gateway la acepta en lugar de volver a preguntar:
- En el portal, active Generate cookie for authentication override.
- En el gateway, active Accept cookie for authentication override.
- Use el mismo certificado en el portal y en el gateway para cifrar y descifrar la cookie.
- Elija con criterio la vida útil de la cookie. Mientras la cookie sea válida, no se vuelve a preguntar al usuario, así que una vida útil larga significa menos aprobaciones, pero también menos protección si roban el portátil.
Pruébelo
Conéctese con GlobalProtect. Tras la contraseña, la solicitud de aprobación llega al teléfono con el título y la descripción definidos en el paso 3. Apruebe y el túnel se establece. Después inténtelo otra vez y deniegue: la conexión debe fallar.
Si los inicios de sesión fallan incluso cuando aprueba rápido, revise primero los tiempos de espera:
- el tiempo de espera del perfil de servidor RADIUS en el cortafuegos, que debe ser mayor que los 30 segundos del proxy;
- el tiempo de espera de conexión del propio GlobalProtect. Administradores
del foro de la comunidad de Palo Alto cuentan que lo aumentaron para los
inicios de sesión multifactor
(hilo de la comunidad).
Si fallan las aprobaciones dadas al final de la ventana pero funcionan las
rápidas, esta es la causa probable: aumente ese tiempo de espera o reduzca
vpn_message_ttl.
Qué no cubre
- Inicios de sesión retransmitidos por phishing. Una aprobación en el teléfono impide que una contraseña robada o adivinada baste por sí sola. No detiene a un atacante que retransmite en tiempo real un inicio de sesión legítimo a través de una página falsa; eso solo lo logran métodos vinculados al sitio, como las claves FIDO. Explicamos la diferencia en nuestra entrada sobre la fatiga de MFA y los ataques de retransmisión.
- La exposición del propio cortafuegos. Por qué una VPN o una consola de administración protegidas solo con contraseña son un problema, y qué más conviene corregir primero, se explica en nuestra entrada sobre FortiBleed. Las lecciones valen para el cortafuegos de cualquier fabricante.
Pruebe la demo en vivo para aprobar un inicio de sesión desde su propio teléfono en unos dos minutos, o solicite una demostración y le ayudaremos a planificar un piloto con GlobalProtect.