installer_un_ldap_avec_mds_et_l_interface_mmc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
installer_un_ldap_avec_mds_et_l_interface_mmc [2013/08/18 14:59]
admin créée
installer_un_ldap_avec_mds_et_l_interface_mmc [2013/08/19 13:08] (Version actuelle)
admin Erreur de version de Debian (Squeeze au lieu de Wheezy)
Ligne 1: Ligne 1:
 {{tag>debian ldap slapd mds mmc}} {{tag>debian ldap slapd mds mmc}}
-====== Installer un LDAP sur Linux Debian avec MDS et l'interface MMC ======+====== Installer un LDAP avec MDS et l'interface MMC ======
  
-MDS est l'acronyme pour Mandrake Directory Server. Malgré que ce soit prévu à la base pour une Mandrake, tous les paquets sont disponibles dans un repository pour Debian.+MDS est l'acronyme pour Mandrake Directory Server. Malgré que ce soit prévu à la base pour une Mandrake, tous les paquets sont disponibles dans un repository pour Debian.\\
 L'avantage de ce MDS c'est qu'il est basé sur slapd et fourni avec une interface Web MMC pour gérer facilement les utilisateurs et les groupes. L'avantage de ce MDS c'est qu'il est basé sur slapd et fourni avec une interface Web MMC pour gérer facilement les utilisateurs et les groupes.
  
Ligne 12: Ligne 12:
 ==== Configuration de SLAPD ==== ==== Configuration de SLAPD ====
  
-L'installation ne demande que le mot de passe root de l'Active Directory. Il est important pour MMC de configurer un peu plus de chose. Pour cela, relancer la configuraiton complète avec la commande suivante :+L'installation ne demande que le mot de passe root de l'Active Directory. Il est important pour MMC de configurer un peu plus de chose. Pour cela, relancez la configuraiton complète avec la commande suivante :
 <code bash>dpkg-reconfigure slapd</code> <code bash>dpkg-reconfigure slapd</code>
  
Ligne 35: Ligne 35:
  
 Le site de MDS donne directement les URLs pour les repository Debian à cette adresse : http://projects.mandriva.org/projects/mmc/wiki/MDS_Downloads#Debian\\ Le site de MDS donne directement les URLs pour les repository Debian à cette adresse : http://projects.mandriva.org/projects/mmc/wiki/MDS_Downloads#Debian\\
-Nous allons donc prendre l'url pour Squeeze :+Nous allons donc prendre l'url pour Wheezy :
 <code bash>cat <<EOF >> /etc/apt/sources.list <code bash>cat <<EOF >> /etc/apt/sources.list
-# MDS/MMC For Squeeze +# MDS/MMC For Wheezy 
-deb http://mds.mandriva.org/pub/mds/debian squeeze main+deb http://mds.mandriva.org/pub/mds/debian wheezy main
 EOF</code> EOF</code>
  
 ==== Installation de MMC ==== ==== Installation de MMC ====
  
-On update les sources APT :+Lancez l'update les sources APT :
 <code bash>apt-get update</code> <code bash>apt-get update</code>
  
-Puis on installe les paquets mmc :+Puis installez les paquets mmc :
 <code bash>apt-get install mmc-agent mmc-web-base python-mmc-base</code> <code bash>apt-get install mmc-agent mmc-web-base python-mmc-base</code>
  
Ligne 53: Ligne 53:
 ==== Inclure le schéma MMC dans SLAPD ==== ==== Inclure le schéma MMC dans SLAPD ====
  
