Configuration de base openldap à l'aide de la configuration slapd.d

14

J'essaie de mettre en place un serveur de test openldap, n'ayant jamais travaillé avec openldap auparavant. J'utilise le paquet standard openldap-servers sur une machine basée sur redhat (en utilisant Oracle Linux). J'ai installé les packages et démarré le serveur.

Je n'ai maintenant aucune idée de comment faire en sorte que le serveur fasse quelque chose d'utile; Je ne peux pas y accéder en utilisant luma (`` Aucun objet de ce type '' lorsque j'essaie d'accéder à l'entrée de niveau supérieur), les documents openldap sont obtus quant à la façon dont vous obtenez réellement un serveur pour une configuration de travail de base et toutes les informations en ligne est pour l'ancien fichier slapd.conf plutôt que le nouveau slapd.d et cn = config.

Comment puis-je faire fonctionner une installation openldap dans vanilla où je peux accéder au dn racine dans luma?

thecoop
la source

Réponses:

20

Je ressens ta douleur.

Essayez ceci (il est testé sur Scientific Linux 6.5, il devrait donc également fonctionner sur OL):

  • Installer les serveurs OpenLDAP: yum install openldap-servers openldap-clients)
  • commencer slapd: service slapd start(et peut-être chkconfig slapd on)
  • Créez des mots de passe pour cn=configet votre utilisateur administrateur LDAP normal avec slappasswd. Notez la sortie de ceci.
  • Créez un fichier LDIF avec le contenu suivant:
dn: olcDatabase = {0} config, cn = config
changetype: modifier
ajouter: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj

dn: olcDatabase = {2} bdb, cn = config
changetype: modifier
ajouter: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj
-
remplacer: olcRootDN
olcRootDN: cn = admin, dc = your, dc = base, dc = com
-
remplacer: olcSuffix
olcSuffix: dc = votre, dc = base, dc = com
  • Les valeurs de olcRootPWdoivent être remplacées par la sortie de slappaswdvotre note précédente.
  • Naturellement, olcSuffixet olcRootDNdoit être adapté à votre nouveau DN de base.
  • Alimentez tout cela sur le serveur LDAP avec la commande suivante:

    ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f yourfile.ldif

Après cela, vous devriez pouvoir vous connecter aux deux cn=configet dc=your,dc=base,dc=comvia LDAP.

Sven
la source
7
Merci, c'est comme un cauchemar pour le débutant. Il y a config, mais dans les premières lignes de slap.d / * - NE MODIFIEZ PAS, alors que tous les guides / mise en route / guides parlent de "ouvrir config dans votre éditeur préféré"
fghj
9

Avant de démarrer le serveur OpenLDAP, vous devez d'abord configurer quelques éléments.

Configuration de base

Vous devez configurer un utilisateur root et un mot de passe, ainsi que définir votre DN de base. Dans slapd.conf, recherchez les lignes qui suivent les lignes et définissez-les sur les valeurs souhaitées.

suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"

Habituellement, votre DN de base (défini comme suffixdans le fichier) est les composants de votre nom de domaine, séparés par des virgules et préfixés par dc=. Alors, serverfault.compourrait devenir dc=serverfault,dc=com. Vous rootdndevez être sous ce suffixe.

Vous devez également modifier la ligne qui définit le mot de passe root. Vous pouvez le définir sur une valeur en texte brut ou l'utiliser slappasswdpour créer un hachage. Vous devez ensuite mettre la valeur en clair ou la valeur hachée slappasswddans une ligne qui ressemble à ceci:

rootpw myultrasecurepassword

Schémas

C'est une bonne idée à ce stade de commencer à réfléchir aux schémas que vous souhaitez utiliser. Un schéma définit les attributs qu'un objet peut avoir, vous devez donc inclure les schémas qui contiennent les attributs dont vous avez besoin. Ces schémas sont inclus en haut slapd.conf, et ceux-ci sont généralement les schémas de base absolus dont vous aurez besoin:

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema

Ces chemins sont ceux utilisés dans Arch Linux, vous devrez donc peut-être les ajuster pour qu'ils correspondent à Oracle Linux.

À propos de slapd.confvsslapd.d

OpenLDAP est passé de la configuration hors ligne (effectuée en slapd.conf) à la configuration en ligne, stockant les données dans une cn=configarborescence spéciale trouvée dans slapd.d. Cependant, la modification des ldiffichiers slapd.dest un processus pénible, il est donc beaucoup plus facile de modifier slapd.confcomme ci-dessus, puis de le convertir au nouveau slapd.dformat.

Tout d'abord, supprimez tout slapd.d. Ensuite, exécutez la commande suivante, en veillant à ajuster les chemins d'accès à Oracle Linux:

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

Ensuite, définissez simplement le propriétaire de votre utilisateur et groupe LDAP sur ce répertoire de manière récursive, et vous devriez être prêt à partir. Cela doit être fait à chaque fois que vous éditez slapd.conf- n'oubliez pas d'arrêter le serveur OpenLDAP avant de le faire!

Exécution initiale

Avant de pouvoir réellement utiliser le répertoire, vous devez créer le DN de base (et l'utilisateur root). Créez un .ldiffichier contenant des lignes similaires à la suivante:

dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: example.com
dc: example

dn: cn=root,dc=example,dc=com
objectclass: organizationalRole
cn: root

Démarrez maintenant le serveur OpenLDAP. Nous avons juste besoin de pousser ces informations dans l'annuaire LDAP:

ldapadd -D "cn=root,dc=example,dc=com" -W -f initial.ldif

Évidemment, changez le DN racine et le nom de fichier ldif pour correspondre à ce que vous avez.

Vous devriez maintenant avoir un annuaire LDAP fonctionnel configuré et prêt à être rempli!


Le wiki Arch Linux est une excellente source d'informations sur ce sujet - voir https://wiki.archlinux.org/index.php/OpenLDAP et https://wiki.archlinux.org/index.php/LDAP_Authentication si vous le souhaitez savoir plus.

Xénopathique
la source
La plupart de ces opérations sont déjà effectuées par le gestionnaire de paquets et continuent à gérer la configuration via slapd.confet slaptestpendant que le serveur est arrêté bat l'objectif de la configuration en ligne.
Sven
2
Pour une configuration initiale slapd.conffonctionne très bien, et est certainement plus intuitif que l'édition slapd.ddirecte. Je ne sais pas quelle partie du répertoire est effectuée par le gestionnaire de paquets dans Oracle Linux, mais si l'OP n'a pas pu accéder au DN de base, cela ne peut pas avoir été suffisant
Xenopathic
1
La réponse acceptée contient les informations dont j'avais besoin, mais les informations sur la création des objets initiaux étaient également utiles
thecoop