Ir al contenido
Avanet

Conectar un servidor LDAP genérico con Sophos Firewall

Con el tipo de servidor LDAP server, Sophos Firewall autentica usuarios de OpenLDAP, 389 Directory Server, FreeIPA, Google Secure LDAP y otros directorios LDAP. El proceso completo consta de cuatro partes: crear un grupo local, conectar el servidor LDAP de forma segura, activar el servidor en Authentication > Services y comprobar el inicio de sesión y la asignación de grupos con un usuario real.

Para Windows Active Directory con LDAPS, importación de grupos o AD SSO, resulta más adecuado Conectar Active Directory con Sophos Firewall. La autenticación RADIUS mediante Microsoft NPS o una pasarela MFA se explica en Configurar un servidor RADIUS en Sophos Firewall.

Si es necesario sustituir el tipo de servidor eDirectory nativo antes de SFOS 23, Migrar eDirectory antes de SFOS 23 ofrece el proceso completo con inventario, elección del destino, funcionamiento en paralelo y vía de reversión.

Requisitos

  • acceso WebAdmin a Sophos Firewall
  • conectividad entre el firewall y el servidor LDAP, normalmente por el puerto 389 para STARTTLS o 636 para SSL/TLS
  • una cuenta de bind con permisos de lectura sobre la parte necesaria del directorio
  • el Bind DN y la Base DN, por ejemplo cn=svc-sophos,ou=service,dc=example,dc=net y ou=people,dc=example,dc=net
  • los atributos de usuario que se utilizan realmente, como uid, cn, mail y un atributo de grupo
  • la cadena de confianza de CA adecuada y una resolución DNS operativa cuando se valida el certificado

⚠️ Una cuenta de bind solo debe tener permisos de lectura sobre el subárbol necesario. No se utiliza para realizar cambios administrativos en el directorio, sino únicamente para autenticar ante el servidor LDAP las consultas de usuarios que realiza el firewall.

Crear el servidor LDAP

Preparar el grupo LDAP local

  1. Abrir Authentication > Groups y seleccionar Add.
  2. Crear un grupo con un nombre inequívoco, por ejemplo Usuarios-LDAP.
  3. Definir el acceso, las cuotas de tiempo y las demás políticas de grupo según el uso previsto y guardar.

Este grupo se utilizará después como Default group. No impide automáticamente el acceso: lo determinan las políticas asignadas al grupo y las reglas del servicio correspondiente.

La lógica general de grupos con un Default Group restrictivo, excepciones de usuario, piloto y reversión se describe en Gestionar grupos de usuarios de Sophos Firewall de forma segura; la asignación específica de LDAP depende después del atributo de grupo y del esquema del directorio.

Configurar la conexión y el bind

  1. Abrir Authentication > Servers y seleccionar Add.
  2. Elegir LDAP server como Server type.
  3. Asignar un Server name inequívoco, por ejemplo LDAP-Empresa.
  4. En Server IP/domain, introducir el nombre DNS del servidor LDAP. Si la validación del certificado está activa, debe coincidir con un nombre del certificado del servidor.
  5. Utilizar Version 3, salvo que el directorio requiera otra versión. Google Secure LDAP solo admite la versión 3.
  6. Para producción, seleccionar SSL/TLS o STARTTLS y el puerto correspondiente.
  7. Desactivar Anonymous login e introducir el Bind DN y el Password de la cuenta de lectura.
  8. Activar Append base DN solo si el servidor LDAP espera que se añada la Base DN durante el bind.
  9. Activar Validate server certificate cuando el nombre, el DNS y la confianza de CA estén configurados correctamente. Solo se necesita un Client certificate si el servicio LDAP exige autenticación mutua mediante certificados.

Introducir la base de búsqueda y los atributos

  1. En Base DN, introducir el punto de inicio de la búsqueda de usuarios, por ejemplo ou=people,dc=example,dc=net. Get base DN puede obtener la base de búsqueda ofrecida por el servidor.
  2. Establecer Authentication attribute en el atributo de inicio de sesión, normalmente uid o mail.
  3. Introducir Display name attribute y Email address attribute de acuerdo con el objeto de usuario, por ejemplo cn y mail.
  4. En Group name attribute, introducir el atributo del que el firewall obtiene la información de grupos del usuario. Sophos recomienda memberOf, pero el valor correcto depende del esquema del directorio.
  5. Si el directorio proporciona una fecha de caducidad de la cuenta, introducir el Expiry date attribute correspondiente.
  6. Ejecutar Test connection y guardar con Save.

Según Sophos, Test connection comprueba la conexión y las credenciales. Solo un inicio de sesión real permite verificar si la Base DN incluye todos los usuarios necesarios y si los grupos se asignan correctamente.

Elegir el cifrado correcto

LDAP en texto plano transmite las credenciales sin cifrar y, como máximo, resulta apropiado para una prueba aislada. En producción, la conexión debe protegerse con SSL/TLS, normalmente por el puerto 636, o con STARTTLS, normalmente por el puerto 389.

Hay que distinguir dos funciones de los certificados:

  • Validate server certificate comprueba la identidad del servidor LDAP remoto. Server IP/domain debe coincidir con un nombre DNS válido del certificado, ya sea el Common Name o un Subject Alternative Name. Si el firewall no puede resolver este nombre, se añade una entrada DNS adecuada en Network > DNS > DNS host entry. Configurar y probar DNS Host Entries en Sophos Firewall explica el TTL, la resolución inversa y la prueba del resolver. La CA emisora también debe ser de confianza.
  • Client certificate identifica el firewall ante un servicio LDAP que exige autenticación mutua mediante certificados. Este certificado no sustituye la validación del certificado del servidor.

Ante un error TLS, primero deben corregirse el nombre del servidor, la resolución DNS, la validez y la cadena de CA. Desactivar la validación del certificado del servidor no debe ser la solución predeterminada.

Introducir correctamente el Bind DN y la Base DN

La causa más frecuente de errores al configurar un servidor LDAP nuevo es una sintaxis DN mal escrita o mal interpretada.

  • Un DN va desde el objeto específico hasta la raíz del directorio, por ejemplo cn=svc-sophos,ou=service,dc=example,dc=net.
  • La Base DN comienza donde debe iniciarse la búsqueda de usuarios. Si los usuarios están en varias unidades organizativas, debe situarse lo bastante arriba en el árbol para incluirlos.
  • Una Base DN demasiado limitada no devuelve usuarios coincidentes aunque el servidor sea accesible. Una base de búsqueda innecesariamente amplia puede ralentizar la búsqueda e incluir objetos no deseados.
  • Append base DN añade la Base DN a un Bind DN incompleto durante el bind. Si el DN ya está completo, la opción suele permanecer desactivada; el comportamiento del servidor LDAP es el criterio decisivo.

Activar grupos y servicios

Group name attribute no es un selector universal para todas las estructuras de grupos LDAP. Durante el inicio de sesión, el firewall lee el atributo configurado en el objeto de usuario y utiliza la información de grupos devuelta para la asignación. Sophos recomienda memberOf, y Google Secure LDAP utiliza este valor. Sin embargo, OpenLDAP, 389-ds o FreeIPA pueden requerir otro valor según el esquema, el overlay y el objeto de usuario.

No se debe deducir el atributo de usuario únicamente del tipo de grupo groupOfNames o posixGroup. Lo importante es lo que devuelve realmente el objeto de usuario y si el grupo correspondiente está representado correctamente en el firewall. Si el firewall no encuentra una asignación de grupo adecuada, el usuario se incluye en el Default group configurado.

A continuación, activar el servidor:

  1. Abrir Authentication > Services.
  2. En Firewall authentication methods, seleccionar el servidor LDAP y moverlo a la posición deseada dentro de Selected authentication servers. El firewall consulta varios servidores en este orden.
  3. Seleccionar el grupo Usuarios-LDAP creado anteriormente como Default group y pulsar Apply.
  4. Si los usuarios deben iniciar sesión en User Portal, VPN Portal, mediante SSL VPN, en otro servicio VPN o como administradores, seleccionar también el servidor LDAP en el método de autenticación correspondiente.

Configurar Google Secure LDAP

Antes de configurar el firewall, se crea un cliente LDAP en la consola de administración de Google. Allí se definen sus permisos de acceso, se descarga el certificado con su clave privada y se generan credenciales independientes. La contraseña no vuelve a mostrarse después de cerrar el cuadro de diálogo de Google.

El certificado de cliente de Google se importa con su certificado y clave privada en Certificates > Certificates > Add. Sophos Firewall puede mostrarlo como no confiable porque está autofirmado por Google, pero funciona igualmente para la autenticación del cliente. Esta indicación no afecta a la validación del certificado del servidor.

Para el servidor LDAP se utilizan los siguientes valores:

  • Server IP/domain: ldap.google.com
  • Version: 3
  • Connection security: SSL/TLS
  • Port: 636
  • Anonymous login: desactivado
  • Bind DN y Password: las credenciales LDAP de Google generadas
  • Append base DN: desactivado
  • Client certificate: el certificado de Google importado
  • Base DN: introducirla u obtenerla mediante Get base DN
  • Authentication attribute: UID
  • Display name attribute: CN
  • Email address attribute: mail
  • Group name attribute: memberOf
  • Expiry date attribute: expiry

mail es necesario para crear grupos LDAP de Google. Después de guardar, se siguen los mismos pasos que con un directorio local: definir el grupo LDAP local, activar el servidor en Authentication > Services y probar un inicio de sesión real junto con su asignación de grupo.

Comprobar la conexión y la asignación de grupos

Una validación fiable abarca varios niveles:

  1. Test connection confirma la conexión y las credenciales de bind.
  2. Un usuario inicia sesión en el servicio previsto, por ejemplo en VPN Portal o Captive Portal.
  3. En Authentication > Users, se comprueba que el usuario y el grupo aparecen como se espera.
  4. Si se utilizan varios grupos LDAP, se prueba al menos un usuario de cada grupo relevante. Una política o regla de prueba confirma que funcionan tanto el inicio de sesión como la autorización del grupo correspondiente.
  5. Una contraseña incorrecta se rechaza y el Log viewer muestra un error de autenticación comprensible.

Si el esquema no está claro, un administrador puede inspeccionar el objeto de usuario en modo de solo lectura desde un sistema de administración Linux o desde el servidor LDAP:

ldapsearch -LLL -x -H ldaps://ldap.example.net:636 \
  -D 'cn=svc-sophos,ou=service,dc=example,dc=net' -W \
  -b 'ou=people,dc=example,dc=net' \
  '(uid=max.muster)' '*' '+'

-W solicita la contraseña de bind de forma interactiva para que no quede almacenada en el historial de la shell. '*' muestra los atributos normales y '+' los atributos operativos; si se utiliza otro atributo de inicio de sesión, hay que adaptar el filtro de búsqueda. Este comando no debe ejecutarse en la Advanced Shell de Sophos Firewall. Lo importante es comprobar si el objeto de usuario devuelve realmente los atributos y valores de grupo esperados. La salida puede contener datos personales del directorio y debe anonimizarse antes de adjuntarla a un ticket o compartirla.

Errores habituales

  • Sin conexión: Comprobar el enrutamiento, el DNS, el puerto y Connection security. Después, revisar el Bind DN, la contraseña y Anonymous login.
  • Error TLS o de certificado: Comprobar los nombres DNS del certificado del servidor, la resolución DNS, la validez y la cadena de CA. No desactivar la validación del certificado del servidor como primera medida.
  • Test connection funciona, pero no se encuentra al usuario: La Base DN suele ser demasiado limitada o Authentication attribute no coincide con el nombre utilizado para iniciar sesión.
  • El inicio de sesión funciona, pero el usuario queda en el Default group: Comprobar Group name attribute en el objeto de usuario real, la correspondencia de grupos locales y su orden. memberOf es un ejemplo habitual, pero no está garantizado en todos los esquemas.
  • Google Secure LDAP no realiza el bind: Comprobar la versión 3, el puerto 636, Anonymous login desactivado, Append base DN desactivado, las credenciales y el certificado de cliente de Google.
  • El servidor está configurado, pero no se utiliza: Comprobar la asignación, el orden y el Default group en Authentication > Services.
  • La búsqueda es lenta o devuelve cuentas no deseadas: Limitar la Base DN al subárbol necesario.
  • Otro servidor de autenticación responde primero: Corregir el orden de los servidores seleccionados para el servicio afectado.