-MDS apporte un schéma pour SLAPD afin de créer le fameux Active Directory en rapport avec l'interface MMC. C'est pourquoi il faut déclarer le schéma de MMC dans SLAPD. +MDS apporte un schéma pour SLAPD afin de créer le fameux Active Directory en rapport avec l'interface MMC. C'est pourquoi il faut déclarer le schéma de MMC dans SLAPD.\\ 
-Depuis Debian Squeeze, la nouvelle version d'OpenLDAP utilise sa propre base pour stocker la configuration. Il vous suffit donc de lancer la commande suivante pour inclure le nouveau schéma :+Depuis Debian Wheezy, la nouvelle version d'OpenLDAP utilise sa propre base pour stocker la configuration. Il vous suffit donc de lancer la commande suivante pour inclure le nouveau schéma :
 <code bash># mmc-add-schema /usr/share/doc/mmc/contrib/base/mmc.schema /etc/ldap/schema/ <code bash># mmc-add-schema /usr/share/doc/mmc/contrib/base/mmc.schema /etc/ldap/schema/
 Adding schema for inclusion: mmc... ok</code> Adding schema for inclusion: mmc... ok</code>
Ligne 75: Ligne 75:
  
 Puis, le renseigner dans le paramètre password du fichier /etc/mmc/plugins/base.ini en préfixant avec "{base64}" : Puis, le renseigner dans le paramètre password du fichier /etc/mmc/plugins/base.ini en préfixant avec "{base64}" :
-<code>password =  {base64}Kio8Vm90cmVNb3REZVBhc3NlPioq</code>+<code>password = {base64}Kio8Vm90cmVNb3REZVBhc3NlPioq</code>
  
 <note>Si votre idée est de simplement tester LDAP, vous avez simplement les paramètres baseDN et password à renseigner dans ce fichier.</note> <note>Si votre idée est de simplement tester LDAP, vous avez simplement les paramètres baseDN et password à renseigner dans ce fichier.</note>
Ligne 113: Ligne 113:
 \\ \\
 La première chose à faire c'est de créer le groupe utilisateur par défaut. Si vous ne l'avez pas changé, il s'agit de "Domain Users". Cliquez sur l'onglet "Groups" puis sur "Add".\\ La première chose à faire c'est de créer le groupe utilisateur par défaut. Si vous ne l'avez pas changé, il s'agit de "Domain Users". Cliquez sur l'onglet "Groups" puis sur "Add".\\
-Renseignez "Domain Users" dans le champ "Group name" puis "Default User Group" pour le champ "Description". Enfin validez en cliquant sur "Create".+Renseignez "Domain Users" dans le champ "Group name" puis "Default User Group" pour le champ "Description". Enfin validez en cliquant sur "Create" :\\
 {{:installer_un_ldap_avec_mds_et_l_interface_mmc:02-createdefaultgroup.jpg|}}\\ {{:installer_un_ldap_avec_mds_et_l_interface_mmc:02-createdefaultgroup.jpg|}}\\
 \\ \\
 Vous pouvez maintenant créer des utilisateurs et configurer vos services pour utiliser l'authentification LDAP.\\ Vous pouvez maintenant créer des utilisateurs et configurer vos services pour utiliser l'authentification LDAP.\\
  
-==== Exemple d'authentification HTTP via LDAP ====+===== Exemple d'authentification HTTP via LDAP =====
  
-A venir...+Avec l'installation d'Apache2, vous devriez avoir accès à la page HTML par défaut, le fameux "It Works!".\\ 
 +Nous allons sécuriser cette simple page avec l'authentification HTTP en utilisant LDAP.\\ 
 + 
 +Tout d'abord, activons le module LDAP d'Apache : 
 +<code bash>a2enmod ldap 
 +a2enmod authnz_ldap</code> 
 + 
 +Maintenant, il faut éditer la configuration de la page par défaut pour lui ajouter la configuration d'authentification. Par défaut, voici la déclaration Directory que vous devez avoir : 
 +<code>        <Directory /var/www/> 
 +                Options Indexes FollowSymLinks MultiViews 
 +                AllowOverride None 
 +                Order allow,deny 
 +                allow from all 
 +        </Directory> 
 +</code> 
 + 
 +Modifiez cette section de la manière suivante : 
 +<code>        <Directory /var/www/> 
 +                Options Indexes FollowSymLinks MultiViews 
 +                AllowOverride None 
 +  
 +                # LDAP authentication 
 +                AuthBasicProvider ldap 
 +                AuthType Basic 
 +                AuthName "Restricted Area" 
 +                AuthzLDAPAuthoritative off 
 +                AuthLDAPURL ldap://localhost/ou=Users,dc=home,dc=int 
 +                AuthLDAPGroupAttribute memberUid 
 +                AuthLDAPGroupAttributeIsDN off 
 +                Require ldap-group cn=http,ou=Groups,dc=home,dc=int 
 +  
 +                Order allow,deny 
 +                allow from all 
 +        </Directory> 
 +</code> 
 + 
 +Quelques explications : 
 +^ Attribut ^ Commentaire ^ 
 +| AuthBasicProvider | On spécifie ldap pour utiliser le module mod_authz_ldap | 
 +| AuthType | On définit le type à Basic pour utiliser l'autentification de base via le module mod_auth_basic | 
 +| AuthName | C'est ce qui apparaîtra dans la boîte de dialogue d'identification | 
 +| AuthzLDAPAuthoritative | Permet de passer le relai à d'autre module d'autentification si celui-ci échoue | 
 +| AuthLDAPURL | Il s'agit de l'URL pour contacter le serveur LDAP en précisant l'OU (Oranization Unit) qui contient les Users de l'AD| 
 +| AuthLDAPGroupAttribute | Le nom de l'attribut d'un group qui possède la liste des membres de ce groupe | 
 +| AuthLDAPGroupAttributeIsDN | On indique de l'attribut AuthLDAPGroupAttribute n'est pas sous la forme d'un DN | 
 +| Require ldap-group | Filtre qui permet d'autoriser un utilisateur que si ce dernier fait parti du groupe http | 
 + 
 +Allez ensuite dans l'interface MMC et créez un groupe http, ainsi qu'un user "foobar" sans lui attribuer de groupe.\\ 
 +\\ 
 +Redémarrez Apache pour prendre en compte l'ajout du module LDAP ainsi que la configuration d'autentification :\\ 
 +<code bash>/etc/init.d/apache2 restart</code> 
 + 
 +Maintenant, quand j'accède à la page Web de mon serveur, un utilisateur et mot de passe est demandé :\\ 
 +{{:installer_un_ldap_avec_mds_et_l_interface_mmc:03-httploginscreen.jpg|}}\\ 
 +\\ 
 +Entrez le user "foobar" que vous avez créé avec son mot de passe. Cela ne devrait pas fonctionner : normal, le user "foobar" n'est pas dans le groupe "http".\\ 
 +Retournez maintenant dans l'interface MMC et modifier "foobar" pour lui ajouter le groupe "http".\\ 
 +Patientez quelques secondes, puis retournez sur la page web de votre serveur et retentez de vous connecter. Cette fois ça fonctionne.\\ 
 + 
 +===== LDAPSearch ===== 
 + 
 +Il est possible de faire des recherches dans le répertoire LDAP directement en ligne de commande pour effectuer des tests. 
 +Par exemple, si on cherche le user "foobar"
 +<code bash>root@vm03:~# ldapsearch -xLLL -h localhost -b "dc=home,dc=int" "uid=foobar" 
 +dn: uid=foobar,ou=Users,dc=home,dc=int 
 +shadowFlag: 134538308 
 +shadowMin: -1 
 +displayName: foobar foobar 
 +uid: foobar 
 +cn: foobar foobar 
 +objectClass: inetOrgPerson 
 +objectClass: posixAccount 
 +objectClass: shadowAccount 
 +objectClass: top 
 +objectClass: person 
 +loginShell: /bin/bash 
 +homeDirectory: /home/foobar 
 +uidNumber: 10002 
 +shadowMax: 99999 
 +gidNumber: 10001 
 +gecos: foobar foobar 
 +sn: foobar 
 +shadowInactive: -1 
 +givenName: foobar 
 +shadowExpire: -1 
 +shadowWarning:
 +</code> 
 + 
 +Si on souhaite vérifier que le user "foobar" est bien dans le groupe "http", on peut demander à chercher un objet de type "posixGroup", qui se nomme "http", et qui possède un attribut memberUid égale à "foobar", ce qui donne : 
 +<code bash>root@vm03:~# ldapsearch -xLLL -h localhost -b "dc=home,dc=int" "(&(cn=http)(memberUid=foobar)(objectClass=posixGroup))" 
 +dn: cn=http,ou=Groups,dc=home,dc=int 
 +objectClass: posixGroup 
 +objectClass: top 
 +gidNumber: 10002 
 +cn: http 
 +memberUid: foobar 
 +</code> 
 + 
 +On obtient bien un résultat, on peut donc déduire qu'il exsite bien un user "wikinux" qui appartient au groupe "http"
 + 
 +===== Sauvegarde et restauration ===== 
 + 
 +Les commandes slapcat et slapadd vont nous permettre de faire des sauvegardes et restaurations de notre AD.\\ 
 +\\ 
 +La commande slapcat est bien pratique car elle permet simplement d'afficher le contenu de la base LDAP. Par défaut, l'affichage se fait sur la sortie standard. Dans le cas d'un backup, on pourra utiliser l'argument "-l" pour enregistrer dans un fichier.\\ 
 +La commande slapadd permet d'injecter un fichier LDIF, autrement dit un format comme slapcat, pour créer facilement des objets. Vous pouvez d'ailleurs vous en servir pour créer facilement et rapidement à partir d'un fichier des comptes utilisateurs.\\ 
 +\\ 
 +Effectuez une sauvegarde de la base LDAP 
 +<code bash>root@vm03:~# slapcat -l ldap.bak</code> 
 + 
 +Il est possible de lire le fichier ldap.bak, vous pouvez même l'éditer pour y modifier des informations. Par exemple, si vous recherchez la ligne "dn: cn=http,ou=Groups,dc=home,dc=int" dans ce fichier, vous allez trouver les informations du groupe "http". Dans ces informations, vous devriez voir la ligne "memberUid: foobar" indiquant que le user foobar appartient au groupe "http". Supprimez cette ligne du fichier puis enregistrer.\\ 
 +\\ 
 +Pour pouvoir restaurer, il ne faut pas que le daemon slapd soit lancé. Il faut donc arrêter le service LDAP, puis supprimer le contenu du répertoire /var/lib/ldap où est stocké la base LDAP. 
 +<code bash>root@vm03:~# /etc/init.d/slapd stop 
 +[ ok ] Stopping OpenLDAP: slapd. 
 + 
 +root@vm03:~# rm /var/lib/ldap/
 +root@vm03:~# slapadd -l ldap.bak 
 +_#################### 100.00% eta   none elapsed            none fast! 
 +Closing DB... 
 + 
 +root@vm03:~# chown openldap:openldap /var/lib/ldap/
 +root@vm03:~# /etc/init.d/slapd start 
 +[ ok ] Starting OpenLDAP: slapd. 
 +</code> 
 + 
 +La base est maintenant restaurée. Vous pouvez vous assurer que nous avons bien utilisé le fichier en vérifiant que le user foobar n'appartient plus au groupe "http": 
 +<code bash>root@vm03:~# ldapsearch -xLLL -h localhost -b "dc=home,dc=int" "(&(cn=http)(memberUid=foobar)(objectClass=posixGroup))"</code> 
 + 
 +Pas de réponse, l'objet "cn=http,ou=Groups,dc=home,dc=int" n'a plus d'attribut "memberUid" à la valeur "foobar", le user n'appartient donc plus au groupe.
  
 ===== Versions utilisées ===== ===== Versions utilisées =====
  
-Guide réalisé sur une Debian Squeeze 7.1 avec les versions suivantes des paquets :+Guide réalisé sur une Debian Wheezy 7.1 avec les versions suivantes des paquets :
   * slapd 2.4.31-1+nmu2   * slapd 2.4.31-1+nmu2
   * mmc 3.1.0-1   * mmc 3.1.0-1
  • installer_un_ldap_avec_mds_et_l_interface_mmc.1376830792.txt.gz
  • Dernière modification: 2013/08/18 14:59
  • de admin