Ldap
Ce tuto va traiter :
- La mise en place d'un serveur LDAP assisté par phpLDAPadmin.
- La mise en place des clients
Serveur
Installer OpenLDAP
Changer le hostname et le hosts pour definire le domaine:
ldap2.jmador.yo
Installer slapd et ldap-utils
$ apt install slapd ldap-utils
Pendant l’installation, slapd va vous demander le mot de passe admin pour LDAP. Entrez celui que vous souhaitez (éviter les caractères spéciaux).
Éditez le fichier /etc/ldap/ldap.conf
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. BASE dc=jmador,dc=yo URI ldap://127.0.0.1 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never # TLS certificates (needed for GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt
Lancez l’assistant de configuration
$ dpkg-reconfigure slapd
Pendant l'installation il vous sera posé les questions suivantes :
- Voulez-vous omettre la configuration d'OpenLDAP : `Non`
- Nom de domaine : `jmador.yo`
- Nom d'entité : `ldap2`
- Mot de passe de l'administrateur : `[mot de passe admin]`
- Mot de passe de l'administrateur : `[mot de passe admin]`
- Module de base de données à utiliser : `MDB`
- Faut-il supprimer la base de données lors de la purge du paquet : `Oui`
- Faut-il déplacer l'ancienne base de données : `Oui`
- Faut-il autoriser le protocole LDAPv2 : `Non`
Pour vérifier que votre serveur LDAP fonctionne, il suffit de lancer la commande suivante :
$ ldapsearch -x
Vous devriez obtenir ce résultat :
[...] result: 0 Success [...]
phpLDAPadmin
Installation et configuration
Installation d’une interface graphique pour l’administration de LDAP
$ apt install phpldapadmin
Créez un lien symbolique pour le dossier de phpldapadmin
$ ln -s /usr/share/phpldapadmin/ /var/www/phpldapadmin
Maintenant éditez le fichier /etc/phpldapadmin/config.php et remplacer le nom de domaine par le votre. Editez également les lignes suivantes
[...] // Uncomment and set your timezone // $config->custom->appearance['timezone'] = 'Europe/Paris'; [...] // Set your LDAP server name // $servers->setValue('server','name','Mon serveur LDAP'); [...] // Set your LDAP server IP address // $servers->setValue('server','host','192.168.10.133'); [...] // Set Server domain name // $servers->setValue('server','base',array('dc=jmador,dc=yo')); [...] // Set Server domain name // $servers->setValue('login','bind_id','cn=admin,dc=jmador,dc=yo'); [...]
Relancez le service Apache2
$ service apache2 restart
L'interface phpLDAPadmin
Dans un navigateur web, rendez-vous à l’adresse suivante : https://ldap2.jmador.yo/phpldapadmin/
Cliquer sur connexion pour vous identifier:
Taper votre mot de passe administateur:
Créer une Unité Organisationnelle
- Cliquer sur "Créer une nouvelle entrée ici:
- Cliquer sur "Générique : Unité Organisationnelle" :
- Nommer l'Unité Organisationnelle :
- Puis cliquer sur "Créer un objet" puis "Valider"
Créer un groupe Posix
- Cliquer sur votre Unité Organisationnelle et cliquer sur "Créer une sous-entrée"
- Choisir "Générique : Groupe Posix"
- Nommer le groupe :
- Puis cliquer sur "Créer un objet" puis "Valider"
Créer un utilisateur
- Cliquer sur votre groupe Posix et cliquer sur "Créer une sous-entrée"
- Choisir "Générique : Compte Utilisateur"
- Compléter les champs comme sur la capture (Ne pas compléter les champs "Nom Commun" et "Répertoire personnel" car ils vont s'auto compléter avec les champs "Prénom" et "Nom de famille") :
- Puis cliquer sur "Créer un objet" puis "Valider"
Client
Installation
Installez le paquet libnss-ldap:
$ apt install libnss-ldap
Pendant l'installation il vous sera posé les questions suivantes :
- Identifiant uniforme de ressource (" URI ") du serveur LDAP : `ldap://ldap2.jmador.yo`
WARNING: Bien remplacer `ldapi:///` par `ldap://`
- Nom distinctif (DN) de la base de recherche : `dc=jmador,dc=yo`
- Version de LDAP à utiliser : `3`
- Compte LDAP pour le superutilisateur (" root ") : `cn=admin,dc=jmador,dc=yo`
- Mot de passe du compte du superutilisateur LDAP : `[mot de passe admin]`
- Taper entrée
- Donner les privilèges de superutilisateur local au compte administrateur LDAP : `Non`
- La base de données LDAP demande-t-elle une identification : `Non`
Configurations
Modifier le fichier /etc/nsswitch.conf
passwd: compat ldap group: compat ldap shadow: compat ldap gshadow: files hosts: files dns ldap networks: files ldap protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
Vérifiez que NSS voit bien ce que fournit LDAP à l'aide getent:
$ getent passwd
Ceci devrait vous montrer les comptes de LDAP qui ne sont pas dans le fichier /etc/passwd.
Puis redemmarer le service:
$ service nscd restart
Pour permet la création du dossier personnel des utilisateurs LDAP, ajouter dans le fichier /etc/pam.d/common-session la ligne suivante :
[...]
session required pam_mkhomedir.so
Configurations Avancées
Une tâche commune est de restreindre la connexion à un certain groupe LDAP. Avec NIS, vous auriez fait cela en ajustant précautionneusement le fichier /etc/passwd. Avec LDAP, la façon la plus simple de faire est d'utiliser le module pam_access qui est fourni avec libpam-modules.
Ajoutez la ligne suivante au fichier /etc/pam.d/common-auth :
[...]
account required pam_access.so
Ceci va activer le fichier /etc/security/access.conf, que vous pouvez ajuster comme suit :
[...]
-:ALL EXCEPT root (groupe-famille):ALL
Explication:
- -:ALL : Interdire toutes les connexions sur l'ordi
- EXCEPT root (groupe-famille) : Sauf l'utilisateur root et le groupe groupe-famille
- :ALL : Sur tous les tty (je suis pas sûr)