Instalación y configuración OpenLDAP
LDAP son las siglas de Lightweight Directory Access Protocol (en español Protocolo Ligero de Acceso a Directorios) que hacen referencia a un protocolo a nivel de aplicación el cual permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. LDAP también es considerado una base de datos (aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas.
Un directorio es un conjunto de objetos con atributos organizados en una manera lógica y jerárquica. El ejemplo más común es el directorio telefónico, que consiste en una serie de nombres (personas u organizaciones) que están ordenados alfabéticamente, con cada nombre teniendo una dirección y un número de teléfono adjuntos.
Un árbol de directorio LDAP a veces refleja varios límites políticos, geográficos u organizacionales, dependiendo del modelo elegido. Los despliegues actuales de LDAP tienden a usar nombres de Sistema de Nombres de Dominio (DNS por sus siglas en inglés) para estructurar los niveles más altos de la jerarquía. Conforme se desciende en el directorio pueden aparecer entradas que representan personas, unidades organizacionales, impresoras, documentos, grupos de personas o cualquier cosa que representa una entrada dada en el árbol (o múltiples entradas).
Habitualmente, almacena la información de autenticación (usuario y contraseña) y es utilizado para autenticarse aunque es posible almacenar otra información (datos de contacto del usuario, ubicación de diversos recursos de la red, permisos, certificados, etc). A manera de síntesis, LDAP es un protocolo de acceso unificado a un conjunto de información sobre una red.
Referencia: [1]
OpenLDAP
Para instalar OpenLDAP serán necesarios los paquetes slapd y ldap-utils, para instalar:
$ aptitude install slapd ldap-utils
Luego lanzamos los siguientes comandos
$ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif $ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif $ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
creamos el archivo con la configuración para luego acceder a ldap
$ mkdir ldapLaburo $ cd ldapLaburo $ vi datos_base_slapd
Editamos el archivo datos_base_slapd, un ejemplo es el siguiente:
root@paloma:~/ldapLaburo# cat datos_base_slapd.ldif # Load dynamic backend modules dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulepath: /usr/lib/ldap olcModuleload: back_hdb # Database settings dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {1}hdb olcSuffix: dc=ldap,dc=curerocha,dc=edu,dc=uy olcDbDirectory: /var/lib/ldap olcRootDN: cn=admin,dc=ldap,dc=curerocha,dc=edu,dc=uy olcRootPW: secreto olcDbConfig: set_cachesize 0 2097152 0 olcDbConfig: set_lk_max_objects 1500 olcDbConfig: set_lk_max_locks 1500 olcDbConfig: set_lk_max_lockers 1500 olcDbIndex: objectClass eq olcLastMod: TRUE olcDbCheckpoint: 512 30 olcAccess: to attrs=userPassword by dn="cn=admin,dc=ldap,dc=curerocha,dc=edu,dc=uy" write by anonymous auth by self write by * none olcAccess: to attrs=shadowLastChange by self write by * read olcAccess: to dn.base="" by * read olcAccess: to * by dn="cn=admin,dc=ldap,dc=curerocha,dc=edu,dc=uy" write by * read
Le cambiamos el nombre:
$ mv datos_base_slapd datos_base_slapd.ldif
Y ejecutamos el siguiente comando:
$ ldapadd -Y EXTERNAL -H ldapi:/// -f datos_base_slapd.ldif
Creamos datos_frontend_slapd.ldif
$ vi datos_frontend_slapd.ldif
y le agregamos la siguiente información:
root@paloma:~/ldapLaburo# cat datos_frontend_slapd.ldif # Create top-level object in domain dn: dc=ldap,dc=curerocha,dc=edu,dc=uy objectClass: top objectClass: dcObject objectclass: organization o: CURE Rocha dc: ldap description: Directorio LDAP del CURE # Admin user. dn: cn=admin,dc=ldap,dc=curerocha,dc=edu,dc=uy objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword: secreto dn: ou=gente,dc=ldap,dc=curerocha,dc=edu,dc=uy objectClass: organizationalUnit ou: gente dn: ou=groupos,dc=ldap,dc=curerocha,dc=edu,dc=uy objectClass: organizationalUnit ou: groupos dn: uid=victor,ou=gente,dc=ldap,dc=curerocha,dc=edu,dc=uy objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: victor sn: Alem givenName: Víctor cn: Víctor Alem displayName: Víctor Alem uidNumber: 1000 gidNumber: 10000 userPassword: secreto1 gecos: Víctor Alem loginShell: /bin/bash homeDirectory: /home/john shadowExpire: -1 shadowFlag: 0 shadowWarning: 7 shadowMin: 8 shadowMax: 999999 shadowLastChange: 10877 postalCode: 31000 l: Toulouse o: Example mobile: +33 (0)6 xx xx xx xx homePhone: +33 (0)5 xx xx xx xx title: System Administrator postalAddress: initials: VA
confirmamos que todo este correcto con:
$ ldapadd -x -D cn=admin,dc=curerocha,dc=edu,dc=uy -W -f datos_frontend_slapd.ldif
Si no da errores es que todo ha ido bien!
Convertir del viejo archivo de configuración slapd.conf al formato cn=config
Aquí explicaré con un ejemplo de como agregar los schemas de GOsa.
Para realizar esta tarea creamos el archivo slapd_convert.conf con el siguiente contenido:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/trust.schema include /etc/ldap/schema/samba3.schema include /etc/ldap/schema/gosystem.schema include /etc/ldap/schema/gofon.schema include /etc/ldap/schema/goto.schema include /etc/ldap/schema/goto-mime.schema # Note: before 2.6.5 this file was named gosa+samba3.schema include /etc/ldap/schema/gosa-samba3.schema include /etc/ldap/schema/gofax.schema include /etc/ldap/schema/openssh.schema include /etc/ldap/schema/goserver.schema include /etc/ldap/schema/fai.schema include /etc/ldap/schema/dnszone.schema include /etc/ldap/schema/rfc2739.schema include /etc/ldap/schema/kolab2.schema include /etc/ldap/schema/apple.schema include /etc/ldap/schema/nagios.schema include /etc/ldap/schema/phpgwaccount.schema include /etc/ldap/schema/pureftpd.schema include /etc/ldap/schema/phpscheduleit.schema include /etc/ldap/schema/pptp.schema include /etc/ldap/schema/openxchange.schema include /etc/ldap/schema/dhcp.schema
Luego ejecutamos el siguiente comando.
$ slaptest -f slapd_convert.conf -F /usr/local/etc/openldap/slapd.d
Luego le cambiamos los permisos a todos los archivos del directorio /etc/ldap/slapd.d/cn=config/cn=schema/ con el siguiente comando.
$ chown openldap:openldap /etc/ldap/slapd.d/cn=config/cn=schema/*
Esto sería lo necesario para que quede GOsa funcionando.
phpldapadmin
instalar:
$ apt-get install phpldapadmin
Hacemos un respaldo de la configuración por defecto y editamos el archivo config.php
$ cp /etc/phpldapadmin/config.php /etc/phpldapadmin/config.php.orig $ vi /etc/phpldapadmin/config.php
En este archivo editar las siguientes lineas:
$ldapservers->SetValue($i,'server','name','My LDAP Server'); // The name to display $ldapservers->SetValue($i,'server','host','127.0.0.1'); // Address of the LDAP server $ldapservers->SetValue($i,'server','base',array('dc=ldap,dc=curerocha,dc=edu,dc=uy')); // Base dn $servers->setValue('login','bind_id','cn=admin,dc=ldap,dc=curerocha,dc=edu,dc=uy');
Entramos por web https://ip_servidor/phpldapadmin e ingresamos el password configurado en el ldap.
Fuente: