Búsqueda de sitios web

Cómo establecer confianza entre IPA y Active Directory


Los servicios de directorio se refieren a aplicaciones o servicios de software que proporcionan una base de datos centralizada de información sobre recursos de red, como usuarios, computadoras, impresoras, aplicaciones y otros dispositivos de red. Hay varios ejemplos de servicios de directorio, incluidos Microsoft Active Directory, Novell eDirectory, LDAP, Apple Open Directory, IBM Tivoli Directory Server, IPA, etc.

Active Directory (AD) es un servicio de directorio que se utiliza para administrar y almacenar información sobre recursos en un entorno de red. Es un componente del sistema operativo del servidor Microsoft Windows y lo utilizan las organizaciones para administrar usuarios, computadoras y otros recursos de forma centralizada. Proporciona una estructura jerárquica para organizar recursos como usuarios, grupos, computadoras y otros dispositivos de red y permite a los administradores asignar permisos y derechos de acceso a los recursos según la función de un usuario o la membresía del grupo.

IPA (Política y auditoría de identidad) es un servicio de directorio que proporciona autenticación, autorización y control de acceso centralizados para sistemas Unix y Linux. Es una solución de código abierto basada en el proyecto FreeIPA, que combina varias tecnologías de código abierto, incluidas 389 Directory Server, MIT Kerberos y Dogtag Certificate System. Además de proporcionar un servicio de directorio, IPA también incluye otras características como gestión centralizada de control de acceso basado en host, aplicación de políticas y auditoría.

IPA y AD se pueden integrar para trabajar juntos. Esto implica crear confianza entre IPA y Active Directory mediante el establecimiento de una relación entre los dos servicios de directorio que les permita compartir información de usuarios y grupos, así como autenticar usuarios en ambos sistemas.

Este proceso normalmente implica configurar la confianza entre dominios entre los dos servicios de directorio. La confianza entre dominios es un mecanismo que permite a los usuarios de un dominio o ámbito acceder a recursos en otro dominio o ámbito. En este caso, los dominios IPA y Active Directory establecerían una relación de confianza entre dominios, lo que permitiría a los usuarios de ambos dominios acceder a los recursos del otro dominio.

Los beneficios de establecer confianza entre una IPA (Identidad, Política y Auditoría) y Active Directory (AD) incluyen:

  • Gestión centralizada: una vez establecida la confianza, los usuarios y recursos de los dominios IPA y AD se pueden gestionar de forma centralizada, lo que reduce la sobrecarga administrativa y simplifica la gestión del acceso.
  • Autenticación perfecta: Trust permite a los usuarios de un dominio acceder a recursos del otro dominio sin necesidad de introducir credenciales de inicio de sesión independientes. Esta autenticación perfecta mejora la experiencia del usuario y elimina la necesidad de mantener cuentas de usuario separadas en cada dominio.
  • Seguridad mejorada: la confianza entre IPA y AD puede mejorar la seguridad al permitir la gestión centralizada de las políticas de acceso y los permisos de los usuarios. Esto garantiza que el acceso a los recursos solo se conceda a usuarios autorizados y evita el acceso no autorizado.
  • Migración flexible: si una organización está migrando de AD a IPA, se puede establecer confianza para permitir una transición fluida, minimizando las interrupciones para los usuarios y reduciendo el tiempo de inactividad.
  • Interoperabilidad: la confianza entre IPA y AD permite la interoperabilidad de servicios y aplicaciones entre los dos dominios, lo que permite a los usuarios acceder a servicios y recursos en ambos dominios sin problemas.

Establecer confianza entre IPA y Active Directory

En general, establecer confianza entre IPA y AD mejora la eficiencia, la seguridad y la experiencia del usuario, y facilita la gestión de recursos y usuarios en múltiples dominios.

Para esta prueba, tengo mi entorno configurado de la siguiente manera:

IPA:

IPA server IP address IPA server hostname IPA domain IPA NetBIOS IPA Kerberos realm
192.168.205.12 ipa.master.computingforgeeks.com master.computingforgeeks.com MASTER MASTER.COMPUTINGFORGEEKS.COM

ANUNCIO:

