ateliers:serveurmail:ldap
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
ateliers:serveurmail:ldap [2018/06/28 19:57] – Ajout d'une liste de services utilisant ldap okhin | ateliers:serveurmail:ldap [2019/10/28 19:47] – Ajout du schéma de mot de passe par défaut. okhin | ||
---|---|---|---|
Ligne 58: | Ligne 58: | ||
[...] | [...] | ||
</ | </ | ||
+ | |||
+ | <WRAP center round info 80%> | ||
+ | Par la suite, les modifications à l' | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | |||
=== TLS === | === TLS === | ||
- | Nous voulons avoir une connexion chiffrée lorsque nous nous connectons depuis l' | + | Nous voulons avoir une connexion chiffrée lorsque nous nous connectons depuis l' |
- | Il est nécessaire, | + | Il est nécessaire, |
$ sudo adduser openldap tls | $ sudo adduser openldap tls | ||
Ligne 97: | Ligne 104: | ||
Pour plus d' | Pour plus d' | ||
- | Il faut ensuite modifier les options du daemon slapd pour lui dire comment se connecter sur nos interfaces réseau en allant modifier le fichier | + | Il faut ensuite modifier les options du daemon slapd pour lui dire comment se connecter sur nos interfaces réseau en allant modifier le fichier |
- | <config|h / | + | <code|h / |
[...] | [...] | ||
SLAPD_SERVICES=" | SLAPD_SERVICES=" | ||
[...] | [...] | ||
+ | </ | ||
Cela force l' | Cela force l' | ||
Ligne 115: | Ligne 123: | ||
== Test du fonctionnement de l' | == Test du fonctionnement de l' | ||
- | Une commande rapide que l'on peut utiliser est ldapsearch afin de lister l' | + | Une commande rapide que l'on peut utiliser est ldapsearch afin de lister l' |
$ ldapsearch -LLL -H ldapi:/// -b dc=anarcha, | $ ldapsearch -LLL -H ldapi:/// -b dc=anarcha, | ||
Ligne 139: | Ligne 147: | ||
== Test de la connexion TLS == | == Test de la connexion TLS == | ||
- | Depuis une machine distante, il est possible de vérifier que la cnnexion est chiffrée et valide. LDAP ćoute sur le port 636 pour le TLS. | + | Depuis une machine distante, il est possible de vérifier que la cnnexion est chiffrée et valide. LDAP éćoute sur le port 636 pour le TLS. |
< | < | ||
Ligne 201: | Ligne 209: | ||
Un Overlay est une surcouche à la base de donnée voulue, permettant d' | Un Overlay est une surcouche à la base de donnée voulue, permettant d' | ||
- | Les surcouches qui ont été configurés par ``ldapmodify`` avec les fichiers ldif supplémentaires qui sont dans ``/usrr/ | + | Les surcouches qui ont été configurés par '' |
- | La syntaxe du DN de chaque surcouche utilise une notation avec ``{0}`` précédant le nom du module, cela nous permet d' | + | La syntaxe du DN de chaque surcouche utilise une notation avec //{0}// précédant le nom du module, cela nous permet d' |
- | Chaque surcouche doit être activé en chargeant un module, et donc en modifiant l' | + | Chaque surcouche doit être activé en chargeant un module, et donc en modifiant l' |
== Surcouches activées == | == Surcouches activées == | ||
Ligne 222: | Ligne 230: | ||
Il faut cependant supprimer le schéma NIS d' | Il faut cependant supprimer le schéma NIS d' | ||
- | <WRAP center round alert 60%> | + | <WRAP center round alert 80%> |
Pensez à sauvegarder vos données AVANT de faire les modifications de schéma ci-dessous. | Pensez à sauvegarder vos données AVANT de faire les modifications de schéma ci-dessous. | ||
</ | </ | ||
Ligne 243: | Ligne 251: | ||
</ | </ | ||
- | Il faut maintenant aller modifier la configuration des schémas. Elle est disponible sous ``/ | + | Il faut maintenant aller modifier la configuration des schémas. Elle est disponible sous '' |
Ce répertoire contient des fichiers ldif ordonnés (commençant par {Z}avec Z le numéro d' | Ce répertoire contient des fichiers ldif ordonnés (commençant par {Z}avec Z le numéro d' | ||
Ligne 261: | Ligne 269: | ||
$ sudo rm / | $ sudo rm / | ||
$ sudo mv / | $ sudo mv / | ||
- | $ sudo ls -l / | + | $ sudo ls -l / |
-rw------- 1 openldap openldap 15596 juin 27 16:24 cn={0}core.ldif | -rw------- 1 openldap openldap 15596 juin 27 16:24 cn={0}core.ldif | ||
-rw------- 1 openldap openldap 11381 juin 27 16:24 cn={1}cosine.ldif | -rw------- 1 openldap openldap 11381 juin 27 16:24 cn={1}cosine.ldif | ||
Ligne 267: | Ligne 275: | ||
</ | </ | ||
- | <WRAP center round info 60%> | + | <WRAP center round info 80%> |
- | Sur notre configuration, les ACL étaient définie sur un attribut shadowLastChange fourni par le schéma | + | Nous supprimons (temporairement) un schéma, de fait certains éléments et attributs n' |
</ | </ | ||
Ligne 307: | Ligne 315: | ||
</ | </ | ||
- | Un rapide coup d'œil à la configuration lisible dans / | + | Un rapide coup d'œil à la configuration lisible dans '' |
< | < | ||
- | $ sudo ls / | + | $ sudo ls / |
-rw------- 1 openldap openldap 15596 juin 27 16:24 cn={0}core.ldif | -rw------- 1 openldap openldap 15596 juin 27 16:24 cn={0}core.ldif | ||
-rw------- 1 openldap openldap 11381 juin 27 16:24 cn={1}cosine.ldif | -rw------- 1 openldap openldap 11381 juin 27 16:24 cn={1}cosine.ldif | ||
Ligne 316: | Ligne 324: | ||
-rw------- 1 openldap openldap | -rw------- 1 openldap openldap | ||
</ | </ | ||
+ | |||
+ | <WRAP info center round 80%> | ||
+ | Si vous avez du commenter des entrées pour pouvoir démarrer le serveur et y ajouter le schéma NIS, arrêter le serveur, décommenter les entrées dans ''/ | ||
+ | </ | ||
+ | |||
=== Modifications des ACL === | === Modifications des ACL === | ||
Ligne 343: | Ligne 356: | ||
Sur la seconde base, on définit l' | Sur la seconde base, on définit l' | ||
- | Le fichier | + | Le fichier |
=== Peuplement des premiers items === | === Peuplement des premiers items === | ||
Ligne 486: | Ligne 499: | ||
Enter LDAP Password: | Enter LDAP Password: | ||
adding new entry " | adding new entry " | ||
+ | |||
+ | ==== Mapping de comptes LDAP vers des com[tes Unix ==== | ||
+ | |||
+ | Lorsque nous utilisons les outils LDAP depuis la ligne de commande, OpenLDAP utilise le fichier ''/ | ||
+ | |||
+ | C'est à ça que nous sert, entre autres, l' | ||
+ | |||
+ | '' | ||
+ | < | ||
+ | # | ||
+ | # LDAP Defaults | ||
+ | # | ||
+ | |||
+ | # See ldap.conf(5) for details | ||
+ | # This file should be world readable but not world writable. | ||
+ | |||
+ | BASE dc=anarcha, | ||
+ | URI | ||
+ | BINDDN | ||
+ | |||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # TLS certificates (needed for GnuTLS) | ||
+ | TLS_CACERT | ||
+ | |||
+ | </ | ||
+ | |||
+ | Cela revient à préciser les paramètres suivant sur l' | ||
+ | |||
+ | $ ldapsearch -H ldappi:/// -b dc=anarcha, | ||
+ | |||
+ | Ce fichier mous permet de sensiblement réduire la liste des paramètres tapés à chaque commande. Et donc, comme nous utilison SASL, le serveur LDAP va utiliser unmécanisme approprié. Par défaut, et en absence d'un service sasl, le serveur OpenLDAP utilise le mécanise EXTERNAL. | ||
+ | |||
+ | < | ||
+ | $ ldapsearch -b cn=config -s base -b "" | ||
+ | SASL/ | ||
+ | SASL username: gidNumber=1006+uidNumber=1007, | ||
+ | SASL SSF: 0 | ||
+ | # extended LDIF | ||
+ | # | ||
+ | # LDAPv3 | ||
+ | # base <> with scope baseObject | ||
+ | # filter: (objectclass=*) | ||
+ | # requesting: supportedSASLMechanisms | ||
+ | # | ||
+ | |||
+ | # | ||
+ | dn: | ||
+ | supportedSASLMechanisms: | ||
+ | |||
+ | # search result | ||
+ | search: 3 | ||
+ | result: 0 Success | ||
+ | |||
+ | # numResponses: | ||
+ | # numEntries: 1 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Ce que fait ce module // | ||
+ | |||
+ | < | ||
+ | $ ldapwhoami | ||
+ | SASL/ | ||
+ | SASL username: gidNumber=1006+uidNumber=1007, | ||
+ | SASL SSF: 0 | ||
+ | dn: gidNumber=1006+uidNumber=1007, | ||
+ | </ | ||
+ | |||
+ | Ce qui ne correspond pas à un utilisateur dans notre nbase LDAP. A noter aussi que l' | ||
+ | |||
+ | gidNumber=1006+uidNumber=1007, | ||
+ | |||
+ | Ce que nous voulons faire, c'est associé cette authentification à une entrée de notre base LDAP. Notre [[ldap-schema|schéma]] indique que notre utilisateurs, | ||
+ | |||
+ | Et LDAP fournit justement une variable permettant de mapper une authentification à un compte. En utilisant les Expressions Régulières (qui vaudraient le coup d'un atelier à part entière au Reset) et une syntaxe normalisée, | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Les URL LDAP obéissent à la [[https:// | ||
+ | |||
+ | Très rapidement, il s'agit d'une URI ayant cette structure là : | ||
+ | |||
+ | ldap://< | ||
+ | |||
+ | Des informations plus détaillée sont disponibles sur le site [[https:// | ||
+ | </ | ||
+ | |||
+ | Nous voulons, pour faire simple, que cette authentification là : | ||
+ | |||
+ | gidNumber=1006+uidNumber=1007, | ||
+ | |||
+ | Soit associé à cet utilisateur là (certains attributs ont été masqués): | ||
+ | |||
+ | < | ||
+ | # okhin, Users, anarcha.pink | ||
+ | dn: uid=okhin, | ||
+ | uid: okhin | ||
+ | cn: okhin | ||
+ | sn: okhin | ||
+ | objectClass: | ||
+ | objectClass: | ||
+ | objectClass: | ||
+ | objectClass: | ||
+ | objectClass: | ||
+ | uidNumber: 1007 | ||
+ | gidNumber: 1006 | ||
+ | memberOf: cn=sudo, | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | |||
+ | ldap:/// | ||
+ | |||
+ | Nous ne précisons pas de nom d' | ||
+ | |||
+ | * baseDN: **ou=Users, | ||
+ | * attrsList: **< | ||
+ | * scope: **one** On ne veut pas explorer tout l' | ||
+ | * filter: **(uidNumber=\$1)** On veut que le champ uidNumber ait la valeur du premier motif trouvé dans l' | ||
+ | |||
+ | L' | ||
+ | |||
+ | gidNumber=[0-9]+\+uidNumber=**([0-9}+)**, | ||
+ | |||
+ | Ne pas oublier d' | ||
+ | |||
+ | < | ||
+ | dn: cn=config | ||
+ | changetype: modify | ||
+ | add: olcAuthzRegexp | ||
+ | olcAuthzRegexp: | ||
+ | ldap:/// | ||
+ | |||
+ | </ | ||
+ | |||
+ | Et on vérifie avec ldapwhoami que tout va bien : | ||
+ | |||
+ | $ ldapwhoami | ||
+ | SASL/ | ||
+ | SASL username: gidNumber=1006+uidNumber=1007, | ||
+ | SASL SSF: 0 | ||
+ | dn: | ||
+ | |||
+ | Et voilà, nous sommes correctement identifié par LDAP. Nous n' | ||
+ | |||
+ | = Changement du scéma de hash de mots de passe par défaut = | ||
+ | Par défaut, lorsau' | ||
+ | |||
+ | Le ldiff suivant de ldapmodify permet de faire cela | ||
+ | |||
+ | < | ||
+ | dn: cn=config | ||
+ | changetype: modify | ||
+ | replace: olcPasswordHash | ||
+ | olcPasswordHash: | ||
+ | - | ||
+ | add: olcPasswordCryptSaltFormat | ||
+ | olcPasswordCryptSaltFormat: | ||
+ | |||
+ | </ |
ateliers/serveurmail/ldap.txt · Dernière modification : 2019/10/28 19:48 de okhin