El post que buscas se encuentra eliminado, pero este también te puede interesar

Montar Servidor LDAP en Linux [Ubuntu Server]

Anuncios

Hola

Pues ahora me escribo un post sobre LDAP

Rapido, LDAP significa Protocolo de Acceso a Directorios Ligeros (siglas en inglés de Lightweight Directory Access Protocol) y es un servicio de directorio, muy similar a los directorios del sistema de ficheros al que estamos acostumbrados, o a la guía de teléfonos que usamos para buscar números de teléfono, o a los servicios de directorios de red como el NIS de SUN (Network Information Service, Servicio de Información de Red), DNS (Domain Name Service), o al árbol que ves en tu jardín. LDAP es una base de datos especializada. Es muy importante recordar que LDAP no es otra base de datos más. LDAP está optimizada para hacer búsquedas (leer datos). Las lecturas en LDAP se realizan de manera mucho más frecuente que las escrituras Toda la información es almacenada en una estructura de árbol. Con LDAPse tiene la libertad de determinar la estructura del árbol.

Montar Servidor LDAP en Linux [Ubuntu Server]

Objetos LDAP

Los objetos pueden asignarse generalmente a uno de dos tipos posibles: Contenedor: Estos objetos pueden a su vez contener otros objetos. Tales clases de objetos son root (el elemento raíz del árbol de directorios, que no existe realmente), c (país), ou (unidad organizativa) y dc (componente de dominio). Este modelo es comparable con los directorios (carpetas) de un sistema de archivos. Hoja: Estos objetos se encuentran en la parte final de una rama y no incluyen objetos subordinados. Algunos ejemplos serían person, InetOrgPerson o groupofNames. Algunas atributos definidos dentro del árbol LDAP son los siguientes, tomando como base la entrada de datos para personas, que en ldap se define mediante la clase de objetos person, pero también puede definirse mediante atributos en las clases de objetos inetOrgPerson, groupOfNames, y organization.

Y pues ya no mencionaré sobre Ubuntu, muchos menos la instalación.

Vamos al grano

1.- Instalación LDAP

Lo primero que hay que hacer es instalar el demonio slapd del servidor OPENLDAP e instalar ldap-utils, un paquete que contiene utilidades de administración de LDAP.

La instalación se hace con el comando:
sudo apt-get install slapd ldap-utils

Sólo bastará con digitar la contraseña de administración y el paquete se instalará correctamente

2.- Configuración LDAP

Desde las ultimas versiones de ldap el archivo de configuración que habitualmente estaba ubicado en / etc/openlap/ldap.conf, no se incluye, por el contrario la configuración es automática durante la instalación del ldap-utils, además para que el servidor trabaje sobre protocolo seguro anteriormente era necesario configurar SSL (SSL permite la autenticación de servidores, la codificación de datos y la integridad de los mensajes. ),pero en las nuevas versiones no es necesario ya que el paquete trae incluido dicha opción, sin embargo es recomendable reconfigurar el servidor para adecuarlo aún más a lo que deseamos, esto se lleva a cabo con la siguiente instrucción:

sudo dpkg-reconfigure slapd

Una vez digitamos esta instrucción se abren una serie de opciones para configurar adecuadamente el servidor. En este cuadro de diálogo debemos escoger la opción de lo contrario no podríamos modificar las opciones de configuración del servidor

server

En este cuadro de diálogo digitamos el dominio de nuestro servidor que para esta practica se me ocurre so2.net

Ubuntu

Ahora se nos pide el nombre de la organización que para este caso es igualmente so2.net

dns

En esta instancia se nos pide escoger escoger el tipo de base de datos backbend (dorsal o base de datos de segundo plano) Si se lee la explicación que da el cuadro de diálogo se observa que se recomienda utilizar la base de datos HDB y no la BDB, y también la justificación de porque escoger dicha opción Para esta practica se escoge HDB

Linux

Ante la pregunta de si desea que se borre la base de datos cuando se purgue el paquete slapd, para esta práctica se escoge que no

NIS

En este nuevo cuadro de diálogo se escoge la opción NO

ldap

Digitamos la contraseña del administrador (root)

conmfiguracion ldap

