sábado, 3 de noviembre de 2012

Instalación de servidor LDAP y configuración de clientes en debian

Este post se traspasará pronto a www.systerminal.com

Primero de todo vamos a definir bien el fqdn de nuestra maquina, para saber el nuestro:

hostname --fqdn

Si no está bien definido, lo configuraremos en /etc/hosts:

127.0.0.1       localhost
127.0.1.1       nombredemaquina.example.com        nombredemaquina




Para instalar el servidor LDAP, donde tendremos toda la infofmación guardada, nos bajaremos el paquete slapd:

aptitude install slapd

A lo que solamente nos pedirá la contraseña del administrador de ldap. Pero
 obviamente no es siempre lo suficiente, si no que tenemos que cambiar cosas como el nombre de base etc... Si ejecutamos slapcat  veremos se las entradas son validas o incorrectas, en el segundo de ellos.


Para configurar el paquete slapd ejecutaremos:

dpkg-reconfigure slapd


Nos pedirá :
Nombre de dominio DNS: example.com
Nombre de la Organizacion:
Contrasena del administrador:
Motor de base de datos a utilizar: HDB
¿Permitir el protocolo LDAPv2?: No


Relleraremos según nos convenga y una vez configurado veremos con slapcat una salida así:

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: example.com
dc: example
structuralObjectClass: organization
entryUUID: 6795ae8a-ba4c-1031-9b61-8fa8adeb78d1
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20121103215145Z
entryCSN: 20121103215145.196555Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20121103215145Z

dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9eWFJbXl1ZnNiZnl5S3pnN2ZjZWlXK3lJL2RkVjE2b0c=
structuralObjectClass: organizationalRole
entryUUID: 67a682e6-ba4c-1031-9b62-8fa8adeb78d1
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20121103215145Z
entryCSN: 20121103215145.306828Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20121103215145Z




Como vemos son dos entradas, la de la base y la del administrador.


A continuación vamos a crear dos contenedores, People  y Group, con dos objetos dentro, usuarioldap y grupoldap.


Para ello vamos a meter los siguiente en un archivo .ldif (nuestro caso base.ldif):


dn: ou=People,dc=example,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=example,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

dn: cn=grupoldap,ou=Group,dc=example,dc=com
objectClass: posixGroup
objectClass: top
cn: pruebag
gidNumber: 2000

dn: uid=usuarioldap,ou=People,dc=example,dc=com
uid: usuarioldap
cn: Usuario de prueba
objectClass: account
objectClass: posixAccount
objectClass: top
userPassword: {MD5}wb/BiNulnSaBZIqg5sqMjg==(se genera con slapasswd -h {MD5})
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/pruebau
gecos: Usu



Ahora tenemos que introducirlo en nuestra base de datos de LDAP, para ello nos descargaremos ldap-utils:

aptitude install ldap-utils



Una vez que está instalada lo introduciremos:

ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f base.ldif

El usuario que hemos creado no tiene directorio, así que lo crearemos y le asignaremos a él mismo como propietario:

mkdir /home/usuarioldap
cp /etc/skel/.* /home/usuarioldap

chown -R 2000:2000 /home/usuarioldap

Ya que el usuario 2000 no existe, aunque si en LDAP,  este no lo detecta.

A continuación configuraremos un cliente LDAP , en nuestro caso, nuestro servidor.

Para configurar cualquier equipo de la red con LDAP nos iremos  a /etc/ldap/ldap.conf  (en el caso de que no exista, instalaremos  libldap2) y añadiremos:

BASE dc=example,dc=com
URI   ldap://127.0.0.1



Después vamos a configurar el sistema para que sea capaz de establecer la correspondencia entre los UID/GID y los nombres de los usuarios y los grupos que están en el directorio LDAP. Para ello vamos a configurar /etc/nsswitch.conf:

passwd:         compat ldap
group:          compat ldap







Como vemos vemoshemos añadido ldap en las dos filas.

Peroque el sistema sea capaz de consultar a un directorio LDAP, para ello debemos instalar el paquete libnss-ldap:

aptitude install libnss-ldap

Una vez instalado, configuraremos el paquete:

dpkg-reconfigure libnss-ldap

Allí nos preguntará:

Identificador del servidor LDAP: ldap://127.0.0.1/
Nombre distinguido (dn): dc=example,dc=com

Version de LDAP: 3
Cuenta del administrador: cn=admin,dc=example,dc=com
Contrasena del administrador


Una vez que está configurado el paquete,  comprobaremos que todo está configurado correctamente, así que repetiremos el listado del directorio  home del usuario que hicimos antes:

ls -al /home/usuarioldap/


Para configurar otros clientes que no sean el servidor, tendriamos que hacer los mismos pasos pero cambiando la ip.


Ahora instalaremos PAM que es el sistema modular que se encarga de las tareas de autenticacion en el sistema, cada aplicación que necesite comprobar la autenticacion de usuarios tendrá que hacer uso de él.

Para ello instalaremos :


aptitude install libpam-ldap



Después configuraremos ese paquete:

dpkg-reconfigure libpam-ldap



Y lo amoldaremos a nuestro gusto:

Identificador del servidor LDAP: ldap://127.0.0.1/Nombre distinguido (dn):dc=example,dc=com
Version de LDAP: 3
Local crypt to use when changing passwords: exop

Ahora seremos capaces de acceder al sistemas por mecanismos tales como ssh y otros mas.


Fuente: http://informatica.gonzalonazareno.org


No hay comentarios:

Publicar un comentario