Tu en as marre de jongler entre des comptes utilisateurs sur chaque machine Linux de ton infra ? LDAP + SSSD, c’est la solution pour centraliser l’authentification, que tu sois team LDAP Linux classique ou Active Directory.
Alors accroche ta ceinture, on va voir comment transformer ton réseau en un paradis de l’authentification centralisée, où chaque utilisateur peut se connecter avec son mot de passe LDAP, sans que tu aies besoin de créer un compte local à chaque fois.
Pourquoi LDAP et SSSD ?
LDAP (Lightweight Directory Access Protocol)
C’est l’annuaire qui stocke les comptes utilisateurs, groupes, et tout ce qui va avec. Deux options :
• LDAP “classique” (OpenLDAP ou 389-DS) → Pour les puristes Linux.
• Active Directory (AD) → Pour ceux qui veulent centraliser leur infra et s’aligner avec les standards Windows.
SSSD (System Security Services Daemon)
Le client magique qui permet à ta machine Linux de parler avec LDAP/AD, de mettre en cache les identités et d’authentifier les utilisateurs sans perdre l’accès en cas de panne du serveur LDAP.
✅ Gère LDAP et AD sans prise de tête
✅ Permet la mise en cache des identifiants (SSO possible)
✅ Autorise l’auto-création du home directory
Déploiement de SSSD avec LDAP Linux Classique ou Active Directory
1. Installer SSSD et les Outils LDAP
Sur Debian / Ubuntu, installe les paquets nécessaires :
sudo apt update && sudo apt install -y sssd libnss-sss libpam-sss ldap-utils adcli realmd krb5-user samba-common-bin packagekit
Petite dose d’humour geek : On ne peut pas encore installer l’intelligence collective de Stack Overflow par apt install, mais promis, ça viendra…
2. Configurer SSSD pour LDAP
🟢 Cas 1 : LDAP Linux Classique (OpenLDAP, 389-DS, etc.)
Crée le fichier /etc/sssd/sssd.conf :
sudo nano /etc/sssd/sssd.conf
Ajoute cette configuration :
[sssd]
services = nss, pam
config_file_version = 2
domains = home.stranix.net
[domain/home.stranix.net]
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
cache_credentials = true
ldap_uri = ldap://ldap.home.stranix.net
ldap_search_base = dc=home,dc=stranix,dc=net
ldap_default_bind_dn = cn=admin,dc=home,dc=stranix,dc=net
ldap_default_authtok_type = password
ldap_default_authtok = supermotdepasseultrasecurisé123
ldap_user_search_base = ou=users,dc=home,dc=stranix,dc=net
ldap_group_search_base = ou=groups,dc=home,dc=stranix,dc=net
enumerate = true
🔵 Cas 2 : Active Directory (AD)
Si tu es sous Active Directory, c’est un peu plus “automagique”. Vérifie que ton serveur Linux peut joindre l’AD :
realm discover domain.local
Si c’est bon, rejoins le domaine :
sudo realm join --user=Administrateur domain.local
Génère une configuration SSSD spécifique à AD :
[sssd]
services = nss, pam
config_file_version = 2
domains = domain.local
[domain/domain.local]
id_provider = ad
access_provider = ad
cache_credentials = true
enumerate = false
ad_server = dc1.domain.local,dc2.domain.local
ad_domain = domain.local
ldap_id_mapping = true
3. Protéger le Fichier de Config (Parce que Sécurité)
sudo chmod 600 /etc/sssd/sssd.conf
sudo chown root:root /etc/sssd/sssd.conf
4. Activer et Lancer SSSD
sudo systemctl enable --now sssd
Vérifie que SSSD tourne bien :
systemctl status sssd
Si problème, on fouille les logs (et on sort le café) :
journalctl -xe | grep sssd
5. Vérifier l’Authentification LDAP/AD
Liste les utilisateurs LDAP/AD :
getent passwd utilisateur_ldap
Si tu vois une ligne du genre :
utilisateur_ldap:x:1001:1001:Nom Utilisateur:/home/utilisateur_ldap:/bin/bash
C’est que ton LDAP fonctionne ! 🚀
Testons maintenant une connexion avec :
su - utilisateur_ldap
6. Configurer PAM pour que tout soit Smooth
Ajoute sss dans /etc/nsswitch.conf :
passwd: files systemd sss
group: files systemd sss
shadow: files sss
Et dis à PAM de créer automatiquement le home directory des utilisateurs LDAP/AD lors de leur première connexion :
echo "session required pam_mkhomedir.so skel=/etc/skel umask=0077" | sudo tee -a /etc/pam.d/common-session
7. Activer le SUDO pour les Groupes LDAP/AD
Si tu veux que tes utilisateurs LDAP/AD puissent utiliser sudo, modifie /etc/sudoers :
sudo visudo
Ajoute cette ligne (pour LDAP classique) :
%admins ALL=(ALL) ALL
Ou pour Active Directory (le groupe Domain Admins) :
%Domain\ Admins ALL=(ALL) ALL
8. Bonus : Gérer les Routes pour un Accès Restreint
Si ton serveur LDAP/AD est sur un réseau spécifique, assure-toi d’ajouter une route correcte :
sudo ip route add 192.168.1.0/24 via 10.8.0.1 dev eth0
Ainsi, ton Linux saura comment joindre le serveur LDAP/AD.
Conclusion
Tu es maintenant un authentificateur ninja ! 🎩
✅ Tous tes utilisateurs sont centralisés dans LDAP/AD
✅ Un seul compte pour toutes les machines Linux
✅ Connexion et sudo possibles sans création manuelle de comptes
✅ Gestion propre avec SSSD et mise en cache
Si ça marche du premier coup, tu peux t’auto-attribuer un achievement geek 🏆.
Si ça ne marche pas, souviens-toi :
🛠️ Regarde les logs.
🛠️ Teste avec ldapsearch ou getent passwd.
🛠️ Reboote SSSD avec systemctl restart sssd.
Et si vraiment, ça ne fonctionne pas… tu peux toujours prétendre que c’était prévu et refiler ça à ton collègue. 😏
À bientôt pour de nouvelles aventures d’admin barbu !