Confirmamos la contraseña y con esto hemos terminado de configurar ldap.

3.- Contruir el arbol LDAP

Tras haber configurado el servidor ldap procedemos a construir el árbol ldap. La estructura y los datos del árbol ldap, se almacenan en un fichero con formato .ldif. El árbol para esta practica es la siguiente:

arbol ldap

Abrimos un editor bien sea con vi o con nano, y comenzamos a construir el fichero .ldif:

sudo nano so2.net.ldif

Comenzamos a llenar el árbol digitando primero la raíz (dc=so2,dc=net), la unidad organizacional (ou=usuarios), y los objetos persona (objectClass=person)

#Se define la raíz del árbol
dn: dc=so2,dc=net
dc=so2,dc=net
objectClass: top
objectClass: organization
#Se define la unidad organizacional para el árbol
dn: ou=usuarios,dc=so2,dc=net
objectClass: organizationalUnit
ou: usuarios
#Se define el conjunto de usuarios
dn: uid=raMontoya,ou=usuarios,dc=so2,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount


objectClass: shadowAccount
objectClass: person
uid: raMontoya
sn: Montoya
givenName: Ramiro
cn: Ramiro Montoya
displayName: Ramiro Montoya
uidNumber: 1001
gidNumber: 1001
userPassword: {CRYPT}mb/RUPYgkZ11o
gecos: Ramiro Montoya
loginShell: /bin/bash
homeDirectory: /home/ichiro
mail: raMontoya@so2.net

#Aca se agregara a un nuevo usuario: Vanessa Pineda
dn: uid=vPineda,ou=usuarios,dc=so2,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
uid: vPineda
sn: Pineda
givenName: Vanessa
cn: Vanessa Pineda
displayName: Vanessa Pineda
uidNumber: 1003
gidNumber: 1003
userPassword: {CRYPT}mbq1AsI5f3xq.
gecos: Vanessa Pineda
loginShell: /bin/bash
homeDirectory: /home/ichiro
mail: vPineda@so2.net


#Aca se agregara a un nuevo usuario: Jhonatan Vallejo
dn: uid=jVallejo,ou=usuarios,dc=so2,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
uid: jVallejo
sn: Vallejo
givenName: Jhonatan
cn: Jhonatan Vallejo
displayName: Jhonatan Vallejo
uidNumber: 1004
gidNumber: 1004
userPassword: {CRYPT}mbASdzsfH3VF2
gecos: Jhonatan Vallejo
loginShell: /bin/bash
homeDirectory: /home/ichiro
mail: jVallejo@so2.net


Tras digitar esto en el archivo lo almacenamos con el nombre de so2.net.ldif, o con el nombre que se desee Ahora ejecutamos la orden:

ldapadd -x -D cn=admin,dc=so2,dc=net -W -f so2.net.ldif

esto lo hacemos con el fin de agregar el fichero al directorio LDAP

Si quisieramos agregar nuevas usuarios simplemente creamos el fichero .ldif y lo agregamos, como por ejemplo, creemos al usuario Ana Corredor

sudo nano darioSalgado.ldif

estando en el archivo comenzamos a ingresar su información

dn: uid=aCorredor,ou=usuarios,dc=so2,dc=net

objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
uid: aCorredor
sn: Corredor
givenName: Ana
cn: Ana Corredor
displayName: Ana Corredor
uidNumber: 1005
gidNumber: 1005
userPassword: {CRYPT}mb7XvLQ6bmXmQ
gecos: Ana Corredor
loginShell: /bin/bash
homeDirectory: /home/ichiro
mail: aCorredor@so2.net


Guardamos el archivo con el nombre que queramos pero siempre con extensión .ldif, por ejemplo

anaCorredor.ldif

Ahora ejecutamos la orden:

ldapadd -x -D cn=admin,dc=so2,dc=net -W -f anaCorredor

esto lo hacemos con el fin de agregar esta nueva entrada al directorio LDAP Lo anterior lo podemos hacer con la cantidad de usuarios que deseemos

4.- Hacer Busquedas

