Université Grenoble Alpes U.F.R. Sciences de l Homme et de la Société Master IC²A TP LDAP TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 1/9
Câblage et configuration du réseau 1) Lancez Marionnet et créez le réseau tel que représenté sur le schéma ci-dessous. Vous utiliserez trois hôtes ns, m1 et ldap1 configurés respectivement avec les adresses IP 192.168.1.1, 192.168.1.10 et 192.168.1.100. La machine ns sera le serveur de noms du domaine imss.org, la machine ldap1 le serveur LDAP. Utilisez le système «debian-wheezy» pour les 3 machines. 2) Configurez les adresses IP (via l onglet Marionnet «Interfaces») et démarrez les trois hôtes. 3) Editez le fichier /etc/resolv.conf de chacun des hôtes et remplacez son contenu par : domain imss.org search imss.org nameserver 192.168.1.1 nameserver 192.168.1.3 4) Testez le bon fonctionnement de la résolution de noms externe avec la commande nslookup www.google.fr 5) Sur ldap1 afin d accéder aux fichiers de logs, installez le paquetage rsyslog avec les commandes : apt-get update et apt-get install rsyslog TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 2/9
Configuration du service DNS 1) Sur ns, éditez le fichier de configuration du service DNS (bind) /etc/bind/named.conf.local et ajoutez la gestion des deux zones : imss.org pour la résolution directe 1.168.192.in-addr.arpa pour résolution inverse zone "imss.org" { type master file "/etc/bind/db.imss.org" } zone "1.168.192.in-addr.arpa" { type master file "/etc/bind/db.imss.org.rev" } 2) Créez le fichier /etc/bind/db.imss.org gérant la zone directe. Utilisez comme modèle le fichier /etc/bind/db.empty (cp /etc/bind/db.empty /etc/bind/db.imss.org) Ajoutez les enregistrements de type A. BIND reverse data file for empty rfc1918 zone DO NOT EDIT THIS FILE - it is used for multiple zones. Instead, copy it, edit named.conf, and use that copy. $TTL 86400 @ IN SOA ns. root.ns. ( 2017030101 Serial 604800 Refresh 86400 Retry 2419200 Expire 86400 ) Negative Cache TTL @ IN NS ns.imss.org. ns IN A 192.168.1.1 m1 IN A 192.168.1.10 ldap1 IN A 192.168.1.100 Le numéro de série (champ Serial) est de la forme AAAAMMJJNN. A chaque modification, le numéro de série doit être mis à jour (numéro de révision NN incrémenté dans la journée). TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 3/9
3) Créez le fichier /etc/bind/db.imss.org.rev gérant la zone reverse. Utilisez également comme modèle le fichier /etc/bind/db.empty BIND reverse data file for empty rfc1918 zone DO NOT EDIT THIS FILE - it is used for multiple zones. Instead, copy it, edit named.conf, and use that copy. $TTL 86400 @ IN SOA ns. root.ns. ( 2017030101 Serial 604800 Refresh 86400 Retry 2419200 Expire 86400 ) Negative Cache TTL @ IN NS ns.imss.org. 1 IN PTR ns.imss.org. 10 IN PTR m1.imss.org. 100 IN PTR ldap1.imss.org. 4) Lancez le service DNS avec la commande /etc/init.d/bind9 start 5) Vérifiez le fonctionnement de la résolution de nom directe et inverse avec les commandes nslookup m1 et nslookup 192.168.1.10 nslookup ldap1 et ping ldap1 6) Editez le fichier /etc/hosts de ldap1, supprimez toute ligne faisant référence à 127.0.0.1 ldap1 et ajoutez la ligne 192.168.1.100 ldap1.imss.org ldap1 TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 4/9
Configuration de base du service LDAP 1) Sur ldap1, tapez la commande dpkg-reconfigure slapd pour relancer la configuration initiale de l annuaire LDAP. Choisissez les options suivantes : Omit OpenLDAP server configuration : No DNS domain name : imss.org Organisation name : bshm Administrator password : secret Database backend to use : HDB Do you want the database to be removed when slapd is purged : No Move old database : Yes Allow LDAPv2 protocol : Yes 2) Affichez le contenu de l annuaire avec la commande slapcat. Recherchez et notez le DN de l administrateur de l annuaire. 3) Afin de pouvoir enregistrer des utilisateurs, il faut créer les objets (de type organizationalunit) «groups» et «users» dans l annuaire. Créez un fichier nommé init.ldif contenant les informations suivantes. Attention à ne pas laisser d espace à la fin de chaque ligne. dn: ou=groups,dc=imss,dc=org objectclass: organizationalunit ou: groups description: Groupes dn: ou=users,dc=imss,dc=org objectclass: organizationalunit ou: users description: Utilisateurs Ajoutez les informations du fichier init.ldif avec la commande ldapadd (man ldapadd pour voir les options utilisées) : ldapadd x W D "cn=admin,dc=imss,dc=org" f init.ldif Vérifiez les informations ajoutées avec la commande slapcat TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 5/9
Peuplement de l annuaire LDAP 1) Créez le fichier group.ldif dn: cn=etudiants,ou=groups,dc=imss,dc=org gidnumber: 999000 objectclass: posixgroup cn: etudiants Ajoutez à l annuaire les informations du fichier group.ldif avec la commande ldapadd 2) Générez une chaîne chiffrée d un mot de passe avec la commande slappasswd slappasswd h {MD5} s bond007 awk '{print "userpassword: "$0}' > user.ldif 3) Modifier le fichier user.ldif en ajoutant les objets et les attributs supplémentaires : dn: uid=moraneb,ou=users,dc=imss,dc=org givenname: Bob objectclass: top objectclass: inetorgperson objectclass: person objectclass: organizationalperson objectclass: posixaccount userpassword: {MD5}y9t+Kx7VZs63lq8t8HIFow== uid: moraneb mail: bob.morane@imss.org uidnumber: 999001 cn: Bob Morane loginshell: /bin/bash gidnumber: 999000 homedirectory: /home/moraneb sn: Morane Ajoutez les informations du fichier user.ldif avec la commande ldapadd 4) Vérifiez le mot de passe de l'utilisateur que vous venez d'ajouter en faisant une connexion authentifiée avec la commande ldapwhoami ldapwhoami W D "uid=moraneb,ou=users,dc=imss,dc=org" La commande retourne le DN en cas de succès ou un message d'erreur dans le cas contraire. 5) Modifiez les attributs avec la commande ldapmodify. Utilisez les mêmes paramètres x, -W D que la commande ldapadd vous pouvez soit utiliser un fichier temporaire LDIF avec l'option f, soit directement taper les descriptions LDIF ligne par ligne dans la console puis CTRL-D pour terminer. Attention : la modification d'une entrée nécessite toutefois une syntaxe plus complexe au niveau des descriptions LDIF. En voici quelques exemples dans les paragraphes ci-après. TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 6/9
Ajout d'un attribut : dn: le dn de l entrée à modifier changetype: modify add: nom de l attribut à ajouter nom de l attribut: valeur Suppression d un attribut : dn: le dn de l'entrée à modifier changetype: modify delete: nom de l'attribut à supprimer [nom de l'attribut: valeur à supprimer s'il existe plusieurs valeurs] Modification d un attribut dn: le dn de l'entrée à modifier changetype: modify replace: nom de l'attribut dont on veut modifier la valeur nom de l'attribut: nouvelle valeur a) Changez le givenname de «Bob» à «Bobby» b) Ajoutez un attribut mail avec comme valeur «Bobby.Morane@imss.org» 6) Ajoutez deux autres utilisateurs. Pensez à incrémenter la valeur de l'attribut uidnumber 7) Vérifiez le contenu de l'annuaire avec la commande ldapsearch : ldapsearch x W D "cn=admin,dc=imss,dc=org" b "dc=imss,dc=org" TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 7/9
Configuration du poste client Cette opération consiste à configurer le client m1 comme un client LDAP afin qu'il puisse utiliser les services de l'annuaire pour la connexion des utilisateurs. 1) Sur m1, éditez le fichier /etc/ldap/ldap.conf et configurez les lignes BASE et URI BASE dc=imss,dc=org URI ldap://ldap1.imss.org 2) Exécutez ensuite les commandes apt-get update apt-get install libnss-ldapd libpam-ldapd Dans l'assistant, indiquez : LDAP server URI : ldap://ldap1.imss.org LDAP search base : dc=imss,dc=org Name service to configure : group, password, shadow L'assistant va notamment configurer le fichier /etc/nsswitch.conf qui permet de définir les méthodes à utiliser et l ordre dans lequel les utiliser pour définir les utilisateurs, les groupes 3) Vérifiez avec la commande getent passwd que vous récupérez bien à présent les informations de vos utilisateurs. 4) Créez le répertoire de login de l'utilisateur moraneb sur m1 mkdir /home/moraneb chown moraneb:etudiants /home/moraneb 5) Fermez la session root et connectez-vous en tant que moraneb 6) Changez le mot de passe avec la commande passwd. Vérifiez que le changement a été repercuté dans l'annuaire. TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 8/9
Configuration du client Web Cette opération consiste à configurer l authentification pour l accès aux pages d un serveur Web, sur un annuaire LDAP. Il existe un module Apache qui permet de réaliser ce couplage, mod_authnz_ldap 1) Ajoutez à votre réseau une nouvelle machine nommée www, d'adresse IP 192.168.1.110. Mettez à jour le DNS et vérifiez le bon fonctionnement de la résolution de noms. 2) Une fois www démarrée, éditez le fichier /etc/hosts, et supprimez toute ligne faisant référence à 127.0.0.1 www et ajoutez la ligne 192.168.1.110 www.imss.org www 3) Activer le module avec la commande a2enmod authnz_ldap 4) Modifiez la configuration du site par défaut dans /etc/apache2/sitesavailable/default en ajoutant les directives suivantes : <Directory /var/www> [...] AuthBasicProvider ldap AuthType Basic AuthName "Acces restreint" AuthLDAPURL ldap://ldap1.imss.org/ou=users,dc=imss,dc=org?uid?one AuthzLDAPAuthoritative on Require valid-user </Directory> 5) Rechargez le service Apache : /etc/init.d/apache2 restart 6) Sur m1, lancez le navigateur epiphany et faites une connexion sur http://www.imss.org. Authentifiez-vous avec les identifiant/mot de passe d un des utilisateurs que vous avez créé. 7) Ajoutez à votre annuaire LDAP, un nouveau groupe nommé «enseignants», avec comme gidnumber 999001. 8) Changez la valeur de l attribut gidnumber d un de vos utilisateurs, et remplacez-la par la valeur 999001. 9) Consultez la documentation disponible sur Internet, pour savoir quelles directives utiliser dans la configuration de votre serveur Apache pour n autoriser que les utilisateurs appartenant au groupe des enseignants. Faites l essai avec un utilisateur du groupe «etudiants» et un utilisateur du groupe «enseignants». TP LDAP Master IC 2 A 2016/2017 Christian Bulfone / Jean-Michel Adam 9/9