Archivo del sitio

[OpenLDAP] Bitácora de instalación

He decidido recuperar mi blog técnico, y para comenzar su uso, he incluído una completa guía de instalación, configuración y personalización del servicio de directorio OpenLDAP bajo Debian GNU/Linux.

Espero poder contar con sus visitas y comentarios en esta nueva etapa de documentación en mi blog.

Gracias y allá nos vemos!

[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! …

[weyu] Actualización bitácora openLDAP para Debian Squeeze (y similares)

He incorporado las últimas modificaciones de mis bitácoras acerca de como instalar y configurar openLDAP 2.4 en GNU/Linux Debian Squeeze utilizando backend dinámico(cn=config) en la sección del Wiki de GNU dedicado a openLDAP:

http://phenobarbital.gnu.org.ve/doku.php/weyu:openldap

Hay capítulos especiales sobre:

  • indexación y búsquedas
  • overlays y backends
  • Seguridad
  • Replicación

Y no faltaban algunos consejos (que se irán extendiendo) sobre árboles DIT (Directory Information Tree).

Luego incluiré (como parte de la documentación del proyecto Weyú) una sección completa sobre optimización de servidores openLDAP.

Está abierta a comentarios, críticas y sobre todo a ampliaciones para hacerla más funcional y útil para todos.

[openLDAP] Replicación multi-maestro

La replicación  como operación de copia del DIT (Directory Information Tree) entre diversos servidores permite el balanceo de carga y  la existencia de diversos servicios sin tener que sobrecargar un único servidor LDAP.

A diferencia de las replicaciones maestro-esclavo, las replicaciones multi-maestro permiten la modificación de atributos y objetos en *ambas vias* facilitando la administración de la plataforma.

En el ejemplo del wiki de weyu, hemos instalado 3 servidores LDAP (el LDAP maestro, un LDAP para el consumo del servidor de correo y el LDAP del Samba) y vemos como activar la replicación maestro-maestro.

Replicación multi-maestro

Enlace acá: http://phenobarbital.gnu.org.ve/doku.php/weyu:openldap_replicacion

[PHP5] Obtener el SID de un dominio en modo nativo con ldap-toolkit

Fuente: https://code.google.com/p/php5toolkits/wiki/ObtenerSid

Obtener el SID de un Dominio Active Directory es parte *esencial* de una migración exitosa de un dominio MS a Samba; ya que este representará el SID del nuevo dominio.

Extraerlo usando ldap-toolkit es cosa bastante sencilla; como lo explico en el wiki del proyecto.

Configurar una conexión

Para usar una conexion a un MS Active Directory, configuramos:

#una conexion usando un Active Directory Service
$database['ads']['adapter']           = 'ads';
$database['ads']['host']              = '10.1.1.1';
$database['ads']['basedn']            = 'DC=test,DC=com,DC=ve';
$database['ads']['domain']            = 'test.com.ve';
$database['ads']['netbios_name']      = 'TEST';
$database['ads']['username']          = 'administrator';
$database['ads']['password']          = 'mipassword';
$database['ads']['port']              = 389;
$options = array('LDAP_OPT_PROTOCOL_VERSION' => 3, 'LDAP_OPT_REFERRALS'=>0, 'LDAP_OPT_SIZELIMIT'=>5000, 'LDAP_OPT_TIMELIMIT'=>300);
$database['ads']['options']           = $options;

#Importante el usuario y el netbios_name (nombre del dominio netbios) para el login

Snippet de Codigo

include "conf/base.inc.php";
include_once BASE_DIR . "conf/include_ldap.inc.php";

#obtenemos la configuracion AD
$ldap = ldap::load('ad');

#buscar una entrada basica, para extraer su SID
$entry = "(&(objectClass=user)(samaccounttype=". ADS_NORMAL_ACCOUNT .")(samaccountname=jesuslara))";
#conectamos al AD
$ldap->open();
$entry = $ldap->query($entry);
echo "SID usuario {$user}: " . $entry->bin_to_str_sid('objectSid');
$ldap->close();

Ese echo, mostrará un valor semejante a: ‘S-1-5-21-2102913520-367280043-1452191782-14800’ De esa salida: S-1-5-21-2102913520-367280043-145219178214800

Lo que está en negrillas es el SID del dominio, lo que es itálica, es el UidNumber del usuario; simplemente buscar la ubicación del último “-” y todo lo que hay desde ‘0’ hasta strpos(‘-‘) del último guión será el SID del dominio.

Fácil, rápido y permite una migración más transparente de dominios nativos MS AD a Samba.

Proyecto: Colección “Dame luz!”

Siempre me ha gustado colaborar, por algo estoy en la comunidad de software y conocimiento libre (porque no todo es software), por lo general cada vez que hago algo voy tomando nota y llevando bitácoras, a veces acumulo muchas y por el trabajo y diferentes obligaciones nunca las publico; ahora vamos a cambiar eso!.

“Dame Luz!”  siempre ha sido una expresión interesante cuando la gente está perdida y necesita orientación.

Prólogo

Hoy fué un día interesante, estaba escribiendo algunas cosas, más que todo para la documentación en mi trabajo cuando varios amigos a la vez se conectaron a preguntarme cosas; me llamó la atención particularmente cuando a uno le dije: “epale, por que no usas net sam provision, yo dejé de usar smbldap-tools hace tiempo” y fué como un balde de agua fría para él!, dijo que no sabía nada al respecto y recordé obviamente lo que me habia costado a mí, encontrar información …

Esa fué la chispa que movió la iniciativa …

¿De qué se trata la colección?

Voy a iniciar un proceso de “regularización” de mis bitacoras, la gente en Flickr se inventa los “Proyectos 365” (cada día, una foto) y yo inventaré un Proyecto 52 técnico; cada semana prepararé y tendré listo un HOWTO, paper técnico, una bitacora de trabajo, un artículo netamente técnico y orientado en alguno de estos 5 aspectos (que llamaré colecciones):

  1. OpenLDAP
  2. Servicios
  3. Virtualización con Xen y openVZ
  4. Bases de datos (postgreSQL, mySQL, MariaDB, BerkeleyDB)
  5. Programación (PHP, Python)

La idea general es regularizar esas bitácoras que tengo por ahí, ordenarlas y colocarlas acá para referencia de todas esas personas como mi amigo, que desconocían ciertas características de esas aplicaciones y que por mi trabajo, debo estar haciendo eso todos los días.

¿Por qué no un Wiki?

Inicialmente usaré esta plataforma mientras pueda planificar de forma ordenada como inyectarlas en Wikia (un sitio libre para tener wikis), Weyúu (que significa “Luz” en dialecto Maquiritare/Yekuana) es donde residirán los artículos, pero ya la gente lee y está pendiente de este blog así que la plataforma Wikia será usada como lugar para ordenar todo. No me gusta mucho wikia por su gran cantidad de publicidad (que a un artículo técnico le salga en la base un banner de pokemon no lo hace muy serio) pero es con lo más que cuento mientras pueda costear los dólares de un servidor para una plataforma como esta.

¿De qué consta la colección “Luz|Weyú”?

La colección tendrá un ciclo “ordenado” de artículos, que ya tengo listos y preparados, eso no significa para nada que la gente no puede comentar acá para solicitar un nuevo artículo o que les hable de algún problema técnico; la idea es hacer crecer naturalmente esta iniciativa.

Tampoco será muy rígida en las entregas; formalmente entregaré una semanal, pero puede que alguna otra sea entregada antes por solicitud de la gente o porque decida adelantar su publicación, descuiden, hay más de 52 artículos planificados.

En la Colección “OpenLDAP” se encuentran listos:

  • Árboles y Bosques LDAP: diseñando tu DIT (Directory Information Tree)
  • Extendiendo openLDAP: Creando tu propio ObjectClass
  • Extendiendo openLDAP: módulos y backends
  • Extendiendo openLDAP: Scripting, automatización y monitoreo
  • Overlays y Constraints en openLDAP
  • Extrayendo toda la información (incluyendo passwords) de un Active Directory a openLDAP

En la colección “Virtualización” están listos:

  • Bridges y Bonding de manera práctica con Xen
  • Aprovechando al máximo un DL 380 HP con openVZ
  • Creando personalizaciones (Roles) de VMs con Xen y Debian Lenny

En la colección “Servicios” tenemos:

  • Conectando openLDAP y Samba sin usar smbldap-tools
  • Automatizando Samba: Scripting
  • Implementando alias, listas, buzones compartidos y públicos con Postfix y Dovecot

En la colección “Bases de datos” tenemos:

  • Presentando a mariaDB: primeras pruebsa de migración desde mySQL
  • Integración Heterogénea: ETL para postgreSQL con Apatar
  • Implementación geográfica básica: postgreSQL y mySQL

Hay varias ideas por ahí rondando (como presentar Continuent Tungsten), pero aún están en prueba de concepto.

Por mis obligaciones he escrito muy poco de programación, aunque los HOWTO en prueba de concepto que están más cerca son:

  • Plataforma de envío de mensajes SMS usando GSM y Python

(de mi necesidad de que los NAGIOS envíen mensajes de texto a los jefes de informática)

Y, ¿Cuándo empiezo?

La fecha que escogí para publicar será todos los viernes uno, de acuerdo a los comentarios de la gente, adelantaré algunos o publicaré otros en otras fechas, esta lista se estará actualizando constantemente, agregando nuevos temas (sin salirse claro está de los 5 aspectos definidos, ya que son mis áreas donde poseo experiencia).

Espero poder contribuir con el avance y éxito de la utilización de software libre en Venezuela y espero contar con el apoyo de las personas que me siguen.

ACTUALIZACION

He logrado gracias al grandisimo apoyo de Octavio Rossell de Proyecto GNU/CNSL un espacio para un Wiki Colaborativo (sin tener que usar Wikia, que me llena de publicidad innecesaria) con el cual podré contar con un wiki para los manuales.

La dirección es: Phenobarbital con Wiki!

A %d blogueros les gusta esto: