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.comTambié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 = 1Reemplace 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-ldapAl 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 \
--unattendedAhora inicie sesión como usuario administrador. Primero, obtenga un boleto.
kinit adminAsegú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/bashTambié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/NairobiSalida 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, 445Todos 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_addressPor 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.12Salida 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.20Salida 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
> quitSalida de muestra:
En API:
dig SRV _ldap._tcp.ipa_domain
dig SRV _ldap._tcp.ad_domainResultado 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.20Para que los cambios sean permanentes, modifique el archivo:
$ sudo vim /etc/NetworkManager/NetworkManager.conf
[main]
#plugins=keyfile,ifcfg-rh
dns=none
rc-manager=unmanagedGuarde 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 --passwordPor ejemplo:
ipa trust-add --two-way=true --type=ad ad.computingforgeeks.com --admin Administrator --passwordSalida 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-secretAquí, 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 restart6. 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 --externalCree un grupo POSIX para el grupo externo ad_admins_external:
ipa group-add --desc='AD users' ad_usersAhora 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_externalAhora 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











