Ldap
De OpenWikiBSD.
Sommaire |
Ldapd
Le démon ldap réécrit pour OpenBSD.
- Le fichier de config : /etc/ldapd.conf
Ajouter secure après le lo0
- Démarrer ldapd
- Modifier le Base DN : dc=example,dc=org
Les commandes
- ldapctl : Utilitaire de commande
ldapctl stats
OpenLDAP
Installation sous OpenBSD
pkg_add openldap-server echo 'slapd_flags="-u _openldap"' >> /etc/rc.conf.local echo 'if [ "$slapd_flags" != "NO" -a -x /usr/local/libexec/slapd ]; then' >> /etc/rc.local echo ' install -d -o _openldap /var/run/openldap' >> /etc/rc.local echo ' /usr/local/libexec/slapd $slapd_flags' >> /etc/rc.local echo " echo -n ' slapd'" >> /etc/rc.local echo 'fi' >> /etc/rc.local
- Génération d'un mdp chiffré pour le fichier de config
slappasswd
New password:
Re-enter new password:
{SSHA}NbvBJP3wwhanEUrV/HVWUzPcTkeh7EMF
Ce dernier est à coller en face de rootpw dans "/etc/openldap/slapd.conf
Modifier /etc/openldap/slapd.conf : Ajouter les schémas nécessaires :
include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/nis.schema
suffix "dc=openbsd,dc=net" rootdn "cn=admin,dc=openbsd,dc=net"
Génération d'un annuaire minimaliste
Avec les fichiers suivants :
Base DN
#root node dn: dc=openbsd,dc=net objectClass: top objectclass: dcObject objectclass: organization o: Home dc: openbsd
Admin
dn: cn=admin,dc=openbsd,dc=net objectclass: organizationalRole cn: admin
Une OU avec des futurs gens dedans
#OU people dn: ou=people,dc=openbsd,dc=net objectClass: top objectClass: organizationalUnit ou: people
Un gens
#User dn: cn=phil,ou=people,dc=openbsd,dc=net objectClass: top ObjectClass: inetOrgPerson objectClass: posixAccount cn: phil sn: Schwarz mail: mon@mail telephoneNumber: 0141701001 userPassword: 0000000000000000000000000000= gidNumber: 1001 uidNumber: 1001 homeDirectory: /home/phil
Du problème des mots de passe
Il existe plusieurs possibilités de stockage de mdp: texte clair, réversible, non-réversible.
Selon cet extrait de la doc de ldapd, les possibilités sont, pour le moment les suivantes :
- {SHA}digest : Hashage selon l'algorithme SHA-1
- {SSHA}digest : Hashage selon l'algorithme SHA-1 avec grain de sel
- {CRYPT}digest : Hashage selon l'algorithme crypt
- {BSDAUTH}username: Hashage selon l'algorithme BSD
- {BSDAUTH}username#class: Hashage selon l'algorithme BSD avec changement de login class
- userPassword : Mot de passe en texte clair
Un groupe de potes
dn: cn=potes,ou=groups,dc=openbsd,dc=net cn:potes objectClass: top objectClass: posixGroup memberUid: cn=phil,ou=people,dc=openbsd,dc=net
Attention, il faut un gens (un memberuid) dans un groupe
ldapadd -x -D 'cn=admin,dc=openbsd,dc=net' -f /tmp/FICHIER.ldif -W Enter LDAP Password: adding new entry "dc=openbsd,dc=net"
- Activation des logs
echo "loglevel 256" >> /etc/openldap/slapd.conf echo "local4.* /var/log/slapd.log " >> /etc/syslog.conf
Debug
- Attention, Les fichiers ldif ne doivent pas avoir d'espace de début ou de fin de ligne!
Sinon vous aurez
o:: SG9tZSA=
au lieu de
o: Home
- ldap_bind: Confidentiality required (13)
Ajoutez la directive secure dans le fichier de config :
listen on lo0 secure
- ldap_add: Object class violation (65)
La structure de l'objet en cours d'ajout ne respecte pas le schéma d'annuaire. Ajoutez la directive suivante au fichier de config :
relax schema
Elle se passe de commentaire, non ?
- ldap_bind: Server is unwilling to perform (53)
Mauvais mot de passe
- ldap_add: No such object (32)
Correspond, la plupart du temps à une tentative d'ajouter un objet dans une arborescence dont un parent n'existe pas. Commencez par créer ce parent.
- ldap_add: Naming Violation (64)
Vous ajoutez un objet (par exemple un memberuid) dont le nom n'est potentiellement pas unique. Ajoutez le chemin complet de l'arbo.

