Migrar libreta de direcciones de Mozilla Thunderbird a un servidor OpenLdap


Cuando se tienen direcciones de correo electrónico
institucionales cambiando frecuentemente el mantenerlas actualizadas
en las terminales de los usuarios se convierte en una tarea tediosa.
En el lugar donde trabajo cada persona administraba su libreta de
direcciones y esto se convirtió en un problema, pues nadie
tiene todas las direcciones institucionales. Con la finalidad de
solucionarlo se decidió instalar un servidor de LDAP. Aquí
escribo algunas notas importantes de lo que fue el proceso de llevar
las direcciones (que originalmente estaban en Ms Outlook Express)
hasta un servidor de LDAP que lo maneje todo de manera centralizada.

El Archivo
LDIF

Lo primero que
necesitaremos para poner las direcciones en OpenLdap es un archivo en
formato LDIF que contenga las direcciones de todos los funcionarios
de la institución. Encontré que las direcciones más
actualizada que existían se encontraban en la libreta de
direcciones del Ms Outlook Express de uno de los funcionarios. Cuando
procedí a exportarla a formato Ldif (Archivo –>Exportar),
SORPRESA no hay una opción para exportar a LDIF en este
programa. La solución fue instalar el Mozilla ThunderBird (ver
1.0) e importar las direcciones del Ms Outlook al Mozilla
ThunderBird. En el ThunderBird existe una opción denominada
Herramientas –> Exportar la cual permite realizar la exportación
de los datos a formato LDIF sin problemas.

El mensaje de
error ldap_bind: Invalid credentials

Una vez que se
tenía el archivo LDIF, era necesario ejecutar esta instrucción
ldapadd -x -D
cn=Manager,dc=institucion,dc=com -W -f archivo.ldif

La cuál
solicita una contraseña. Sin embargo, luego de introducirla
siempre presentaba el siguiente mensaje de error:
ldap_bind:
Invalid credentials
Revicé
y modifiqué mil veces el archivo /etc/openldap/slapd.conf,
pues es allí donde en teoría se encuentra la
contraseña, sin embargo el mensaje continuaba apareciendo.
Finalmente y luego de buscar mucho en Internet, sin encontrar una
respuesta que me orientara, descubrí que en ese archivo, en la
línea donde se indica la contraseña
rootpw
clave
existía
un espacio en blanco al inicio de la línea, justamente antes
de la palabra rootpw. Lo eliminé y ese era todo el problema
con la autenticación.

¿Cómo
saber si agregó algo o no?

Una vez superado
el problema de autenticación apareció un mensaje que
contenía el texto additional info: referral missing. Lo
que para mí no fue suficientemente claro, esto provocó
que me preguntara si había o no había agregado la
información. Googleando me encontré esta instrucción

slapcat -v -b “dc=institucion,dc=com” -l /home/usuario/registros_existentes.ldif
la cual exporta al
archivo llamado registros_existentes.ldif toda la información
que contiene actualmente el servidor LDAP.
Para mi triste
sorpresa, no se había agregado nada. Luego comprendí
que el mensaje significa que es necesario crear el nodo padre antes
de ejecutar la instrucción para importar los datos.

Creación
de un nodo padre

Cree un archivo
llamado padre.ldif con el siguiente contenido
dn:
dc=institucion,dc=com
objectClass: dcObject
objectClass:
organization
o: INSTITUCION
dc: institucion
Ejecuté la
instrucción ldapadd y revicé el contenido con slapcat.
Al fin el primer paso estaba resuelto. Esta información si se
agregó satisfactoriamente.

Incluyendo el
esquema mozillaAbPersonObsolete.

Para
utilizar los datos tal como los exportó el Mozilla es
necesario agregar este esquema. Se debe modificar el archivo

/etc/openldap/slapd.conf
y
agregar una línea como esta
include
/etc/openldap/schema/mozillaAbPersonObsolete.schema
El
contenido del archivo mozillaAbPersonObsolete.schema lo encontré
aquí
http://www.netpress.com/mozilla/ab2ldap_1/mozilla_op20.schema
Volví
a intentar nuevamente la importación y en esta ocasión
el mensaje fue el siguiente: additional
info: parent does not exist

Es importante resaltar que al realizar la exportación en la nueva versión de Mozilla Thunderbird 1.5, el object class es mozillaAbPersonAlpha, por lo tanto para utilizar el esquema señalado arriba es necesario modificarlo por mozillaAbPersonObsolete.

Modificando el
Archivo LDIF

Encontré
que el archivo exportado por el Mozilla debe ser ligeramente
modificado. Para cada uno de los contactos existe una línea
como la siguiente:
“cn=Nombre Apellido,[email protected]
la cual debe cambiarse para que se vea de la siguiente forma:
“cn=Nombre Apellido,dc=institucion,dc=com”

Más
cambios en el archivo LDIF

Adicionalmente,
es necesario eliminar la línea

modifytimestamp:
0Z
de cada uno de
los registros.

¿Cómo
modificar los nombres que contienen acentos?

Las líneas
de los nombres que contienen acentos se ven de la siguiente forma:
dn::
Y249RWzDrWRpZXIgTW95YSBSb2Ryw61ndWV6LG1haWw9ZW1veWFAY29zdGFycmljZW5zZS5jcg==
Lo que me
confundió bastante e imposibilitó que los pudiera
modificar. Luego de una pregunta a la lista de usuarios de Linux de
Costa Rica (www.gulcr.org) solicitando ayuda para saber que es esto,
y que hacer para modificarlo, me respondieron que esta codificado en
“Base 64” y me dieron el siguiente script para
desencriptarlo.
$ cat archivo | perl -MMIME::Base64 -lne ‘print decode_base64($_)’
Una vez corregida la
parte del [email protected], es posible volver a
encriptarlo así

$ cat archivo | perl -MMIME::Base64 -lne ‘print encode_base64($_)’

La herramienta para manipularlo fácilmente

En el proceso de instalación y configuración del OpenLdap encontré esta herramienta
http://www-unix.mcs.anl.gov/~gawor/ldap/installation.html
La cual permite manipular las direcciones de una forma muy sencilla. Esta hecha en Java y funciona tanto en Linux como en Windows.

Este es el resumen de mi experiencia configurando un servidor OpenLdap, espero que sea de utilidad.

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=2188 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.