Palo Alto Networks Knowledgebase: Como hacer MFA con DUO

Como hacer MFA con DUO

3342
Created On 02/07/19 23:37 PM - Last Updated 02/07/19 23:37 PM
Content Release Deployment
Resolution

El siguiente ejemplo, tiene como objetivo poder demostrar las funciones de múltiples factores de autentificación de Palo Alto Networks a partir de PAN-OS 8.0.

 

En este documento se mostrará como poder hacer la integración con DUO Security (aunque también es válido los pasos con otros proveedores), como poder hacer MFA para autentificar aplicación Web (vía navegador) y como poder hacer MFA en aplicación NO-Web (solicitando autentificación a través del agente de GlobalProtect).

 

El mismo tiene una utilidad importante para lograr generar un Data Center auto-defendido, inclusive integrando MFA, con DAG (Dynamic Address Groups) y Auto-Tagging, se podría lograr que sin necesidad de tener que aplicar políticas manualmente, si se detecta un equipo comprometido o con actividades sospechosas se le solicite múltiples factores de autentificación al acceder a servicios críticos dentro del DataCenter.

 

El ejemplo lo hice muy simple para poder demostrar en una Demo el dinamismo de los MFA, integrándolo con la opción gratuita de DUO, que soporta hasta 10 cuentas de usuarios.

También se podría utilizar el mismo ejemplo para autentificar con múltiples factores de Autentificación una VPN con Global Protect, etc.

 

Creación de una cuenta en DUO, para poder hacer esto es necesario registrarnos en:

 

https://signup.duo.com

 

una vez registrado podrán acceder al portal que utilizaremos luego para integrarlo con el NGFW, deberían poder tener acceso a este portal:

 

https://admin.duosecurity.com

 

una vez logeado, deberían tener acceso al siguiente portal:

 2.png

 

Exportación de los Certificados de DUO, necesitamos exportar los certificados raíz e intermedio que utiliza de DUO en formato CER base64, para poder hacer esto es sencillo, pero difiere un poco si se hace esto en MacOS o en Windows.

Para simplicidad, se exportaron los mismos y se dejaron compartidos en la siguiente carpeta:

 

https://paloaltonetworks.box.com/s/iyc362ht302jtd6m49sec2l3tm0lzp9n

 

 

Si quieren exportarlo ustedes mismos, pueden hacerlo en MacOS, es necesario acceder al certificado y arrastrar el mismo a la capeta que queramos, tenemos que hacer esto con el certificado raíz: “DigiCert High Assurance EV Root CA” y el certificado intermedio: “DigiCert SHA2 High Assurance Server CA

 3.png

 

lo que es necesario es arrastrar el icono marcado con el numero 3 a una carpeta, repetir lo mismo tanto para el Root, como para el certificado intermedio.

Una vez que se guarden esos dos archivos, por simplicidad vamos a renombrarlos:

 

Antes de renombrar: 4.png

renombrados:

 5.png

 

luego es necesario convertirlos en Base64, para hacer esto se logra con el siguiente comando:

openssl x509 -inform der -in DUO-root.cer -out DUO-Root-base64.cer

openssl x509 -inform der -in DUO-intermedio.cer -out DUO-Intermedio-base64.cer

como se puede ver en la siguiente imagen:

6.png

 

en plataforma Windows el proceso es similar, solo que es posible exportar ambos certificados directamente en formato CER en base64.

 

(To Do: Add Step-by-step export certificate on Windows)

 

luego es necesario importar esos certificados en el NGFW, para eso nos vamos a Device >> Certificate Management >> Certificates y utilizamos el botón de Import:

7.png

allí importamos el certificado Root y el certificado intermedio.

 

Ambos certificados deberían quedar importados de la siguiente manera:

8.png

 

Luego es necesario crear un Certificate Profile con ambos certificados, esto se efectúa desde Device >> Certificate Management >> Certificate Profile, presionando el botón de Add

 9.png

 

se crea un objeto llamado DUO-Certs (o el nombre que más les guste) y se agregan los certificados que habíamos importados en el punto anterior.

 

