Je vais poursuivre mes billets sur la sécurisation de la supply
chain. Dans ce billet, je vous propose
de monter un IDP pour pouvoir mettre en place le principe de moindre
privilège sur notre futur serveur Gitlab.
Démarche d’automatisation de l’installation de FreeIPA
Toujours le même principe. Je pars d’une feuille vierge avec comme objectifs :
L’installation du serveur gitlab
Génération de la configuration via un template.
Pour écrire le playbook Ansible, j’ai tout simplement transposé la procédure
d’installation disponible sur le site de documentation de FreeIPA.
Ecriture du Vagrantfile
Le vagrantfile :
Je pense que vous avez remarqué que sur le provisionnement du serveur FreeIPA,
j’ai ajouté des variables permettant de le configurer.
Ecriture du playbook pour installer FreeIPA
En cherchant dans la documentation de
FreeIPA, j’ai remarqué que
Red Hat, a comme à son habitude écrit une collection permettant d’installer et
d’exploiter FreeIPA. La seule contrainte, il faut utiliser un linux de la
famille Red Hat, ici une Rocky Linux 9.
Avant d’écrire le playbook, je vous propose de cloner le projet de cette collection :
Pour que vagrant puisse trouver les rôles de cette collection, créons un simple
fichier ansible.cfg :
Voilà le code du playbook, qui transpose ce que j’ai trouvé dans la documentation :
On peut lancer le provisionnement de la machine FreeIPA :
Au bout de quelques minutes votre serveur FreeIPA est up. Une petite
vérification :
Vérifions que nous pouvons consulter les utilisateurs présents dans le serveur.
Avant, il faut obtenir un token Kerberos avec la commande kinit :
Pas mal, nous avons un utilisateur présent, le compte admin bien sûr. Je vais
utiliser la CLI ipa pour créer les utilisateurs dans un premier temps.
Ajoutons un utilisateur :
Définissons le mot de passe :
Entrez deux fois le même mot de passe. Vérifions que nous pouvons retrouver les
utilisateurs via les commandes ldap :
Bon notre serveur ldap fonctionne comme attendu ! Pour créer les utilisateurs et
les groupes, nous allons utiliser les modules ipa.
On va pouvoir, configurer notre serveur IPA avec les modules Ansible.
Plus loin
Dans le prochain billet, nous provisionnerons le serveur Gitlab et nous
utiliserons le serveur IPA comme source d’authentification. PAr contre, je
mettrais à jour ce billet avec du code Terraform pour le déployer sur mon
homelab dans les prochains jours. Je vais aussi étudier la partie exploitation
de FreeIPA. Et oui, il faut maintenir ce genre d’outil : mise à jour, sauvegarde,
reprise sur incident, …