Recherche de site Web

Comment établir la confiance entre IPA et Active Directory


Les services d'annuaire font référence à des applications ou services logiciels qui fournissent une base de données centralisée d'informations sur les ressources réseau, telles que les utilisateurs, les ordinateurs, les imprimantes, les applications et autres périphériques réseau. Il existe plusieurs exemples de services d'annuaire, notamment Microsoft Active Directory, Novell eDirectory, LDAP, Apple Open Directory, IBM Tivoli Directory Server, IPA, etc.

Active Directory (AD) est un service d'annuaire utilisé pour gérer et stocker des informations sur les ressources dans un environnement en réseau. Il s'agit d'un composant du système d'exploitation du serveur Microsoft Windows et est utilisé par les organisations pour gérer les utilisateurs, les ordinateurs et d'autres ressources de manière centralisée. Il fournit une structure hiérarchique pour organiser les ressources telles que les utilisateurs, les groupes, les ordinateurs et autres périphériques réseau et permet aux administrateurs d'attribuer des autorisations et des droits d'accès aux ressources en fonction du rôle d'un utilisateur ou de son appartenance à un groupe.

IPA (Identity Policy and Audit) est un service d'annuaire qui fournit une authentification, une autorisation et un contrôle d'accès centralisés pour les systèmes Unix et Linux. Il s'agit d'une solution open source basée sur le projet FreeIPA, qui combine plusieurs technologies open source, notamment 389 Directory Server, MIT Kerberos et Dogtag Certificate System. En plus de fournir un service d'annuaire, IPA inclut également d'autres fonctionnalités telles que la gestion centralisée du contrôle d'accès basé sur l'hôte, l'application des politiques et l'audit.

IPA et AD peuvent être intégrés pour fonctionner ensemble. Cela implique de créer une confiance entre IPA et Active Directory en établissant une relation entre les deux services d'annuaire qui leur permet de partager des informations sur les utilisateurs et les groupes, ainsi que d'authentifier les utilisateurs sur les deux systèmes.

Ce processus implique généralement la configuration de la confiance entre domaines entre les deux services d'annuaire. La confiance entre domaines est un mécanisme qui permet aux utilisateurs d'un domaine ou d'un domaine d'accéder aux ressources d'un autre domaine ou domaine. Dans ce cas, les domaines IPA et Active Directory établiraient une relation de confiance entre domaines, ce qui permettrait aux utilisateurs des deux domaines d'accéder aux ressources de l'autre domaine.

Les avantages de l'établissement de la confiance entre une IPA (Identité, Politique et Audit) et Active Directory (AD) incluent :

  • Gestion centralisée : une fois la confiance établie, les utilisateurs et les ressources des domaines IPA et AD peuvent être gérés de manière centralisée, ce qui réduit les frais administratifs et simplifie la gestion des accès.
  • Authentification transparente : la confiance permet aux utilisateurs d'un domaine d'accéder aux ressources de l'autre domaine sans avoir besoin de saisir des informations de connexion distinctes. Cette authentification transparente améliore l'expérience utilisateur et élimine le besoin de conserver des comptes utilisateur distincts dans chaque domaine.
  • Sécurité améliorée : la confiance entre IPA et AD peut améliorer la sécurité en permettant une gestion centralisée des politiques d'accès et des autorisations des utilisateurs. Cela garantit que l'accès aux ressources n'est accordé qu'aux utilisateurs autorisés et empêche tout accès non autorisé.
  • Migration flexible : si une organisation migre d'AD vers IPA, la confiance peut être établie pour permettre une transition transparente, minimisant les perturbations pour les utilisateurs et réduisant les temps d'arrêt.
  • Interopérabilité : la confiance entre IPA et AD permet l'interopérabilité des services et des applications entre les deux domaines, permettant aux utilisateurs d'accéder aux services et aux ressources sur les deux domaines de manière transparente.

Établir la confiance entre IPA et Active Directory

Dans l'ensemble, l'établissement de la confiance entre IPA et AD améliore l'efficacité, la sécurité et l'expérience utilisateur, et facilite la gestion des ressources et des utilisateurs sur plusieurs domaines.

Pour ce test, mon environnement est configuré comme ci-dessous :

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

AD :

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. Installez et configurez le serveur IPA

