Cómo instalar un servidor openldap

Vamos a instalar un servidor openldap para  midominio.org  y queremos que todos los usuarios de nuestra red se autentiquen contra este servidor.

Comenzamos instalando los paquetes correspondientes y sus dependencias :

# yum -y install openldap-servers openldap-clients openldap

Aunque los paquetes que instalamos son openldap, el servicio se llama ldap,  así que para que se inicie con el sistema

# chkconfig ldap on

El primer paso es crear el password para el administrador del directorio; le ponemos la contraseña  ‘miopenldap’  y anotamos el password cifrado para después.

# slappasswd
New password:
Re-enter new password:
{SSHA}OrPtt2+31BaqS8iWc2cfzWAzhuETumLR

Editamos el archivo  /etc/openldap/slapd.conf  y al final buscamos la línea “database   bdb”  y modificamos los valores

database       bdb
suffix              “dc=midominio,dc=org”
rootdn          “cn=Manager,dc=midominio,dc=org”
rootpw          {SSHA}OrPtt2+31BaqS8iWc2cfzWAzhuETumLR

Ahora editamos el archivo  /usr/share/openldap/migration/migrate_common.ph  y cambiamos los valores

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = “midominio.org”;
# Default base
$DEFAULT_BASE = “dc=midominio,dc=org”;

Y exportamos la configuración base con :

/usr/share/openldap/migration/migrate_base.pl > mibase.ldif

La información del archivo mibase.ldif será la siguiente :

dn: dc=midominio,dc=org
dc: midominio
objectClass: top
objectClass: domain
dn: ou=Hosts,dc=midominio,dc=org
ou: Hosts
objectClass: top
objectClass: organizationalUnit
dn: ou=Rpc,dc=midominio,dc=org
ou: Rpc
objectClass: top
objectClass: organizationalUnit
dn: ou=Services,dc=midominio,dc=org
ou: Services
objectClass: top
objectClass: organizationalUnit
dn: nisMapName=netgroup.byuser,dc=midominio,dc=org
nismapname: netgroup.byuser
objectClass: top
objectClass: nisMap
etc ….

Y ahora añadimos esta información al árbol ldap; nos pedirá la contraseña del usuario Manager  y añadirá los registros:

#  ldapadd -x -W -D ‘cn=Manager, dc=midominio, dc=org’ -f  mibase.ldif
adding new entry “dc=midominio,dc=org”
adding new entry “ou=Hosts,dc=midominio,dc=org”
adding new entry “ou=Rpc,dc=midominio,dc=org”
adding new entry “ou=Services,dc=midominio,dc=org”
adding new entry “nisMapName=netgroup.byuser,dc=midominio,dc=org”
adding new entry “ou=Mounts,dc=midominio,dc=org”
adding new entry “ou=Networks,dc=midominio,dc=org”
adding new entry “ou=People,dc=midominio,dc=org”
adding new entry “ou=Group,dc=midominio,dc=org”
adding new entry “ou=Netgroup,dc=midominio,dc=org”
adding new entry “ou=Protocols,dc=midominio,dc=org”
adding new entry “ou=Aliases,dc=midominio,dc=org”
adding new entry “nisMapName=netgroup.byhost,dc=midominio,dc=org”

Del mismo modo que hemos migrado la información base del sistema, tenemos que incluir la información de los grupos y los usuarios que existen en el sistema :

# /usr/share/openldap/migration/migrate_group.pl /etc/group grupos.ldif
# /usr/share/openldap/migration/migrate_passwd.pl /etc/passwd pass.ldif
# ldapadd -x -W -D ‘cn=Manager, dc=midominio, dc=org’ -f  grupos.ldif
# ldapadd -x -W -D ‘cn=Manager, dc=midominio, dc=org’ -f  pass.ldif

Para comprobar que la info está en el arbol ldap, vamos a buscar al usuario root :

# ldapsearch -x -b ‘uid=root,ou=People,dc=midominio,dc=org’
# extended LDIF
#
# LDAPv3
# base <uid=root,ou=People,dc=midominio,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# root, People, midominio.org
dn: uid=root,ou=People,dc=midominio,dc=org
uid: root
cn: root
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQxJGl6NGtRdGlxJGxYUkE0WDdaMEZ2M1FyV1lEVUFJRS8=
shadowLastChange: 15100
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 0
gidNumber: 0
homeDirectory: /root
gecos: root
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1

Todo correcto !!   seguimos con la configuración …

Ahora editamos el archivo  /etc/openldap/ldap.conf  y ponemos los siguientes valores :

URI ldap://192.168.1.154/  #  <–  La IP que corresponda en tu caso
BASE dc=midominio,dc=org

Y copiamos el archivo DB_CONFIG :

# cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Si no tenemos este archivo, cada vez que iniciemos el servicio ldap veremos el siguiente mensaje :

Checking configuration files for slapd:  bdb_db_open: Warning – No DB_CONFIG file found in directory /var/lib/ldap: (2)
Expect poor performance for suffix dc=midominio,dc=org.

Finalmente nos queda abrir el puerto 389 TCP y UDP en el cortafuegos.

Ahora vamos a probar si la autenticación funciona :   En un equipo que está en la misma red, lanzamos el siguiente comando :

# authconfig-tui

Primero marcamos la autenticación mediante LDAP

Y luego los parámetros del servidor a utilizar

Reiniciamos el servicio ldap  y el equipo cliente;  tratamos de iniciar sesión y vemos qué ocurre … acceso conseguido !!   Nos hemos “logueado” desde  un equipo consultando el usuario y contraseña contra la información del servidor LDAP !

Si probamos a iniciar sesión con usuarios que no existan o ponemos mal la contraseña, veremos que no se consigue acceder …

Para ver el log de ldap tenemos que añadir la siguiente línea al archivo  /etc/openldap/slapd.conf

loglevel 128

Y editar el archivo  /etc/syslog.conf  añadiendo la entrada :

local4.*                  /var/log/ldap.log

Reiniciamos los servicios syslog y ldap

#  service syslog restart && service ldap restart

Para añadir nuevos usuarios podemos hacer dos cosas :

  • Añadir directamente la información al árbol ldap  ( con phpldapadmin , por ejemplo )
  • Añadir los usuarios al servidor, y migrar la información manualmente como hemos hecho antes.

Ojo con la segunda forma!!  Sólo tendremos que añadir los usuarios nuevos, si tratamos de incluir uno que ya está definido, dará un error indicando que el usuario ya existe.  Así que habrá que editar el archivo pass.ldif y borrar todas las entradas ya definidas en el árbol ldap.

About these ads

4 comentarios en “Cómo instalar un servidor openldap

    • Siento no poder ayudarte, mis conocimientos de LDAP no van más allá de la instalación …
      No obstante, lo apunto en la agenda y en un futuro crearé una entrada con lo que comentas

      Un saludo y muchas gracias !

    • Hola ! vuelve a generar el password con slappasswd, añádelo a /etc/openldap/slapd.conf, reinicia el servicio y prueba de nuevo …
      Habitualmente me equivoco al escribir los passwords, y esto me ha pasado varias veces :)

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s