[LDAP] Easy LDAP: una manera rápida de instalar un Directorio LDAP

openLDAP es, de facto, el servicio para instalación de directorios LDAP v.3 en software libre más utilizado, pero su instalación es a veces engorrosa y/o complicada para muchas personas.

Aún con conocimientos de openLDAP, el gestionar los cambios en la base de configuración cn=config puede hacerse complicado y/o tedioso y la instalación de un primer DIT (Directory Information Tree) o su configuración puede alargarse innecesariamente.

Para resolver esos detalles, he creado un muy simple y conciso script en Bash que nos permite instalar un openLDAP básico con las siguientes características:

  • * openLDAP en Debian Squeezy/Wheezy con soporte a cn=config
  • * Instalación completamente desasistida (la mayoría de los parámetros los auto-descubre)
  • * Incorpora un DIT DC utilizando el nombre de dominio del equipo (ej: ejemplo.com.ve genera un root DN dc=ejemplo,dc=com,dc=ve)
  • * Seguridad TLS/SSL con certificados x.509 auto-generados
  • Logging personalizado (/var/log/slapd.log) con rsyslog y logrotate
  • Reglas ACLs básicas
  • Tunning básico de cn=config y olcBackend
  • cn=auditlog y changelog habilitados
  • Incorporación de una larga lista de esquemas incluyendo:
      • Samba
      • Asterisk
      • DNSzone
      • ISC DHCP-ldap
      • RFC2307-bis (posixGroup auxiliary)
      • Trac
      • sudo-ldap, entre otros
  • Indexación de todos los atributos necesarios para todos los esquemas
  • Habilitación de SASL Auth (requiere configuración previa de SASL Digest-MD5)
  • Incorporación de las reglas básicas para replicación usando SyncRPEL
  • cn=Monitor habilitado
  • Incorporación de los siguientes módulos (overlays)
      • Integridad Referencial de atributos
      • Datos únicos (uidNumber, gidNumber, etc)
      • Constraints (ej. jpegPhoto !> 512k ó userPassword debe ser mayor que 5 caracteres)
      • Password Policy (ej. auto-cifrado de claves a SSHA)
      • Dynamic Listing (permite crear listas y grupos dinámicos)
      • Ordenamiento por valor (ValSort)

Easy LDAP incorpora un DIT básico FLAT (plano) del que necesita por ejemplo Samba, por lo que las personas no tendrán que convivir con un DIT muy complicado.

El DIT Incorpora:

  • Grupos y Grupos dinámicos
  • Reglas Sudo para root y Administradores
  • Grupo Administradores con permisos de “manage” (administración) sobre todo el DIT LDAP
  • Reglas por defecto del password Policy
  • Grupos para administración de cuentas (account-admins), del LDAP (ldap-admins) y de réplica (replicators) con sus permisos respectivos.
  • Data de ejemplo de algunas entradas (usuarios, grupos, grupos dinámicos y hosts)

Instalando

Para utilizar el script deben descargarlo desde Gitorious:

git clone https://git.gitorious.org/easy-ldap/easy-ldap.git

Página web oficial del proyecto > https://www.gitorious.org/easy-ldap/

encontrarán un archivo install-ldap.conf y uno llamado install-ldap.sh, en el archivo “.conf”, este archivo permite personalizar cosas como el SUFIJO (SUFFIX) si lo desea para algo distinto a “dc=ejemplo,dc=com”, el dominio del equipo (si va a ser distinto al dominio configurado de la máquina), de estar este valor en blanco y el dominio de la máquina no está configurado, este lo preguntará.

Usando

Usar el script es bastante sencillo, solo tiene un parámetro que es la actividad que deseamos hacer:

install-ldap.sh install

Inicia el proceso de instalación de openldap y:

install-ldap.sh uninstall

Desinstala y borra la base de datos existente.

Eso es todo!, respondan las preguntas en pantalla, y dejen que finalice el script.

TODO

Queda por hacer:

  • Que las personas puedan incorporar su propio DIT ú otros DIT (más árboles al bosque LDAP)
  • Configurar una entidad certificadora (para que el certificado no sea auto-firmado) y SASL
  • Configuración de réplicas

¿Más información?

openLDAP es un servicio del cual hay poca documentación en español para actividades complejas como configuración de overlays, tunning del olcBackend o personalización de servicios, aún cuando llevo un wiki en phenobarbital.gnu.org.ve este está bastante desafasado (mi culpa, no tengo Internet en mi apartamento y a veces voy a un cibercafé a conectarme y subir cosas como esta) pero estaré mejorando la documentación y la guía:libro que acompañará este script.

¿Te resultó de Utilidad?, pues dona algo para la causa!, no seas pichirre! …

About these ads