FreeIPA 3.3.3 ou version ultérieure est recommandé pour ce guide. Avant de commencer, définissez le nom d'hôte de votre système :

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

Vous devez également désactiver la pile IPv6 pour Samba sur le serveur IPA. Cela peut être fait en créant/modifiant le fichier ci-dessous :

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

Remplacez l'interface par votre interface spécialisée. Cela maintiendra la pile IPv6 fonctionnelle mais n'attribuera d'adresses IPv6 à aucun de vos périphériques réseau.

Vous pouvez installer les packages du serveur IPA sur des systèmes basés sur Rhel à l'aide de la commande :

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

Lors de l'installation du serveur IPA, assurez-vous que le module ipa-server-trust-ad est installé.

Configurez maintenant le serveur IPA avec la commande ci-dessous :

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

Connectez-vous maintenant en tant qu'utilisateur administrateur. Tout d’abord, procurez-vous un billet

kinit admin

Assurez-vous que l'utilisateur administrateur est disponible sur votre système à l'aide de la commande :

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

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

Vous pouvez également suivre les guides ci-dessous pour une démonstration détaillée de la configuration d'IPA.

  • Installez le serveur FreeIPA sur Rocky Linux 9/AlmaLinux 9
  • Installer et configurer le serveur FreeIPA sur Rocky Linux 8
  • Comment installer le serveur FreeIPA sur CentOS 7/RHEL 7
  • Installer et configurer le serveur FreeIPA sur Ubuntu

2. Installer et configurer AD DS

Vous avez besoin de Windows Server 2008 R2 ou version ultérieure avec un contrôleur de domaine Active Directory configuré et un DNS installé localement sur le contrôleur de domaine. Ceci peut être réalisé en utilisant les guides ci-dessous :

  • Installer les services de domaine Active Directory dans Windows Server 2022
  • Installer les services de domaine Active Directory dans Windows Server 2019

3. Préparez AD et IPA pour Cross-Forest Trust

Lorsque vous prévoyez d'accéder aux utilisateurs AD sur les clients IPA, vous devez configurer le serveur IPA pour les approbations entre forêts. Mais avant cela, vous devez vous assurer que :

  • Synchronisation date/heure

Vous devez que l'IPA et l'AD disposent des paramètres de fuseau horaire et de la correspondance date/heure.

Sur IPA, définissez votre fuseau horaire avec la commande :

sudo timedatectl set-timezone Africa/Nairobi

Exemple de sortie :

Également sur AD, assurez-vous qu’un fuseau horaire similaire a été configuré.

  • Configuration du pare-feu

Il serait utile d'autoriser les ports ci-dessous à travers le pare-feu :

##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

Tous ces ports peuvent être autorisés avec la commande :

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

Vous devez également établir une communication entre l'AD et l'IPA. Ajoutez maintenant le domaine FreeIPA aux zones sur le serveur Windows Active Directory. La commande pour cela a la syntaxe ci-dessous :

Sur AD, exécutez les commandes ci-dessous sur 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

Par exemple :

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

Exemple de sortie :

Sur IPA, utilisez les commandes avec la syntaxe ci-dessous :

#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]

Par exemple:

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

Exemple de sortie :

Pour vérifier si les modifications sont effectives, utilisez les commandes :

Sur AD :

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

Exemple de sortie :

Sur l'IPA :

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

Exemple de sortie 1 :

Exemple de sortie 2 :

Si vous ne recevez aucune réponse pour le serveur IPA, vous devez modifier le fichier /etc/resolve.conf et ajouter l'adresse IP AD comme indiqué :

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

Pour rendre les modifications permanentes, modifiez le fichier :

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

Enregistrez le fichier et testez à nouveau.

4. Établir et vérifier la confiance Cross-Forest

Si vous souhaitez accéder aux utilisateurs AD aux clients IPA, vous devez vous assurer que vous avez exécuté la commande ipa-adtrust-install sur le maître IPA auquel les clients IPA seront connectés. de liaison:

$ 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
.......

Pour ce guide, nous allons mettre en place une approbation bidirectionnelle entre forêts entre les serveurs AD et IPA.

Il existe deux manières d'y parvenir :

  • Avec les identifiants d'administrateur AD :