Luego es necesario crear un certificado para el Captive Portal, para que no de advertencias en las PC de los usuarios, en este caso vamos a generar un certificado auto-firmado por el NGFW, el cual es necesario instalar en las PC de los usuarios para evitar la advertencia de los navegadores.

Para poder hacer esto lo efectuamos desde Device >> Certificate Management >> Certificates y utilizamos el botón de Generate y creamos un certificado que sea “Certificate Autority” para la IP de la interface de LAN del NGFW, en mi caso 192.168.2.1 o también si se quiere se puede generar para una interface de Loopback (la cual también habría que crear).

10.png

 

A continuación, les dejo una captura de cómo lo configure, es importante que el Common Name e IP coincidan con la dirección de IP de una interface del firewall donde se montara el Captive Portal, en el ejemplo 192.168.2.1:

 

11.png

 Luego desde la opción de SSL/TLS Service Profile creamos con el botón de Add un nuevo perfil donde utilizamos el certificado previamente creado como se muestra en la siguiente imagen:

 12.png

 

Luego tenemos que generar la integración entre el servicio de MFA con nuestro NGFW para poder hacer esto primero vamos a ir al portal de DUO y vamos a generar la integración con el NGFW, Para esto volvemos a el portal de https://admin.duosecurity.com

 Y vamos a la sección de Application >> Protect an Application y buscamos en el campo de búsqueda “palo alto” va a aparecer una aplicación que se llama Palo Alto SSL VPN es la que utilizaremos haciendo clic en Protect this Application como se puede ver en la siguiente imagen:

13.png

 

luego nos va a presentar 3 valores que son los que utilizaremos en el NGFW para poder hacer la integración, se pueden ver en la siguiente imagen marcados con A, B y C, para poder ver el valor del cambo B es necesario hacer clic para poder verlo:

14.png

 

Luego vamos a ir al NGFW a la opción de Device >> Server Profiles >> Multi Factor Authentication, y presionamos el botón de Add, para poder crear el perfil, en el mismo seleccionamos el perfil de certificados con los certificados que habíamos importado desde el sitio de DUO, en el campo de MFA Vendor seleccionamos Duo v2 y completamos los datos de API Host, Integration Key y Secret Key que obtuvimos del sitio de DUO como puede verse en la siguiente imagen:

15..png

 

luego para poder hacer la prueba vamos a crear un usuario local, aunque esto mismo se puede lograr integrándonos con Active Directory via LDAP, etc.

para crear el usuario local vamos a Device >> Local User Database >> Users y con el botón de Add creamos un usuario:

16.png

 

Este usuario tiene que coincidir con el nombre de usuario que creemos en el portal de DUO, por lo cual vamos a crear el mismo, para eso volvemos al portal web de DUO y vamos a la sección de Users >> Add User, y luego creamos el usuario, en el ejemplo el usuario mrey

17.png

 

Al crear el usuario es necesario hacer la integración con el dispositivo que se efectuara doble factor de autentificación, eso se puede lograr ingresando en la siguiente pantalla el email en el cual nos enviaran los pasos a seguir.

Es importante que en el Status figure como Active para poder tener doble factor de autentificación habilitado:

18.png 

 

luego en la parte superior antes de grabar el usuario, presionamos el botón de Send Enrollment Email para poder lograr que se envie el email de activación al usuario.

19.png 

Esto enviara un email al usuario que previamente tiene que tener descargada la aplicación de DUO mobile en su dispositivo móvil, o bien el proceso lo guía para poder descargar la misma.

Al hacer clic en el link del email nos llevara a el asistente de Duo en el navegador del teléfono y nos guiara por el asistente para poder hacer en enrollment del dispositivo:

20.png 21.png22.png

Una vez completado el proceso en la aplicación de Duo deberíamos disponer de la asociación para el usuario.

 

Luego es necesario crear el perfil de autentificación en el firewall para permitir los multiples factores de autentificación a los usuarios, para poder hacer esto vamos a Device >> Authentication Profile y agregamos el perfil con el botón de Add, en el mismo lo configuramos como Local Database:

23.png 

en la solapa Factors habilitamos la tilde de Enable y agregamos el perfil de DUO que habíamos generado, en la solapa Advanced, agregamos al usuario que creamos:

24.png       25.png

 

Luego tenemos que configurar el Portal Cautivo con los objetos que creamos anteriormente, para esto vamos a Devices >> User Identification ahí seleccionamos la solapa Captive Portal Settings y apretamos el engranaje para poder abrir la ventana de configuración.

 

En la misma habilitamos el Captive Portal y configuramos el SSL/TLS Service Profile con el perfil del portal cautivo que creamos previamente, y lo mismo con el Authetication Profile que seleccionamos el perfil de usuarios locales con MFA que creamos.

 

También seleccionamos Redirect en el Modo y escribimos la dirección de IP de la interface de LAN donde va a funcionar el portal cautivo (es importante que coincida con la IP para la cual configuramos el certificado), en mi caso la IP de LAN del firewall 192.168.2.1:

26.png 

 

Luego tenemos que crear agregar el Response Pages en perfil que tengamos definido para la interface de LAN, si no tenemos ningún perfil de Management asignado sobre la interface crear uno y mínimamente agregarle Response Pages en los servicios permitidos.

Para ver el perfil asignado a la interface se logra desde Network >> Interfaces >> Ethernet >> seleccionado la interface en la solapa Advanced:

 27.png

 

Para poder crear o editar el perfil de Mgmt se hace desde Network >> Network Profiles >> Interface Mgmt, y luego se edita o crea el perfil que este asignado a la interface de LAN agregando el servicio de Response Pages:

 28.png

 

Es importante también que la zona asignada a la interface de LAN tenga configurado User-ID para hacer esto es necesario ir a la zona (Network >> Zones) editando la zona asignada a la interface donde queremos configurar la autentificación, en mi caso LAN y seleccionar Enable User Identification:

 29.png

 

Luego es necesario crear el objeto de autentificación, para esto vamos a Objects >> Authentication y presionamos el botón de Add, al crear el objeto configuramos en web-form el campo de Method y seleccionamos el grupo de usuarios locales con MFA en el campo profile:

30.png

Luego el último paso es crear la política por la cual vamos a solicitar autentificación.

Esto se crea en Policies >> Authentication presionando el botón de Add

 31.png

 

Este tipo de políticas permite definir un origen (Zona, direcciones), destinos (zonas, direcciones), usuarios o perfiles de HIP (Host Identity Profiles), servicios y categorías de URL de PAN-DB, para hacer el match de la política.

 

En el ejemplo vamos a crear dos políticas de ejemplo:

  1. Para una red interna (en el ejemplo se llama Management donde hay “servidores” a proteger)32.png33.png
  2. Para una categoría de sitios web, en el ejemplo deportes.34.png

     

Esto hace que queden 2 políticas de Autentificación de la siguiente manera:

35.png 

Luego hacer Commit de la configuración.

 

Con estos pasos es posible autentificar con MFA cualquier aplicación mediante el método de web-browser (navegador). A continuación, se muestra la configuración necesaria para poder lograr autentificar aplicaciones que no son basadas en web, a través de solicitar la autentificación de GlobalProtect.

 

Si no se quiere integrar MFA para aplicaciones no Web, saltear los siguientes pasos y pasar directamente a la sección de Prueba de la configuración efectuada.

 

 

Configuración para poder lograr autentificar Aplicaciones NO Web (integración de MFA con GlobalProtect):

 

Estos pasos tienen como objetivo lograr solicitar Múltiples métodos de autentificación (MFA) en aplicación no web, por ejemplo, aplicaciones como SSH, Telnet, RDP, etc como también aplicaciones propietarias que no funcionen a través de un navegador web.

Se logra dicha autenticación mediante la integración del agente de GlobalProtect el cual recibirá desde el firewall el requerimiento de autentificación, y este solicitará los múltiples métodos de autentificación.

El presente documento no tiene como finalidad configurar GlobalProtect, por lo cual es necesario previamente a continuar con estos pasos, tener configurado GlobalProtect para conectarse a un Internal Gateway, para poder lograr hacer esta configuración se pueden seguir los pasos del siguiente documento:

 

https://live.paloaltonetworks.com/t5/Configuration-Articles/How-to-Configure-Internal-GlobalProtect-Only/ta-p/54099

 

