LDAP, RADIUS y CERTIFICATE-BASED AUTENTICATION
LDAP, RADIUS y CERTIFICATE-BASED AUTENTICATION
LDAP, RADIUS y CERTIFICATE-BASED AUTENTICATION
onal de la
dad
t NSE 4, NSE 5
7
DAP Y
ADIUS
ure Access
Contenido
1. LDAP............................................................................................................................................3
1.1. Directorio Árbol......................................................................................................................3
1.2. Asociación Simple.................................................................................................................3
1.3. Flujo Asociación Simple........................................................................................................4
1.4. Asociación Regular...............................................................................................................4
1.5. Flujo de un enlace Regular...................................................................................................4
1.6. Configuración del enlace Regular.........................................................................................5
1.6.1. Comprobar Distinguished Name en Windows AD.........................................................6
1.6.2. Comprobar el Bind DN en Windows AD........................................................................6
1.7. Editor de Atributos.................................................................................................................6
1.8. Comprobar un usuario en LDAP...........................................................................................7
1.9. Debug en tiempo real............................................................................................................7
1.9.1. Admin Bind.....................................................................................................................7
1.9.2. User Search & User Binding..........................................................................................8
1.9.3. Attribute Query...............................................................................................................9
1.9.4. Primary group Query....................................................................................................10
1.10. Sniffer del tráfico entre LDAP y FGT...............................................................................10
1.11. Problemas comunes........................................................................................................11
1.11.1. Password incorrecta de Usuario...............................................................................11
1.11.2. Usuario no encontrado..............................................................................................12
1.11.3. Grupo no encontrado................................................................................................12
1.11.4. Consejos para resolver problemas LDAP.................................................................12
1.12. Comprobar la configuración BIND REGULAR en WINDOWS AD..................................13
2. RADIUS.....................................................................................................................................13
2.1. PAP vs CHAP......................................................................................................................13
2.2. Atributos..............................................................................................................................14
2.3. Flujo de la consulta RADIUS..............................................................................................14
2.4. Configuración en FGT.........................................................................................................14
2.5. Troubleshooting..................................................................................................................15
2.5.1. Comprobar el SECRET servidor RADIUS...................................................................15
2.5.2. Comprobar un usuario en RADIUS..............................................................................15
2.5.3. Debug en tiempo real (fnbamd)....................................................................................15
3. FORTIAUTHENTICATOR.........................................................................................................15
3.1. Integrando FortiAuthenticator en Security Fabric...............................................................16
3.2. FortiGate vs FortiAuthenticator...........................................................................................16
3.3. Dilema CHAP y LDAP.........................................................................................................17
1
3.3.1. Soluciones al dilema CHAP & LDAP...........................................................................17
3.4. Servidor de autenticación remoto – LDAP..........................................................................17
3.5. Servidor de autenticación remoto – RADIUS.....................................................................18
3.6. Añadir usuarios a FortiAuthenticator...................................................................................19
3.7. Clientes RADIUS.................................................................................................................19
3.8. Debug logs..........................................................................................................................20
4. CERTIFICADOS DIGITALES....................................................................................................20
4.1. Clasificación de los Algoritmos...........................................................................................20
4.2. Cifrado asimétrico (Clave Pública)......................................................................................20
4.3. SSL entre FGT y Web Server.............................................................................................21
4.4. ¿Qué es un certificado digital?...........................................................................................23
4.5. Autoridad de Certificación - Certificate Authority (CA).......................................................23
4.6. Tipos de certificados...........................................................................................................24
4.7. Autenticación de Servidor...................................................................................................24
4.8. Autenticación de usuario.....................................................................................................25
4.9. Cadena de confianza..........................................................................................................25
4.10. Proceso de validación de certificado...............................................................................26
4.11. Obtención de un certificado.............................................................................................26
5. SCEP.........................................................................................................................................27
5.1. Características....................................................................................................................27
6. PKI usuarios FGT......................................................................................................................27
6.1. Autorizando usuarios PKI –userPrincipalName (UPN).......................................................28
6.2. Filtrado de Grupo de usuarios PKI......................................................................................28
7. Revocación de certificados........................................................................................................29
7.1. Lista de Revocación de Certificados - CRL........................................................................29
7.2. OCSP - Online Certificate Status Protocol.........................................................................29
7.2.1. Configurando la lista de servidores OSCP...................................................................29
7.2.2. URL OSCP dentro del certificado.................................................................................30
8. Troubleshooting Autenticación basada en certificado...............................................................31
8.1. Real-Time Debug................................................................................................................31
8.2. Errores comunes que vemos en el Debug.........................................................................32
9. FortiAutheticator actuando como CA.........................................................................................32
9.1. Certificate Management > Local CA...................................................................................32
9.2. Emitiendo Certificados........................................................................................................33
9.3. Firmando certificados..........................................................................................................34
9.4. SCEP RA.............................................................................................................................34
2
1. LDAP
Veamos como configurar y resolver problemas usando servidores de autenticación LDAP y
RADIUS con FortiGate (FGT). También revisaremos algunos aspectos básicos de
FortiAuthenticator.
Arriba está la raíz del directorio, donde comienza el árbol LDAP en cualquier esquema.
Simple: Trabaja con todas las cuentas que están en la misma rama del árbol LDAP. El campo
Distinguished Name (DN) define el comienzo y alcance de la búsqueda en el servidor LDAP.
3
1.3. Flujo Asociación Simple
Por ejemplo, si Distinguished Name se fija a
ou=it,ou=france,dc=trainingad,dc=training,dc=lab podrán autenticarse los usuarios que se
encuentren dentro de la ou IT > France y no lo podrán hacer los que se encuentren en cualquier
otro contenedor.
4
Puedes determinar el campo Distinguished Name mediante una consulta en el servidor AD con
el comando dsquery en su consola.
Puedes determinar el campo Username (administrador LDAP), con el mismo comando dsquery.
Finalmente, el campo Password se configura con la contraseña del administrador LDAP.
Paso 2: FGT realiza una consulta a la base de objetos LDAP para localizar al usuario.
Si encuentra el usuario, el servidor LDAP responde con el DN del usuario.
Entonces FGT cierra la sesión de Administrador con el servidor.
Paso 3: FGT enlaza, otra vez, en el servidor LDAP usando las credenciales de usuario.
Paso 4: FGT obtiene los atributos del usuario y la información de grupo.
5
El atributo usado típicamente como el Common Name Identifier es cn. Como comentamos,
antes en los entornos Windows AD también podemos usar sAMAccountName.
1.1.1. Comprobar Distinguished Name en Windows AD
Desde la consola C:\ del servidor Windows AD, ejecuta el siguiente comando:
dsquery user -name <NOMBRE COMPLETO del usuario> o sí conoces el login de usuario:
dsquery user -samid <LOGIN del usuario>
Por ejemplo, si haces la siguiente consulta:
C:\ dsquery user –samid jsmith
cn= John Smith,ou=It,ou=france,dc=example,dc=com
Podrías configurar Distinguished Name como: dc=example,dc=com
6
1.8. Comprobar un usuario en LDAP
Si las credenciales son correctas y la configuración LDAP está bien hecha, el servidor devuelve
una confirmación de la autenticación y los grupos de usuario a los que pertenece.
diag test authserver ldap <server_name> <username> <password>
7
Debajo encontramos más información, como el atributo que se usará para la búsqueda en el
árbol, DN base, la dirección IP y nombre del servidor LDAP.
8
Encontramos el segundo mensaje (ID 2).
El mensaje incluye la base de la rama (DN) y el nombre del atributo usado para localizar al
usuario sAMAccountName=jsmith.
Si el servidor LDAP encuentra al usuario “fnbamd_ldap_parse_response-ret=0”, descubrimos que
la respuesta incluye el user DN completo.
El cambio de estado a "User Binding" indica que el tercer paso del emparejamiento se ha
producido. FGT solicita la autenticación usando las credenciales del usuario.
Encontramos el tercer mensaje (ID 3).
Si la autenticación del usuario tiene éxito (fnbamd_ldap_parse_response-ret=0), el proceso pasa
al último paso.
9
Aparece el mensaje "Attr query", que es la solicitud de FGT para conocer el resto de atributos.
10
1.10. Sniffer del tráfico entre LDAP y FGT
Si encontramos algún problema en los pasos 1 o 3 del emparejamiento, puedes esnifar el tráfico
entre FGT y el LDAP.
En el ejemplo, el archivo sniffer se ha convertido al formato WireShark. Puedes ver el código de
error AD “data 52e”.
diag sniffer packet any "port 389" 3
También deberías tener en cuenta los "Common industry-standard LDAP result codes".
La lista total de códigos la encuentras en el RFC 4511.
11
User& Device > Monitor > Firewall -> Seleccionar el usuario y clic en De-authenticate
2. Borra las entradas en la tabla de sesiones, filtrando por el puerto destino o por la IP:
diagnose sys session filter dport 80
diagnose sys session clear
3. Borra la cache del navegador (si estamos haciendo pruebas de navegación) o refresca la
página con F5.
12
1.11.3. Grupo no encontrado
El siguiente error muestra un problema en el paso 4 "get_member_of_groups-attr=’memberof’
- found 0 values" donde las credenciales de usuario son correctas, pero el usuario no es
miembro otros grupos de usuario.
Nota: en algunas implementaciones LDAP, la información del grupo al que pertenece el usuario
no es un atributo del usuario, en vez de eso, los usuarios se consideran un atributo del grupo; en
estos casos necesitas hacer una consulta al grupo sobre el usuario. Hay una configuración
adicional que permite a FGT trabajar en este entorno, pero el debug seguirá indicando el error,
que tendrás que ignorar.
13
2. RADIUS
Remote Authentication Dial-In User Service, es un protocolo cliente-servidor ampliamente
utilizado, que ofrece autenticación, autorización y funciones de accounting de forma
centralizada.
Los servidores RADIUS utilizan paquetes UDP (1812, 1813, 1645 y 1646) para comunicar con los
“clientes RADIUS” en la red para autenticar a los usuarios.
Debemos configurar el servidor RADIUS para aceptar a FGT como cliente RADIUS. FGT usará
las funciones de autenticación y accounting del servidor.
FGT soporta los siguientes esquemas de autenticación RADIUS:
CHAP
PAP
MSCHAP (*hay que cambiar el Método de Autenticación default x Manual)
MSCHAP2
2.2. Atributos
Podemos usar los atributos RADIUS para ofrecer información del usuario o del grupo de usuarios.
Configurados a nivel de usuario, provén información del usuario que puede usarse para asignar la
dirección IP.
Configurados a nivel de grupo de usuarios, ofrecen información que puede ser aplicada a todos
los usuarios de un grupo específico.
Los atributos específicos de fabricante o Vendor-specific attributes (VSA) se usan para extender
las funcionalidades básicas de RADIUS.
Cada fabricante usa un único “VSA ID” para transmitir información adicional, en función de si la
autenticación fue exitosa o falló. Se necesitan los diccionarios VSA, para entender los atributos
propietarios que suministra el fabricante.
14
Fortinet RADIUS vendor ID es 12356.
2.5. Troubleshooting
El servidor RADIUS no responde a las solicitudes enviadas desde un cliente, si este no está
autorizado. En ese caso recibes un Server Unreachable.
15
Además de las credenciales del cliente RADIUS, debes indicar el esquema de autenticación que
vas a usar. La autenticación RADIUS es un proceso de 1 o 2 pasos, dependiendo de si se ha
habilitado el segundo factor de autenticación.
No es un proceso de 4 pasos como ocurre con LDAP y el método Regular.
3. FORTIAUTHENTICATOR
FortiAutenticator es un dispositivo que permite gestionar la identidad y la autenticación de los
usuarios. Soporta RADIUS, LDAP, 802.1x, Gestión de certificados, Portal Cautivo, Portal de
autoregistro y Fortinet single sign-on (FSSO).
Es compatible con FortiToken para ofrecer 2º factor de autenticación cuando usas varios FGTs o
dispositivos de terceros.
La suma de FortiGate, FortiAutenticator y FortiToken, ofrece una solución efectiva y escalable
para gestión de la identidad, la autenticación segura y el control del acceso seguro a la red.
16
3.1. Integrando FortiAuthenticator en Security Fabric
FortiAuthenticator es una pieza clave de la solución de acceso seguro de Fortinet.
FortiAuthenticator ofrece autenticación, que usa FGT y/o controladores para asignar el acceso
apropiado a los clientes. En base a los roles y configuraciones de FGT, puedes forzar las reglas
de autenticación a los clientes en redes cableadas y WiFi.
17
3.3.1. Soluciones al dilema CHAP & LDAP
Hay tres métodos posibles para resolver el problema del dilema CHAP & LDAP:
1. Usa PAP: Debemos configurar FGT para que use PAP en lugar de CHAP. No es
recomendable por lo inseguro del protocolo PAP.
2. Usa RADIUS: Cambia el servidor de autenticación de LDAP a RADIUS.
3. Si estás usando tu Windows AD como LDAP, una alternativa es usar FortiAuthenticator
como un proxy de autenticación.
3.1 FortiAuthenticator debe estar situado entre FGT (cliente RADIUS en FortiAuthenticator)
y el servidor Windows de dominio.
3.2 Necesitas configurar FortiAuthenticator para que se registre en el servidor Windows
con las credenciales de administrador.
3.3 Esto añade a FortiAuthenticator como un dispositivo de confianza en el dominio,
permitiendo actuar de proxy de autenticación del usuario en el servidor Windows, utilizando
los tickets Kerberos obtenidos.
18
Nota: Para que trabaje como relay de la autenticación CHAP hacia un Windows AD, debemos
configurar la sección Windows Active Directory Authentication e introducir las credenciales de
administrador del servidor AD.
20
4. CERTIFICADOS DIGITALES
2.
3.1. Clasificación de los Algoritmos
Revisemos algo de la terminología que usaremos. Hay dos tipos generales de cifrado: simétrico y
asimétrico.
El cifrado simétrico utiliza una clave única para cifrar y descifrar. Esta clave se comparte entre
las partes que intercambian la información cifrada.
El cifrado asimétrico usa un par de claves que están matemáticamente relacionadas. Una de las
claves se usa para cifrar la información y la otra clave se usa para descifrar la información
Por otro lado, los hashes no son información cifrada, ya que no se pueden descifrar. Un algoritmo
hash genera una salida irreversible desde cualquier entrada.
21
Como el mensaje fue cifrado con la clave pública del receptor, solo podrá ser descifrado con la
clave privada del receptor, que solo tiene el.
1. FGT conecta con un servidor web configurado para SSL. En el mensaje hello inicial, el
navegador provee información que incluye la version SSL y los tipos de cifrado que
soporta.
2. El servidor web recibe el mensaje de FGT y contesta con el conjunto de algoritmos que se
usarán y su certificado, que va en texto claro sobre la red pública.
3. FGT valida el certificado comprobando una lista de chequeo para asegurar que es de
confianza y válido:
CA que firma el certificado.
Validez de la firma.
Validez de las fechas.
Lista de revocación.
Si FGT determina que el certificado es de confianza, entonces continua el SSL handshake.
22
4. FGT genera un valor conocido como pre-master secret y usa la clave pública del servidor,
que está en el certificado, para cifrar el pre-master secret y enviarlo al servidor web.
Si alguien interceptase el pre-master secret, no podría descifrarlo porque no tiene la clave
privada.
5. El servidor web usa su clave privada para descifrar el pre-master secret, ahora ambos,
FGT y el servidor web, conocen el valor del pre-master secret.
6. FGT y el servidor web crean el master secret derivado del pre-master secret.
7. FGT y el servidor web generan la clave de sesión (clave de simétrica) derivada de la
master secret.
Esta clave se necesita para cifrar y descifrar los datos.
Como ambos tienen la clave de sesión, pueden cifrar y descifrar los datos de cada uno.
8. En el paso final, antes que las dos entidades establezcan una conexión segura,
intercambian un resumen (Digest o asimilación) de los mensajes enviados.
El resumen está cifrado con la clave de sesión.
Este resumen asegura que ninguno de los mensajes intercambiados fue interceptado o
manipulado.
Si el resumen coincide en ambos, se establece un canal de comunicación segura.
24
3.6. Tipos de certificados
Una CA puede generar varios tipos de certificados, cada uno con diferentes funciones y con
diferentes nombres (algunas veces confusamente):
CA certificates
También llamados root o autority. Identifican la CA y crean la raiz de una jerarquía CA. Como tal,
los detalles del certificado tienen los mismos datos en los campos Issuer y Subject. Son
autofirmados y contienen la clave pública que necesitas para descifrar y validar las firmas
contenidas en los certificados firmados por esa CA.
Web server certificates
También llamados local service. Identifican los servicios y se usan en las comunicaciones
seguras hacia y desde los servidores, como un servidor Secure Shell (SSH), sitios web HTTPS o
la autenticación de servidores EAP 802.1X. Los detalles del certificado incluyen el FQDN o
dirección IP del servidor en el campo Subject y la clave pública del servidor.
User certificates
También llamados client. Identifican una persona ante otra, una persona ante un dispositivo /
gateway o un dispositivo ante otro dispositivo. También se incluye la clave pública de la entidad.
Tanto los certificados client (USER) como los certificados local service (SERVER) pertenecen a
la categoría certificados de end-entity.
Muchos navegadores ya tienen preinstalados los certificados de las CAs públicas más conocidas.
Sin embargo, si el certificado del servidor está firmado por una CA privada, el certificado de esa
CA debe estar instalado en el navegador para que pueda usar la clave pública y validar a la CA.
25
3.8. Autenticación de usuario
Los certificados digitales pueden usarse para autenticar a usuarios y combinarse con las
credenciales de usuario para usarlo como un 2º factor de autenticación.
En este caso, cuando un usuario se autentica contra un servidor de acceso, el usuario envía el
certificado digital, que está firmado por una CA.
La firma de la CA está cifrada con la clave privada de la CA. El servidor de acceso debe tener el
certificado de la CA instalado para descifrar y validar el certificado del usuario (con la clave
pública de la CA que lo firmó).
La ruta que debe seguirse para validar un certificado es lo que denominamos cadena de
confianza o ruta de certificación.
El proceso va de abajo hacia arriba en la cadena de confianza.
26
1. La clave pública del certificado intermediate (incluida en el certificado de la CA
intermediate) se usa para validar la firma del certificado end-entity.
2. Adicionalmente, la clave pública de root (incluida en el certificado de la CA root) se usa
para validar la firma en el certificado CA intermediate. Por esta razón el certificado end-
entity requiere los certificados de la CA root y la CA intermediate.
27
3. La CA verifica que la información del CSR es válida y entonces crea un certificado digital
para el solicitante. El certificado está firmado digitalmente usando la clave privada de la
CA.
4. La CA envía el certificado de entidad al solicitante.
5. SCEP
Simple Certificate Enrollment Protocol (SCEP) es probablemente el protocolo de gestión de
certificados usado más ampliamente.
Permite realizar solicitudes de consulta a una Autoridad de Registro (RA) para obtener
certificados, listas de revocación y enviar CSRs.
4.1. Características
SCEP se basa en solicitudes HTTP y usa el método regular HTTP GET para enviar las consultas
a la RA.
Aunque los datos están cifrados y firmados usando el standard PKCS#7, los CSRs enviados por
los solicitantes utilizan el formato PKCS#10.
Cuando la RA recibe un CSR, contesta con una de las siguientes respuestas: reject, pending y
success.
Cuando el CSR se recibe exitosamente y ha sido aprobado por un administrador, la RA emite,
firma y envía el certificado al solicitante.
SCEP tiene algunas desventajas:
Soporta un muy limitado número de solicitudes CRL
No soporta la comprobación online de la revocación del certificado
No soporta autenticación fuerte, solo una password compartida.
28
6. PKI usuarios FGT
Si vas a trabajar con usuarios PKI en FGT, debes crear al primer usuario PKI desde la consola
CLI. Después de crear el primer usuario y mientras exista al menos un usuario PKI, la opción
para crear y administrar más usuarios PKI aparece en la GUI.
Antes de crear el primer usuario vía CLI, debes haber instalado el certificado de la CA que
firma los certificados end-entity.
Puedes combinar la autenticación basada en certificado, con las credenciales de usuario para
establecer 2º factor de autenticación. Debes indicar la password para el 2º factor de autenticación.
29
5.2. Filtrado de Grupo de usuarios PKI
Cuando configures la validación UPN para los usuarios PKI y el UPN es un usuario válido; FGT
consultará los grupos de usuarios LDAP al que pertenece y usará esta información para autorizar
accesos, solo a los usuarios UPN que pertenezcan a grupos específicos.
Debes crear un grupo de usuarios y añadir como miembros el usuario y el servidor LDAP.
Debes indicar a que grupo del LDAP debe pertenecer el usuario cuyo UPN coincida.
7. Revocación de certificados
Veamos como consultar las listas de revocación de certificados (CRLs) y configurar el protocolo
OCSP para permitir extender esta comprobación online.
30
1.
7.2.1. Configurando la lista de servidores OSCP
Puedes configurar una lista de servidores OSCP, para validar el estado de revocación de los
certificados de usuario.
Por cada servidor OSCP, configura su URL y el certificado de la CA que ha firmado el
certificado del servidor (se usa para autenticar el servidor OSCP).
Opcionalmente, puedes configurar un servidor OSCP secundario (backup).
31
7.2.2. URL OSCP dentro del certificado
En algunos casos el certificado incluye la URL del servidor OSCP, para comprobar el estado de
revocación.
Puedes configurar FGT para que use esta información, certificate si está disponible en el
certificado, o ignorarla server y seguir usando el servidor OSCP configurado en FGT.
config vpn certificate setting
set ocsp-option [certificate | server]
end
En este ejemplo, FGT está configurado para validar el estado de revocación usando OSCP.
Entonces, la salida muestra la respuesta del servidor OSCP, *** Certificate status is good, lo que
nos indica que no está revocado.
32
7.2. Errores comunes que vemos en el Debug
Si ocurre algún problema con la validación del certificado de usuario, la salida mostrará un error
explicando porque ha fallado. Las posibles razones se ven en la imagen anterior.
33
FortiAuthenticator puede actuar también como un servidor OSCP (para comprobar la revocación)
y como SCEP RA (para recibir CSRs y emitir certificados).
34
FortiAuthenticator puede generar los siguientes tipos de certificados:
Certificados de USUARIO: Clientes/end users, se usan para identificar clientes, usuarios y
dispositivos. Permite descargar la clave privada, solo una vez.
Certificados LOCAL SERVICE: Servidores, se usan para identificar servidores, aplica a
solo a los servicios habilitados en FortiAuthenticator. No puedes recuperar la clave privada.
Los certificados de usuario, de cliente o local computer (máquina) son el mismo tipo de
certificado.
Nota: tener en cuenta que los certificados End Entities, solo pueden usarse para verificar la
identidad del cliente y no se pueden usar para firmar otros certificados.
36