ipa trust-add --two-way=true --type=ad ad_domain --admin Administrator --password

Par exemple:

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

Exemple de sortie :

Dans la commande ;

L'option -admin de la commande ipa trust-add doit être membre du groupe Administrateurs de domaine.

À ce stade, l’IPA créera une fiducie forestière bidirectionnelle du côté de l’IPA. Pour une confiance unidirectionnelle, il faut omettre l’option -two-way=true. Cela créera une confiance de forêt unidirectionnelle du côté IPA et lancera la validation de la confiance du côté AD.

  • Les informations d'identification de l'administrateur AD ne sont pas disponibles :

Lorsque vous ne disposez pas des informations d'identification de l'administrateur AD, vous pouvez utiliser la commande :

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

Ici, vous devez saisir le secret partagé de confiance lorsque vous y êtes invité. Cela créera une confiance forestière bidirectionnelle du côté de l’IPA. Vous devez valider manuellement la confiance du côté AD.

5. Configurez Kerberos sur IPA

La plupart des applications demandent à la bibliothèque Kerberos de vérifier que le principal Kerberos peut être mappé à un compte POSIX. De plus, certaines applications effectuent des vérifications supplémentaires en demandant au système d'exploitation le nom canonique du compte POSIX renvoyé par la bibliothèque Kerberos. OpenSSH essaie de comparer le nom du principal inchangé, mais SSSD met en minuscule la partie domaine et donc le nom d'utilisateur réel est Administrateur@realm, et non administrateur@realm, lorsque vous essayez de vous connecter avec un ticket Kerberos via SSH.

Nous devons donc définir les règles de mappage des principaux Kerberos aux noms d'utilisateurs du système. Nous devons modifier manuellement le fichier /etc/krb5.conf sur le serveur IPA pour permettre l'authentification Kerberos.

Pour ce faire, ajoutez les deux lignes ci-dessous à toute machine qui verra les utilisateurs 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
}

Redémarrez maintenant le service KDC et SSSD :

service krb5kdc restart
service sssd restart

6. Autoriser l'accès des utilisateurs du domaine AD aux ressources protégées

Désormais, pour que les utilisateurs puissent accéder à des ressources fiables, ils doivent être mappés à des groupes IPA. Ceci peut être fait de deux façons:

  • Ajoutez des utilisateurs et des groupes de domaines de confiance à un groupe externe dans IPA. Le groupe externe sert de conteneur pour référencer les utilisateurs et groupes de domaines approuvés par leurs identifiants de sécurité.
  • Mappez le groupe externe à un groupe POSIX existant dans IPA. Ce groupe POSIX se verra attribuer un identifiant de groupe approprié (gid) qui sera utilisé comme groupe par défaut pour tous les utilisateurs de domaine de confiance entrants mappés à ce groupe.

Pour créer un groupe POSIX externe pour les utilisateurs du domaine de confiance

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

Créez un groupe POSIX pour le groupe externe ad_admins_external :

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

Ajoutez maintenant les utilisateurs AD au groupe POSIX

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

Par exemple:

Ajoutez le groupe IdM externe au groupe IdM POSIX en tant que membre.

ipa group-add-member ad_users --groups ad_users_external

Les utilisateurs devraient désormais être disponibles sur la console IPA comme indiqué :

7. Test de la confiance inter-forêts

Nous pouvons désormais tester la confiance entre forêts en nous connectant à un client IPA en utilisant n'importe quel utilisateur dans AD. Pour ce test, nous avons un utilisateur [email sur le serveur AD. Nous pouvons utiliser cet utilisateur pour nous connecter à n'importe quel serveur connecté à IPA.

Vérifiez si l'utilisateur existe :

Testez si vous pouvez vous connecter avec l'utilisateur :

Verdict

Cela marque la fin de ce guide sur la façon d'établir la confiance entre IPA et Active Directory. Cette intégration vous permettra sûrement de gérer plus facilement les utilisateurs et les ressources au sein de votre organisation. J'espère que c'était important pour vous.

Guides associés :

  • Rejoignez le système Windows au domaine FreeIPA sans Active Directory
  • Authentification Active Directory pour Kubernetes Kubectl CLI
  • Intégrez TrueNAS avec LDAP/Active Directory pour l'authentification des utilisateurs

Articles connexes