En las políticas de autentificación es necesario seleccionar otros servicios a autentificar, para el ejemplo seleccionaremos Any en la política de autentificación para los servicios de la zona de Management, aunque es posible hacerlo seleccionando servicios específicos:

 36.png

 

Quedando configurada la política de la siguiente manera:

37.png

 

Luego es necesario modificar la configuración de GlobalProtect para que solicite autentificación de MFA, esto se logra desde Network >> GlobalProtect >> Portals seleccionando el Portal Interno al cual se conectan los clientes modificando las opciones de los Agent en la solapa de App:

 38.png

 

Las opciones que mínimamente tenemos que habilitar son:

 39.png

  • Display Captive Portal Detection Message = YES                    
  • Enable Inbound Authentication Prompts from MFA Gateway = YES
  • Trusted MFA Gateway =IP_PORTAL_CAUTIVO

 

 

 

 

 

 

 

 

La IP del portal Cautivo es la que se configuro previamente en la sección de User Identification (en mi ejemplo IP LAN del Firewall).

 

Luego de esto grabamos la configuración y hacer Commit de la configuración para poder aplicar la misma.

 

Prueba o Demo del MFA & DUO:

 

En una PC que salga por ese NGFW, vamos a mostrar la aplicación de las políticas de autentificación.

 