14 Respuestas a “[LDAP] Easy LDAP: una manera rápida de instalar un Directorio LDAP

  1. Algo para la causa….

    Estimado tengo dos EVDO uno Movistar (hace rato que no le meto tarjeta 190Bsf) y uno Movilnet, si estas interesado avisame en privadol, revisa si tienes EVDO en tu apto. Saludos.

    • Bueno, si lo necesitas, hago un post explicando paso a paso el script de instalación, ¿te parece?, sería ideal … aunque claro, el script NECESITA que sepas LDAP y GNU/Linux, no es para manazas! …
      Saludos!

  2. Saludos; cuando ejecuto #sh install-ldap.sh install me arrroja el siguiente error:
    ../scripts/functions.sh: 20: sysntax error: “(”

    Que puede estar pasando?; estoy instalando en un Debian GNU/Linux 6.0.2 (squeeze)
    Gracias

    • La razón es que no puedes usar SH para ejecutarlo (tiene muchísimas características de bash) debes usar bash
      bash install-ldap.sh
      Disculpa por el error de tipo en la extensión …

  3. Gracias por este post….
    Atendiendo a tu llamado de donacion, podria colaborar (no con dinero) con traducciones referente a OpenLDAP, y ademas intentar (si es posible) contribuir con la documentacion en phenobarbital.gnu.org, ademas que este tema me interesa (aprender) y creo que la traduccion es una forma de hacerlo.

    Ademas, quiero aprovechar de perguntar algo sobre Xen, he estado revisando (mucha) documentacion y no he logrado entender casi nada. Lo que mas me intriga es como hacer la particion (es) en el equipo donde voy a instalar Xen. Lo que quisiera es tener una maquina (Debian) con Xen que me permita tener varios servicios (muchos). Aproximadamente tengo que instalar unos 13 servicios en dos servidores Proliant DL380 G7. Algunas recomendaciones?

    Aca : http://wiki.stocksy.co.uk/wiki/Xen_on_Debian_Squeeze_dom0, recomiendan:

    * Perform a bare-bones Debian Squeeze install. Allocate as little disk space as possible, this scheme would do:

    Filesystem Size Mounted on
    /dev/md0 92M /boot
    /dev/md1 2.8G /
    /dev/md2 942M /var

    * When your system is installed and booted, most of your disk space should be unallocated. Create a new partition, allocating as much of this free space you wish to use for your domU virtual machines. I used all of it.

    • ¿Ves?, eres la persona correcta!, ¿sabes que tengo en mente?, te parece una documentación extensa, desde cero, de cómo montar toda una plataforma básica de IT virtualizada con Xen?, tengo las bitácoras y quiero comenzar a hacer artículos paso a paso …
      ¿Te gustaría *wikificarlas* a cambio de que te explique? … sería un ganar-ganar bastante interesante …

      Saludos!, te escribo al correo para más información!

      • Me acabo de meter en tremendo paquete, jaja! genial, ayudo, aprendo y gano…. chevere! nos comunicamos por correo!

        Saludos!

  4. Seria bueno que usaras XEN y LVM te permite agregar discos y aumentar el tamaño del volumen logico..claro eso se dice asi no mas.. pero hay que sentarse..:-) tambien te puedo dar una mano si quieres.

    P.D: Jesus Pasa la info para ayudarte con eso viejo.

    • De hecho, eso sería parte de una segunda entrega, orientada a algo como Canaima Servidores, creación de VMs “ready to use” de servicios.
      Btw encontré un error en el script ya que no todas las veces los certificados auto-firmados creados por snakeoil sirven, seria mejor crear una CA previamente.
      Saludos!

  5. amigo, este programa lo corro antes o después de instalar slapd y phpldapadmin? lo corrí con el bash sin los programas pero no paso nada.

  6. Phenobarbital, obtengo este error al finalizar la instalacion. “invoke-rc.d: initscript slapd, action “restart” failed.” Acabo de instalar un debian, esta totalmente fresco. Me podrias dar una mano, para saber que puedo arreglar. El resto del script parece funcionar perfectamente. Gracias

    • El detalle es un cambio en el certificado de llave pública que genera el comando de Debian, puedes editar el archivo /etc/ldap/slapd.d/cn=config.ldif y comentar las líneas que hacen referencia al certificado, esto, mientras le creas al LDAP un certificado openSSL autofirmado (le puse al script esa opción, pero aún no lo subo al repositorio) …
      Cualquier cosa, me avisas!

  7. Epale jesus, exelente tu script, pero como todo… pues, algo no funciona y la verdad es que no se que és. Al parecer instala todo perfecto pero no logro que el demonio inicie. Te coloco que me bota el log:

    Jan 9 16:39:22 ldapdc slapd[4237]: olcValSortAttr: value #2: displayName is single-valued, ignoring (displayName)!
    Jan 9 16:39:22 ldapdc slapd[4237]: olcValSortAttr: value #3: uidNumber is single-valued, ignoring (uidNumber)!
    Jan 9 16:39:22 ldapdc slapd[4237]: index entryCSN 0×0004
    Jan 9 16:39:22 ldapdc slapd[4237]: index objectClass 0×0004
    Jan 9 16:39:22 ldapdc slapd[4237]: index reqEnd 0×0004
    Jan 9 16:39:22 ldapdc slapd[4237]: index reqResult 0×0004
    Jan 9 16:39:22 ldapdc slapd[4237]: index reqStart 0×0004
    Jan 9 16:39:22 ldapdc slapd[4237]: main: TLS init def ctx failed: -1
    Jan 9 16:39:22 ldapdc slapd[4237]: slapd stopped.
    Jan 9 16:39:22 ldapdc slapd[4237]: connections_destroy: nothing to destroy.

    Es una maquina virtual debian 6.0.6 kvm, cuando intento darle start al demonio me sigue diciendo:

    Starting OpenLDAP: slapd failed!

    Gracias por todo.

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