Teniendo ya la información de nuestro árbol en el directorio ldap, podemos hacer búsquedas, estas se hacen con el comando ldapsearch, por ejemplo para mostrar la información de todos los usuarios: ldapsearch -xLLL -b "dc=so2,dc=net", esto muestra la información del árbol, todos los usuarios, con todos sus datos

Para buscar el mail, el common name cn, surname, de un usuario específico. Si el usuario fuese Ana Corredor. Se digita: ldapsearch -xLLL -b "dc=so2,dc=net" uid=aCorredor mail cn sn

Para buscar el givenName, el uidNumber, el gidNumber, de un usuario específico. Si el usuario fuese Jhonatan Vallejo. Se digita: ldapsearch -xLLL -b "dc=so2,dc=net" uid=jVallejo givenName uidNumber gidNumber

De esta manera podemos hacer cualquier tipo de búsqueda en nuestro directorio ldap, de acuerdo a la estructura que hayamos definido ldap-utils ofrece una serie de herramientas para modificar, agregar, consultar, entre otras acciones en el directorio ldap:

ldapadd: ldapadd abre una conexión a un servidor LDAP, enlaza y añade entradas.
ldapcompare: ldapcompare abre una conexión a un servidor LDAP, enlaza y hace una comparación usando


los parámetros especificados.

ldapdelete: ldapdelete abre una conexión a un servidor LDAP, enlaza y borra una o mas entradas.
ldapmodify: ldapmodify abre una conexión a un servidor LDAP, enlaza y modifica entradas.
ldapmodrdn: ldapmodrdn abre una conexión a un servidor LDAP, enlaza y modifica el RDN de las entradas.
ldappasswd: ldappasswd es una herramienta para establecer la contraseña de un usuario LDAP.
ldapsearch: ldapsearch abre una conexión a un servidor LDAP, enlaza y hace una búsqueda usando los parámetros especificados.
ldapwhoami: ldapwhoami abre una conexión a un servidor LDAP, enlaza y realiza una operación whoami.


Sería todo, y pues ya el iniciar, detener, reiniciar el servicio pues como cualquiera de linux:

Iniciar el servirod sudo /etc/init.d/slapd start
Detener el servidor: sudo /etc/init.d/slapd stop
Reiniciar el servidor: sudo /etc/init.d/slapd restart

Además para este pequeño ejemplo use una dirección específica para nuestro equipo, el gateway, y el servidor dns, es por esto que para que el equipo funcione de manera óptima debemos configurar las direcciones ip y de
red manualmente, para ello hacemos lo siguiente:

1 - Digitamos sudo etc/network/interfaces, estando allí escribimos las direcciones que se nos solicitan de acuerdo a lo que estemos configurando
2 - Digitamos sudo etc/resolve.conf, e igual que en el paso anterior digitamos la dirección ip que se nos solicita en el archivo
3 - Digitamos sudo etc/hosts, y modificamos de acuerdo a nuestras necesidades el contenido de dicho archivo
4 - Por último reniciamos el servidor para que los cambios surjan efecto: sudo /etc/init.d/slapd restart

Como tip adicional: En el campo de userPassword de los ficheros .ldif como los que se hicieron un poco más arriba en este documento, es recomendable tener la contraseña del usuario encriptada, para lograr esto se puede hacer lo siguiente:

Para lograr esto se usa el siguiente comando: sudo slappasswd -C 'mb', habiendo hecho esto,se nos pide la
contraseña, despues la confirmacion de esta, y esta herrramienta nos mostrará por pantalla la contraseña
encriptada. Es fundamental copiar toda la cadena de texto que allí aparece, ejemplo de una contrase
encriptada: {CRYPT}mbt2zRlEwEN3s

Ahora si es todo, les dejo saludos

Revisado de Manuales de Juan Felipe Rios Ramirez y Julian David Hernandez Valencia

Anuncios

6 comentarios - Montar Servidor LDAP en Linux [Ubuntu Server]

@plerzk +1
mañana te paso mis diez. y estudiare a fondo lo que publicaste
@ingente20 +1
gracias por la info luego regreso
@jorge_azcura
che no puedo crear el archivo so3.net.ldif me da error, podrias ayudarme dice line 2 error
@lcvsistemas
Excelente, es lo que buscaba. Gracias.