martes, 17 de febrero de 2015

LDAP


LDAP es un protocolo de aplicación que permite el acceso a un dominio. Protocolo de Acceso a Directorio Ligero.Es un protocolo estándar que permite administrar directorios, esto es, acceder a bases de información de usuarios de una red mediante protocolosTCP/IP.

Usan BD como backend para almacenar y gestionar las entradas de directorio
Se pueden crear subdominios para:

  • Rendimiento 
  • Localización geográfica
  • Cuestiones administrativas
Modelos LDAP (tipos de servicios) 

Modelo de información 
  • Estructura y tipos de datos del directorio 
  • Directorios = entradas estructuradas (árbol) 
  • Cada entrada = atributos (nombre + valor) 
Modelo de asignación de nombres 
  • Referencia de las entradas y datos. Nombre único. 
  • Cada entrada un ID único (DN: Distinguished name) a partir del RDN (Relative DN) 
Modelo funcional 
  • Operaciones para acceder al árbol: autenticación, solicitudes y actualizaciones 
Modelo de seguridad 
  • Cliente: probar su identidad 
  • Servidor: controlar el acceso
OpenLDAP

Implementación de LDAP de código abierto 

Características 
  • Licencia libre 
  • Multiplataforma 
  • Integración con aplicaciones 
  • IPv6, LDAPv3 y Referrals (esquema distribuido) 
  • Permite operaciones de publicación de esquemas 
  • Internacionalización (UTF8) 
  • Soporta extensiones y muchas BD 
  • Contiene un esquema de mapeo 
  • Mecanismos avanzados de búsqueda
Componentes OpenLDAP 

sladpd: demonio principal 
slurpd: demonio del servidor de replicación 
Librerías 
Herramientas, utilidades y clientes

Instalación y Configuración 

apt-get install slapd ldap-utils
service slapd {start | stop | restart} 
  • Arrancar o reiniciar el servidor LDAP sudo /etc/init.d/slapd restart 
  • Parar el servidor LDAP sudo /etc/init.d/slapd stop 
En el directorio /etc/ldap 
  • Archivos de configuración 
  • Schemas
Configuración mediante el asistente 

sudo dpkg-reconfigure slapd









Administración: Cargar plantillas 

Hay que instalar unas plantillas para manejar usuarios y grupos

Instalar plantillas para almacenamiento de usuarios unix

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f  /etc/ldap/schema/cosine.ldif 
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif 
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif


Configuración esquema básico 
  • Base del directorio: parámetro olcSuffix. dc=majada,dc=com 
  • Nombre de usuario administrador: parámetro olcRootDN . cn=admin,dc=majada,dc=com Contraseña: parámetro olcRootPW. ldapadmin 
  • Permiso de acceso a contraseñas: parámetro olcAccess: to attrs=userPassword. administrador permiso de escritura y a cada usuario para cambiar su propia contraseña 
  • Permiso de acceso global al directorio: parámetro olcAccess:to *. Daremos al usuario administrador permiso de escritura y a todos los usuarios, permisos de lectura Ejemplo de configuración del archivo ldif
Ejemplo de configuración

Unidades organizativas 

Hay que crear una unidad organizativa para usuarios y otra para grupos 
  • dn: ou=users 
  • dn: ou=groups 

Sólo cuando estén creados dominio y administrador.

Después podemos crear usuarios y grupos para hacer pruebas. Crearemos los usuarios javier, joaquin y miguel en el grupo profesores y los usuarios jessica y joel en el grupo alumnos. 

Ejemplo de configuración 



Últimos pasos 

Cargar en el directorio los archivos ldif 

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/ldapcurso-esquema-basico.ldif 
sudo ldapadd -c -x -D cn=admin, dc=majada, dc=com -W -f /tmp/ldapcurso-usuarios.ldif 

Comprobación de las entradas añadidas 

ldapsearch -xLLL –b “dc=majada,dc=com” uid=juan sn givenName cn

Herramientas y utilidades 

Cliente 
  • ldapmodify :modificar entradas de un directorio 
  • ldapadd :añade entradas al directorio 
  • Ldapsearch :busca entradas en el directorio 
  • Ldapdelete :elimina entradas en el directorio 

Servidor 
  • slapadd :añadir entradas desde un fichero ldif 
  • slapcat :extraer de una BD en formato ldif 
  • slapindex :regeneración de índices 
  • slappaswd :genera una contraseña de usuario
Servidor de autenticación 

Instalación 

sudo apt-get install ldap-auth-client nscd 

Configuración 

sudo auth-client-config -t nss -p lac_ldap 

Librería (para que conecte con el servidor al autenticar) 

sudo apt-get install libpam-ldapd 

Actualización de PAM 

sudo pam-auth-update 

Probar la autenticación 

sudo /etc/init.d/nscd restart 
pamtest passwd jessica (autenticación de la contraseña) 
Trying to authenticate for service . Password: // Introducimos el password de jessica 
Authentication successful. // La autentificación ha sido satisfactoria 

finger joel -finger para usuarios que están solo en el dominio 
Login: joel Name: Joel Javier 
Directory: /home/www/alumnos Shell: /bin/sh 
Last login Tue Sep 27 18:02 (CEST) on pts/3 from 192.168.1.213 
No mail.
No Plan

Herramientas gráficas 
  • lat -LDAP Admin Tool 
  • PhpLdapAdmin -Entorno web 
  • JXplorer


No hay comentarios:

Publicar un comentario