Configuración básica de openldap usando la configuración slapd.d

14

Estoy tratando de configurar un servidor openldap de prueba, ya que no había trabajado con openldap antes. Estoy usando el paquete estándar de servidores openldap en una máquina basada en redhat (usando Oracle Linux). Instalé los paquetes e inicié el servidor.

Ahora no tengo idea de cómo hacer que el servidor haga algo útil; No puedo navegar usando luma ('No existe tal objeto' cuando intento acceder a la entrada de nivel superior), los documentos de openldap son obtusos en cuanto a cómo obtener un servidor para una configuración básica de trabajo y toda la información en línea es para el viejo archivo slapd.conf en lugar del nuevo slapd.d y cn = config.

¿Cómo hago para que funcione una instalación openldap empaquetada en vainilla donde puedo buscar la raíz dn en luma?

thecoop
fuente

Respuestas:

20

Siento tu dolor.

Pruebe esto (está probado en Scientific Linux 6.5, por lo que también debería funcionar en OL):

  • Instalar los servidores OpenLDAP: yum install openldap-servers openldap-clients)
  • comienzo slapd: service slapd start(y tal vez chkconfig slapd on)
  • Cree contraseñas para cn=configy su usuario administrador LDAP normal con slappasswd. Tenga en cuenta el resultado de esto.
  • Cree un archivo LDIF con el siguiente contenido:
dn: olcDatabase = {0} config, cn = config
tipo de cambio: modificar
agregar: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj

dn: olcDatabase = {2} bdb, cn = config
tipo de cambio: modificar
agregar: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj
-
reemplazar: olcRootDN
olcRootDN: cn = admin, dc = your, dc = base, dc = com
-
reemplazar: olcSuffix
olcSuffix: dc = your, dc = base, dc = com
  • Los valores para olcRootPWdeben reemplazarse con la salida de slappaswdsu anotado anteriormente.
  • Naturalmente, olcSuffixy olcRootDNdebe adaptarse a su nueva base DN.
  • Alimente todo esto al servidor LDAP con el siguiente comando:

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

Después de eso, debería poder conectarse a ambos cn=configy a dc=your,dc=base,dc=comtravés de LDAP.

Sven
fuente
77
Gracias, esto es como una pesadilla para principiantes. Hay config, pero en las primeras líneas de slap.d / * - NO EDITES, mientras que todos los instructivos / procedimientos / guías hablan sobre "configuración abierta en su editor favorito"
fghj
9

Antes de iniciar el servidor OpenLDAP, primero debe configurar algunas cosas.

Configuracion basica

Debe configurar un usuario raíz y una contraseña, junto con la definición de su DN base. En slapd.conf, busque las líneas que siguen a las líneas y configúrelas con los valores que desee.

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

Por lo general, su DN base (definido como suffixen el archivo) son los componentes de su nombre de dominio, separados por comas y con el prefijo dc=. Entonces, serverfault.compodría convertirse dc=serverfault,dc=com. Su rootdndebe estar bajo ese sufijo.

También debe cambiar la línea que define la contraseña de root. Puede establecerlo en un valor de texto sin formato o utilizarlo slappasswdpara crear un hash. Luego debe colocar el valor de texto sin formato o el valor hash slappasswden una línea que se ve así:

rootpw myultrasecurepassword

Esquemas

En este punto, es una buena idea comenzar a pensar en los esquemas que desea usar. Un esquema define los atributos que puede tener un objeto, por lo que debe incluir los esquemas que contienen los atributos que necesita. Estos esquemas se incluyen en la parte superior slapd.conf, y los que aparecen aquí son generalmente los esquemas básicos absolutos que necesitará:

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

Estas rutas son las que se usan en Arch Linux, por lo que es posible que deba ajustarlas para que se ajusten a Oracle Linux.

Sobre slapd.confvsslapd.d

OpenLDAP ha cambiado de la configuración fuera de línea (hecho en slapd.conf) a la configuración en línea, almacenando datos en un cn=configárbol especial que se encuentra en slapd.d. Sin embargo, la modificación de los ldifarchivos slapd.des un proceso doloroso, por lo que es mucho más fácil editar slapd.confcomo se indicó anteriormente y luego convertirlo al nuevo slapd.dformato.

Primero, elimine todo slapd.d. A continuación, ejecute el siguiente comando, asegurándose de ajustar las rutas a Oracle Linux:

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

Luego, configure el propietario de su usuario LDAP y grupo en ese directorio de forma recursiva, y ya debe estar listo. Esto debe hacerse cada vez que edite slapd.conf, ¡solo recuerde detener el servidor OpenLDAP antes de hacerlo!

Ejecución inicial

Antes de poder usar el directorio, debe crear el DN base (y el usuario raíz). Cree un .ldifarchivo que contenga líneas similares a las siguientes:

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

Ahora inicie el servidor OpenLDAP. Solo necesitamos insertar esa información en el directorio LDAP:

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

Obviamente cambie el DN raíz y el nombre de archivo ldif para que coincida con lo que tiene.

¡Ahora debería tener un directorio LDAP en funcionamiento configurado y listo para ser poblado!


El wiki de Arch Linux es una gran fuente de información sobre este tema; consulte https://wiki.archlinux.org/index.php/OpenLDAP y https://wiki.archlinux.org/index.php/LDAP_Authentication si desea saber más.

Xenopático
fuente
La mayoría de esto ya lo hace el administrador de paquetes y continuar administrando la configuración a través slapd.confy slaptestmientras el servidor está detenido supera el propósito de la configuración en línea.
Sven
2
Para una configuración inicial slapd.conffunciona bien, y ciertamente es más intuitivo que editar slapd.ddirectamente. No sé qué parte del directorio se realiza mediante el gestor de paquetes en Oracle Linux, pero si el PO no podía acceder a la base DN entonces no puedo haber sido suficiente
Xenopathic
1
La respuesta aceptada tiene la información que necesitaba, pero la información sobre la creación de los objetos iniciales también fue útil
thecoop