AD DC IP address AD DC hostname AD domain AD NetBIOS AD admins group SID
192.168.205.20 windows ad.computingforgeks.com GEEKS ad_admins_sid (e.g. S-1-5-21-16904141-148189700-2149043814-512)

1. Instalar y configurar el servidor IPA

Se recomienda FreeIPA 3.3.3 o posterior para esta guía. Antes de comenzar, configure el nombre de host para su sistema:

sudo hostnamectl set-hostname ipa.master.computingforgeeks.com

También necesitas deshabilitar la pila IPv6 para Samba en el servidor IPA. Esto se puede hacer creando/modificando el siguiente archivo:

$ sudo vim /etc/sysctl.d/ipv6.conf
 # Disable IPv6
 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.<interface0>.disable_ipv6 = 1

Reemplace la interfaz con su interfaz especializada. Esto mantendrá la pila IPv6 funcional pero no asignará direcciones IPv6 a ninguno de sus dispositivos de red.

Puede instalar los paquetes del servidor IPA en sistemas basados en Rhel usando el comando:

sudo yum install -y "*ipa-server" "*ipa-server-trust-ad" ipa-server-dns bind bind-dyndb-ldap

Al instalar el servidor IPA, asegúrese de que el módulo ipa-server-trust-ad esté instalado.

Ahora configure el servidor IPA con el siguiente comando:

sudo ipa-server-install --domain master.computingforgeeks.com --realm MASTER.COMPUTINGFORGEEKS.COM \
    --reverse-zone=205.168.192.in-addr.arpa. \
    --no-forwarders \
    --no-ntp \
    --setup-dns \
    --ds-password StrongDMPassw0rd \
    --admin-password StrongDMPassw0rd \
    --unattended

Ahora inicie sesión como usuario administrador. Primero, obtenga un boleto.

kinit admin

Asegúrese de que el usuario administrador esté disponible en su sistema usando el comando:

$ id admin
uid=1634400000(admin) gid=1634400000(admins) groups=1634400000(admins)

$ getent passwd admin
admin:*:1634400000:1634400000:Administrator:/home/admin:/bin/bash

También puede seguir las guías siguientes para obtener una demostración detallada de cómo configurar IPA.

  • Instale el servidor FreeIPA en Rocky Linux 9/AlmaLinux 9
  • Instalar y configurar el servidor FreeIPA en Rocky Linux 8
  • Cómo instalar el servidor FreeIPA en CentOS 7/RHEL 7
  • Instalar y configurar el servidor FreeIPA en Ubuntu

2. Instalar y configurar AD DS

Necesita Windows Server 2008 R2 o posterior con Active Directory DC y DNS configurados instalados localmente en el DC. Esto se puede lograr utilizando las siguientes guías:

  • Instale los servicios de dominio de Active Directory en Windows Server 2022
  • Instale los servicios de dominio de Active Directory en Windows Server 2019

3. Prepare AD e IPA para Cross-Forest Trust

Cuando planee acceder a los usuarios de AD en los clientes IPA, debe configurar el servidor IPA para confianzas entre bosques. Pero antes de eso, debes asegurarte de que:

  • Sincronización de fecha/hora

Debe tener tanto el IPA como el AD con la configuración de zona horaria y la coincidencia de fecha/hora.

En IPA, configura tu zona horaria con el comando:

sudo timedatectl set-timezone Africa/Nairobi

Salida de muestra:

También en AD, asegúrese de que se haya configurado una zona horaria similar.

  • Configuración del cortafuegos

Sería útil si permitiera que los siguientes puertos pasen a través del firewall:

##TCP ports: 
80, 88, 443, 389, 636, 464, 53, 135, 138, 139, 445, 1024-1300

##UDP ports: 
88, 464, 53, 123, 138, 139, 389, 445

Todos estos puertos se pueden permitir con el comando:

sudo firewall-cmd --add-service={dns,http,https,ntp,freeipa-ldap,freeipa-ldaps,freeipa-trust} --permanent
sudo firewall-cmd --reload
  • Configuración DNS

También es necesario establecer comunicación entre AD e IPA. Ahora agregue el dominio FreeIPA a las zonas en Windows Active Directory Server. El comando para esto tiene la siguiente sintaxis:

En AD, ejecute los siguientes comandos en CMD:

C:\> dnscmd 127.0.0.1 /ResetForwarders ipa_ip_address /Slave
C:\> dnscmd 127.0.0.1 /ZoneAdd ipa_domain /Secondary ipa_ip_address

Por ejemplo:

dnscmd 127.0.0.1 /ResetForwarders 192.168.205.12 /Slave
dnscmd 127.0.0.1 /ZoneAdd master.computingforgeeks.com /Secondary 192.168.205.12

Salida de muestra:

En IPA, utilice comandos con la siguiente sintaxis:

#IPA v3.x:
ipa dnszone-add ad_domain --name-server=ad_hostname.ad_domain --admin-email='hostmaster@ad_domain' --force --forwarder=ad_ip_address --forward-policy=only --ip-address=ad_ip_address
ipa dnszone-mod [IPA domain name] --allow-transfer=[AD IP address]

##IPA v4.x:
ipa dnsforwardzone-add ad_domain --forwarder=ad_ip_address --forward-policy=only
ipa dnszone-mod [IPA domain name] --allow-transfer=[AD IP address]

Por ejemplo:

sudo ipa dnsforwardzone-add ad.computingforgeeks.com --forwarder=192.168.205.20  --forward-policy=only
ipa dnszone-mod  master.computingforgeeks.com --allow-transfer=192.168.205.20

Salida de muestra:

Para verificar si los cambios son efectivos, use los comandos:

En anuncio:

C:\> nslookup
> set type=srv
> _ldap._tcp.ad_domain
> _ldap._tcp.ipa_domain
> quit

Salida de muestra:

En API:

dig SRV _ldap._tcp.ipa_domain
dig SRV _ldap._tcp.ad_domain

Resultado de muestra 1:

Resultado de muestra 2:

Si no puede recibir ninguna respuesta para el servidor IPA, debe editar el archivo /etc/resolve.conf y agregar la IP de AD como se muestra:

$ sudo vim /etc/resolv.conf
# Generated by NetworkManager
search master.computingforgeeks.com
nameserver 192.168.205.20

Para que los cambios sean permanentes, modifique el archivo:

$ sudo vim /etc/NetworkManager/NetworkManager.conf
[main]
#plugins=keyfile,ifcfg-rh
dns=none
rc-manager=unmanaged

Guarde el archivo y vuelva a probar.

4. Establecer y verificar la confianza entre bosques

Si desea acceder a los usuarios de AD a los clientes IPA, debe asegurarse de haber ejecutado el comando ipa-adtrust-install en el maestro IPA al que se conectarán los clientes IPA. conectando:

$ sudo ipa-adtrust-install --netbios-name=MASTER -a StrongDMPassw0rd
The log file for this installation can be found in /var/log/ipaserver-adtrust-install.log
==============================================================================
This program will setup components needed to establish trust to AD domains for
the IPA Server.

This includes:
  * Configure Samba
  * Add trust related objects to IPA LDAP server

To accept the default shown in brackets, press the Enter key.

WARNING: The smb.conf already exists. Running ipa-adtrust-install will break your existing samba configuration.


Do you wish to continue? [no]: yes
Do you want to enable support for trusted domains in Schema Compatibility plugin?
This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users.

Enable trusted domains support in slapi-nis? [no]: yes
.......

Para esta guía, configuraremos una confianza entre bosques bidireccional entre los servidores AD e IPA.

Hay dos maneras de lograr esto:

  • Con credenciales de administrador de AD:
ipa trust-add --two-way=true --type=ad ad_domain --admin Administrator --password

Por ejemplo:

ipa trust-add --two-way=true --type=ad ad.computingforgeeks.com --admin Administrator --password

Salida de muestra:

En el mando;

La opción -admin en el comando ipa trust-add debe ser miembro del grupo Administradores de dominio.

En este punto, la IPA creará un fideicomiso forestal bidireccional por parte de la IPA. Para una confianza unidireccional, es necesario omitir la opción -two-way=true. Esto creará una confianza forestal unidireccional en el lado de IPA e iniciará la validación de la confianza desde el lado de AD.

  • Las credenciales de administrador de AD no están disponibles:

Cuando no tenga las credenciales de administrador de AD, puede usar el comando:

ipa trust-add --two-way=true --type=ad "ad_domain" --trust-secret

Aquí, debe ingresar el secreto compartido de confianza cuando se le solicite. Esto creará una confianza forestal bidireccional por parte de la API. Debe validar manualmente la confianza en el lado de AD.

5. Configurar Kerberos en IPA

La mayoría de las aplicaciones solicitan a la biblioteca Kerberos que verifique que el principal de Kerberos se pueda asignar a alguna cuenta POSIX. Además, algunas aplicaciones realizan comprobaciones adicionales solicitando al sistema operativo el nombre canónico de la cuenta POSIX devuelta por la biblioteca Kerberos. OpenSSH intenta comparar el nombre del principal sin cambios, pero SSSD pone en minúsculas la parte del reino y, por lo tanto, el nombre de usuario real es Administrador@reino, no administrador@reino, cuando intenta iniciar sesión con un ticket de Kerberos a través de SSH.

Por lo tanto, debemos definir las reglas para asignar los principales de Kerberos a los nombres de usuario del sistema. Necesitamos editar manualmente /etc/krb5.conf en el servidor IPA para permitir la autenticación Kerberos.

Para hacerlo, agregue las dos líneas siguientes a cualquier máquina que vaya a ver usuarios de AD.

$ sudo vim /etc/krb5.conf
[realms]
IPA_DOMAIN = {
....
  auth_to_local = RULE:[1:$1@$0](^.*@AD_DOMAIN$)s/@AD_DOMAIN/@ad_domain/
  auth_to_local = DEFAULT
}

Ahora reinicie el servicio KDC y SSSD:

service krb5kdc restart
service sssd restart

6. Permitir el acceso de los usuarios del dominio AD a recursos protegidos.

Ahora, para que los usuarios puedan acceder a recursos confiables, deben estar asignados a grupos IPA. Esto se puede hacer de dos formas:

  • Agregue usuarios y grupos de dominios confiables a un grupo externo en IPA. El grupo externo sirve como contenedor para hacer referencia a usuarios y grupos de dominio confiables mediante sus identificadores de seguridad.
  • Asigne el grupo externo a un grupo POSIX existente en IPA. A este grupo POSIX se le asignará una identificación de grupo adecuada (gid) que se utilizará como grupo predeterminado para todos los usuarios entrantes del dominio confiable asignados a este grupo.

Para crear un grupo POSIX externo para los usuarios del dominio de confianza

ipa group-add --desc='AD users external map' ad_users_external --external

Cree un grupo POSIX para el grupo externo ad_admins_external:

ipa group-add --desc='AD users' ad_users

Ahora agregue los usuarios de AD al grupo POSIX

ipa group-add-member ad_users_external --external "ad.computingforgeeks.com\Domain_User"

Por ejemplo:

Agregue el grupo IdM externo al grupo POSIX IdM como miembro.

ipa group-add-member ad_users --groups ad_users_external

Ahora los usuarios deberían estar disponibles en la consola IPA como se muestra:

7. Probar la confianza entre bosques

Ahora podemos probar la confianza entre bosques conectándonos a un cliente IPA utilizando cualquier usuario en AD. Para esta prueba, tenemos un usuario [correo electrónico protegido] en el servidor AD. Podemos utilizar este usuario para iniciar sesión en cualquier servidor conectado a IPA.

Verificar si el usuario existe:

Pruebe si puede iniciar sesión con el usuario:

Veredicto

Esto marca el final de esta guía sobre cómo establecer confianza entre IPA y Active Directory. Esta integración seguramente le facilitará la gestión de usuarios y recursos en toda su organización. Espero que esto haya sido significativo para ti.

Guías relacionadas:

  • Únase al sistema Windows en FreeIPA Realm sin Active Directory
  • Autenticación de Active Directory para Kubernetes Kubectl CLI
  • Integre TrueNAS con LDAP/Active Directory para la autenticación de usuarios

Artículos relacionados