Para eso en el primer ejemplo con la política que pasa de una zona a otra (LAN a Management en el ejemplo), se va a intentar acceder a un host que está en la zona de Management (en este caso http://192.168.1.111) al querer acceder se ve que el NGFW refecciona el trafico al portal cautivo solicitando autenticación:

40.png 

 

al ingresar el usuario y password que se creó, se ve que aparece que se está enviando la solicitud del segundo factor de autentificación:

 41.png

 

En el dispositivo aparece el push de la solicitud del doble factor de autentificación y si se presionó sobre el mismo se abre la aplicación Duo Mobile donde se ve más detalle de la solicitud y se puede aprobar o rechazar la misma:

 42.png

 

una vez aprobada se puede ver como se accede al sitio web en este ejemplo al http://192.168.1.111 que es un sitio que originalmente no solicita autentificación:

 43.png

 

si se quiere revisar y ver que usuario se autentificaron por Captive Portal (CP) se puede ver en los logs (solapa Monitor) o bien por CLI con el siguiente comando:

 

> show user ip-user-mapping all type CP

 

Aca se puede ver el resultado, donde se muestra que el usuario mrey se autentifico por CP en la IP 192.168.2.9:

44.png 

si se quiere des-autentificar al usuario para poder volver a pedir autentificación (lo efectuó así puedo mostrarles la segunda parte del ejemplo) se efectúa con el siguiente comando:

 

> debug user-id reset captive-portal ip-address X.X.X.X

 

Donde X.X.X.X es la IP que se quiere quitar de la lista de equipos autentificados para que se le vuelva a solicitar autentificación.

 

acá pueden ver la ejecución de este comando y el resultado del mismo:

45.png 

 

En el ejemplo 2 al querer acceder a un sitio que este categorizado como sport (vamos a usar de ejemplo www.espn.com) también se va a solicitar autentificación si el usuario no está autentificado:

46.png 

En este caso en la notificación push recibida, en el caso de iPhone si se usa ForceTouch (mantener presionada fuerte la notificación) se puede aceptar o rechazar directamente la solicitud desde la notificación:

 47.png

 

Una vez aprobada la misma, el portal cautivo re-direcciona automáticamente al sitio que se quería ingresar, en este caso espn.com:

 48.png

Si se revisan los logs en Monitor >> Logs >> Authentication se puede ver las diferentes interacciones con el portal cautivo y el MFA, en el siguiente ejemplo puede en color celeste las autentificaciones por la política para deportes (MFA para Sports) y en verde la política para la zona (MFA a Servers Críticos):

 49.png

También si se revisan los logs de User-ID (Monitor >> Logs >> User-ID) se puede ver las solicitudes de autentificación del portal cautivo:

 50.png

 

Y por último si se revisan los logs de tráfico, en Monitor >> Logs >> Traffic, se puede ver que el tráfico que hace match con la política de autentificación tiene el flags de portal cautivo, como se puede ver en el siguiente ejemplo de tráfico de la zona de LAN a Management:

 51.png

 

 

Prueba o Demo de MFA & DUO con Aplicaciones NO Web:

 

En una PC que salga por el NGFW, vamos a mostrar la aplicación de las políticas de autentificación para aplicación NO Web, en las cual tienen que estar conectados al Gateway interno de GlobalProtect el cual será el encargado de solicitar autentificación.

Para saber que estamos conectados a un Gateway Interno de GP, se puede distinguir por el icono de la casa en el logo de GP que está en la barra de tareas:

 

52.png

 

 

Para poder mostrar la autentificación, lo vamos a hacer en este ejemplo con la política que pasa de una zona a otra (LAN a Management para ANY Services), se va a intentar acceder a un host con la aplicación SSH que está en la zona de Management (en este ejemplo el host es 192.168.1.111). al querer acceder se ve que el agente de GlobalProtect va a generar una ventana emergente informando que es necesario poder autentificarse para poder acceder a la aplicación protegida:

 53.png

 

Al presionar sobre el botón de Autentificar, aparecerá el portal donde nos solicitan credenciales:

 54.png

 

Y luego de ingresar las mismas, aparecerá el mensaje en el cual se indica que se solicita el doble factor de autentificación, el cual en nuestro ejemplo será enviado a la aplicación de DUO Security:

 55.png

 56.png

En el dispositivo móvil aparece la solicitud de aprobación para la aplicación, la cual aprobamos.

 

Y por lo tanto en la ventana sobre la computadora, podemos ver que aparece el mensaje que los múltiples métodos de autentificación se efectuaron de manera correcta:

 

 

 

 

 

 

57.png

 

 

Es muy posible, dependiendo del tipo de aplicación que se esté autentificando que la misma produzca un timeout, pero una vez realizada la autentificación, si se vuelve a invocar la aplicación la conexiones se efectuara exitosamente, porque ya nos encontramos autentificados en el firewall, como puede verse en la siguiente imagen:

 58.png

 Si se quiere revisar los Logs de autentificación se puede hacer en el NGFW desde Monitor >> Logs >> Authentication:

 59.png

 

Para entender más como funciona esta autentificación de aplicaciones NO Web, pueden utilizar Wireshark (https://www.wireshark.org/) en la PC que tienen GlobalProtect para poder hacer sniffer de la interface de red.

En Wireshark deberían filtrar por el puerto UDP 4501 (este es el puerto por defecto) o bien el puerto en el cual se haya configurado GlobalProtect para MFA.

 

Ya que, al aplicar una política de autentificación para aplicaciones NO web, el NGFW envía un paquete UDP en el puerto configurado al agente de GlobalProtect, como puede verse en la imagen:

 60.png

 

Lo que es importante remarcar es que puede verse que el paquete se origina desde la IP de Origen de la aplicación que queríamos acceder (marcado en violeta) este paquete, aunque es generado por el NGFW pone la IP de origen del servidor de la aplicación, en el ejemplo 192.168.1.111

 

El puerto de origen corresponde con el servicio de la aplicación a la cual se quería acceder (en el ejemplo al acceder a la aplicación SSH en el puerto 22) el paquete se origina desde ese puerto (marcado en amarillo).

 

El puerto de destino 4501 (en el ejemplo marcado en verde), es el puerto configurado en la configuración de GlobalProtect.

 

Lo que viene en el payload del paquete (marcado en amarillo) es la dirección del portal cautivo que va a solicitar la autentificación. Es importante que en la configuración de GlobalProtect estén configurados las IP de los portales cautivos de los cuales se acepta requerimientos de MFA, ya que si no está en la configuración de GlobalProtect no aparecerán la ventana emergente de solicitud de autentificación. (en el ejemplo 192.168.2.1)

 

Lo que está marcado en rojo (IP 192.168.2.9), es la IP de destino del paquete de autentificación, en el ejemplo, la IP 192.168.2.9 es la PC de prueba en la cual se origina la conexión de la aplicación de SSH hacia el servidor 192.168.1.111



Attachments
Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm5fCAC&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Attachments
Choose Language