Installation de freeIPA sur une fedora 44 server
FreeIPA vise à fournir un système d'identité, de politique et d'audit (IPA) géré de manière centralisée. C'est la version open-source (libre et gratuite) du système de gestion des identités développé par Red Hat.
Pour faire simple, c'est un annuaire de tout ce qui est présent sur le domaine. Utilisateurs, groupes, ordinateurs, services, et même des objets comme les imprimantes ou les clés SSH ... sont gérés de manière centralisée en implémentant, en plus, une couche de sécurité pour contrôler qui se connecte et ce à quoi il a accès (authentification et autorisation).
Pour découvrir cet outil, nous allons commencer par installer un serveur sous fedora 44 server lien qui aura presque tous les outils nécessaires.
installation de fedora 44 server
Pour cette installation, nous partirons sur une VM sur Oracle VirtualBox avec les paramètres par défaut. Pour ce test, je préfère que la machine reste isolée et ne vienne pas perturbé le reste du réseau local, on reste donc en mode NAT et on fera une redirection de port pour pouvoir atteindre la VM.
Mode graphique après le boot


- On laisse le compte root désactivé et on crée un utilisateur avec les droits administrateur.

- Configuration du stockage

- On règle la configuration réseau sur
Methode : manuel(ip statique en renseignant la passerelle et le dns du réseau). Ici nous sommes dans une machine virtuelle en mode NAT complètement isolée du réseau local.
Configuration du réseau


- On termine l'installation

Redemarrage du serveur
On va commencer par les réglages de base comme vérifier que l'adresse IP du serveur est bien en statique ou le réglage du nom d'hôte qui doit être pleinement qualifié pour convenir a freeIPA.

Déjà, voici les prérequis pour freeIPA:
- Au moins 2 GB RAM (4 GB recommandé).
- Un nom de domaine pleinement qualifié pour le serveur (FQDN).
- Une adresse IP statique.
- Un DNS qui resout le nom de domaine (FQDN) en son adresse IP.
Pour les besoins de la découverte, on va donc utiliser :
- FQDN du serveur :
ipa.famico.test - Royaume :
FAMICO.TEST - Domaine :
famico.test
Configuration du Hostname
#Définir le nom d'hôte du serveur sur son nom de domaine complet (FQDN)
sudo hostnamectl set-hostname ipa.famico.test
#On vérifie
hostname -f
DNS
On ajoute l'adresse IP du serveur à /etc/hosts afin qu'il soit résolu localement avant la configuration du DNS.
sudo nano /etc/hosts
#Resolution de l'adresse IP du serveur
<IP_SERVEUR> ipa.famico.test ipa
Installation de freeIPA
Mise à jour et installation des paquets
Mettez à jour votre système et installez le serveur FreeIPA ainsi que le service DNS intégré :
sudo dnf update -y
sudo dnf install -y freeipa-server freeipa-server-dns

Lancement de l'installation
Exécutez la commande d'installation. Vous pouvez choisir le mode interactif ou passer les arguments directement. Pour une configuration standard avec DNS intégré :
sudo ipa-server-install --setup-dns --no-forwarders --mkhomedir
Note : L'option --no-forwarders configure le DNS pour ne pas transférer les requêtes externes, idéal pour un laboratoire isolé.

La configuration interactive
Suivez les invites de l'installateur :
- Entrez le nom de domaine (ex:
votre-domaine.local). - Confirmez le Royaume Kerberos (généralement le domaine en majuscules).
- Définissez le mot de passe de l'administrateur de l'annuaire (Directory Manager).
- Définissez le mot de passe de l'administrateur IPA (admin).
- Acceptez la configuration de la zone DNS inverse si proposée.
- Validez la configuration finale par
yes.
Vérification des services
Une fois l'installation terminée (cela peut prendre plusieurs minutes), vérifiez que tous les services sont actifs :

sudo ipactl status

Ouverture des ports requis du firewall
Fedora inclut des définitions de services spécifiques pour freeIPA qui regroupent automatiquement tous les ports nécessaires. C'est la méthode la plus simple et la moins sujette aux erreurs.
#Ajoute les services FreeIPA et DNS de manière permanente
sudo firewall-cmd --permanent --add-service={freeipa-4,dns}
# Recharge le pare-feu pour appliquer les changements immédiatement
sudo firewall-cmd --reload
Le service freeipa-4 couvre automatiquement les ports TCP (80, 443, 389, 636, 88, 464) et UDP (88, 464), tandis que le service dns gère le port 53 (TCP/UDP). Si vous utilisez également la synchronisation horaire locale, ajoutez le service ntp :
#Ajoute le service ntp de manière permanente
sudo firewall-cmd --permanent --add-service=ntp
sudo firewall-cmd --reload

Accès et première connexion
- Obtenez un ticket Kerberos pour l'admin :
kinit admin

- Accédez à l'interface web via
https://<VOTRE_FQDN>depuis votre navigateur hôte. Dans notre cas de machine virtuelle totalement isolée, nous allons devoir passé par une redirection de ports. - Ignorez l'avertissement de certificat (auto-signé) et connectez-vous avec l'utilisateur
admin.

Depuis cette interface ou la nouvelle, on peut gérer l'ajout d'utilisateurs, les groupes, les équipements et les permissions associées a chacun.
Connexion au domaine
Tout cela est très sympa, mais l'intérêt c'est quand même de gérer la connexion des utilisateurs autorisés à leur session de travail. on va donc se servir d'une autre machine virtuelle, cette fois sur debian avec un environnement gnome. évidemment, ce serait mieux en version graphique.
Commençons par créer un utilisateur


Installation du client freeIPA
- On installe les paquets sur le poste sous debian :
sudo apt install freeipa-client -y
- On va commencer par récupérer le nom de notre connexion
nmcli connection show
- On met le dns du serveur freeIPA sur notre client :
nmcli connection modify <Wired\ Connection\ 1> ipv4.dns 192.168.21.50
nmcli connection down <Wired\ Connection\ 1>; nmcli connection up <Wired\ Connection\ 1>
- On configure le client avec la commande :
sudo ipa-client-install --mkhomedir --enable-dns-updates
l'option --mkhomedir permet de créer le dossier /home de l'utilisateur lors de sa première connexion au poste
Règles HBAC (Host-Based Access Control)
Par défaut, freeIPA bloque les connexions graphiques si le service correspondant n'est pas autorisé dans les règles HBAC.
- Identifier votre gestionnaire d'affichage :
- GNOME (Debian défaut) : utilise
gdmougdm-password. - KDE Plasma : utilise
sddm. - XFCE / Light : utilise souvent
lightdm.
- GNOME (Debian défaut) : utilise
- Ajouter le service dans freeIPA :
Dans notre cas nous utilisonsgdm. On va donc créer le service, soit via l'interface web, soit en CLI :
ipa hbacsvc-add gdm --desc="Gnome Display Manager"
Si le service gdm existe déjà, la commande retournera une erreur- Associer le service à une règle HBAC
# Créer la règle
ipa hbacrule-add rule_gdm --desc="Autoriser connexion graphique GDM"
# Ajouter le service
ipa hbacrule-add-service rule_gdm --hbacsvcs=gdm
# Ajouter les utilisateurs ou groupes concernés
ipa hbacrule-add-user rule_gdm --users=nico
# Ajouter les hôtes (ou --hostcategory=all pour tous les clients)
ipa hbacrule-add-host rule_gdm --hosts=debian.famico.test
# Activer la règle
ipa hbacrule-enable rule_gdm
En version graphique :

Vérification
Vérifiez que la règle est bien active et contient le service :
ipa hbacrule-show rule_gdm
Assurez-vous que gdm apparaît dans la liste des services HBAC.Connexion sur le poste de travail


une fois que l'on est sur le bureau on peut ouvrir un terminal pour vérifier que nous sommes bien connecté a partir du domaine.
on peut demander le nom d'hôte de la machine :
hostname -f
puis de nous donner des infos sur un utilisateur du domaine.
id nico

De l'intérêt d'une fedora server
l'intérêt de passer par un serveur fedora c'est aussi que, de base, vous avez un service web qui s'appelle cockpit qui permet d'administrer le serveur a distance. Un peu plus agréable, non ?

