Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Open LDAP
Open LDAP
Despus de leer estos enlaces: http://www.ldapman.org/articles/sp_arbol_diseno.html http://www.ldapman.org/articles/intro_to_ldap.html http://doc.zentyal.org/es/directory.html Responde a las siguientes preguntas: Qu es un rbol de directorio? y un servicio de directorio? nombra 3 o 4 ejemplos? Cul debe ser el DN base del directorio? cul coge por defecto el LDAP de Zentyal? Qu es una Unidad Organizativa? Qu ventajas va a tener un buen diseo del rbol del directorio LDAP (DIT)? En qu consiste la replicacin LDAP? Qu requisitos debe tener el esclavo para poder utilizar el LDAP del maestro en Zentyal? En ltimo trmino, qu mdulos/aplicaciones de Zentyal/Ubuntu pueden necesitar de un LDAP en el host esclavo? Teniendo en cuenta el LDAP de Zentyal, para qu sirve activar la opcin PAM? y para qu sirve el rincn del usuario? En general para qu sirven las libreras de autentificacin pam-ldap y nss-ldap
En ltimo trmino, qu mdulos/aplicaciones de Zentyal/Ubuntu pueden necesitar de un LDAP en el host esclavo? Los mdulos que utilizan usuarios como por ejemplo correo y comparticin de ficheros pueden instalarse ahora en los esclavos y utilizarn los usuarios disponibles en la Zentyal maestra. Teniendo en cuenta el LDAP de Zentyal, para qu sirve activar la opcin PAM? y para qu sirve el rincn del usuario? Habilitando PAM permitiremos que los usuarios gestionados por Zentyal puedan ser tambin utilizados como usuarios normales del sistema, pudiendo iniciar sesiones en el servidor. Los datos del usuario slo pueden ser modificados por el administrador de Zentyal, lo que comienza a dejar de ser escalable cuando el nmero de usuarios que se gestiona comienza a ser grande. Tareas de administracin como cambiar la contrasea de un usuario pueden hacer perder la mayora del tiempo del encargado de dicha labor. De ah surge la necesidad del nacimiento del rincn del usuario. Dicho rincn es un servicio de Zentyal para permitir cambiar a los usuarios sus datos. Esta funcionalidad debe ser habilitada como el resto de mdulos. El rincn del usuario se
encuentra escuchando en otro puerto por otro proceso para aumentar la seguridad del sistema. En general para qu sirven las libreras de autentificacin pam-ldap y nss-ldap (apt-get
OpenLDAP es una implementacin libre y de cdigo abierto del protocolo Lightweight Directory Access Protocol (LDAP) desarrollada por el proyecto OpenLDAP. Est liberada bajo su propia licencia OpenLDAP Public License. LDAP es un protocolo de comunicacin independiente de la plataforma. Muchas distribuciones GNU/Linux incluyen el software OpenLDAP para el soporte LDAP. Este software tambin corre en plataformas BSD, AIX, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT y derivados, incluyendo 2000, XP, Vista), y z/OS.
1. Componentes
Bsicamente, OpenLDAP posee tres componentes principales: 1. slapd - Dominio de servidor y herramientas 2. Bibliotecas que implementan el protocolo LDAP 3. Programas cliente: ldapsearch, ldapadd, ldapdelete, entre otros
2. Backends
Histricamente la arquitectura del servidor OpenLDAP (slapd, Standalone LDAP Daemon) fue dividida entre una seccin frontal que maneja las conexiones de redes y el procesamiento del protocolo, y un base de datos dorsal o de segundo plano (backend) que trata nicamente con el almacenamiento de datos. La arquitectura es modular y una variedad de backends est disponible para interactuar con otras tecnologas, no slo bases de datos tradicionales. Nota: En versiones antiguas (1.x), los trminos "backend" y "database (base de datos)" podan intercambiarse. Para ser precisos, un "backend" es una clase de interfaz de almacenamiento, y una base de datos es una instancia de un backend. El servidor slapd puede utilizar arbitrariamente varios backends en una sola vez, y puede tener arbitrariamente muchas instancias de cada backend (por ejemplo varias bases de datos) activas por vez. 2.1. Backends disponibles Actualmente 16 diferentes backends son proporcionados en la distribucin de OpenLDAP, y varios proporcionados por terceros son conocidos para mantener otros backends de manera
independiente. Los backends estndar estn organizados de manera imprecisa en tres categoras:
Backends de almacenamiento de datos (Data Storage backends) - estos realmente almacenan informacin back-bdb: el primer backend transaccional para OpenLDAP, construido en base a BerkeleyDB back-hdb: una variante de back-bdb que es totalmente jerrquica y soporta renombrado de sub-rboles back-ldif: construido en archivos LDIF de texto plano back-ndb: un backend transaccional construido en base al motor de cluster NDB de MySQL
Nosotros lo vamos a hacer para un dominio personalizado por lo que donde ponga dc=example,dc=com lo sustituiremos por dc=delarioja,dc=lan
3.1. Instalacin First, install the OpenLDAP server daemon slapd and ldap-utils, a package containing LDAP management utilities: 3|Pgina por Fernando Barcina
sudo apt-get install slapd ldap-utils By default slapd is configured with minimal options needed to run the slapd daemon. The configuration example in the following sections will match the domain name of the server. For example, if the machine's Fully Qualified Domain Name (FQDN) is ldap.example.com, the default suffix will be dc=example,dc=com. Si en la instalacin hay alguna duda sobre qu responder consultar: http://www.ite.educacion.es/formacion/materiales/85/cd/REDES_LINUX/openldap/Instalacio n_y_configuracion_de_OpenLDAP.html 3.2. Despliegue de LDAP OpenLDAP uses a separate directory which contains the cn=config Directory Information Tree (DIT). The cn=config DIT is used to dynamically configure the slapd daemon, allowing the modification of schema definitions, indexes, ACLs, etc without stopping the service. The backend cn=config directory has only a minimal configuration and will need additional configuration options in order to populate the frontend directory. The frontend will be populated with a "classical" scheme that will be compatible with address book applications and with Unix Posix accounts. Posix accounts will allow authentication to various applications, such as web applications, email Mail Transfer Agent (MTA) applications, etc. [Note] For external applications to authenticate using LDAP they will each need to be specifically configured to do so. Refer to the individual application documentation for details. [Note] Remember to change dc=example,dc=com in the following examples to match your LDAP configuration. First, some additional schema files need to be loaded. In a terminal enter: 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 Se utilizar ldapadd para insertar los datos necesarios. Las opciones utilizadas con este mandato son las siguientes: -x autenticacin simple -W solicitar clave de acceso -D binddn Nombre Distinguido (dn) a utilizar -h anfitrin Servidor LDAP a acceder -f fichero fichero a utilizar Next, copy the following example LDIF file, naming it backend.example.com.ldif, somewhere on your system: # Load dynamic backend modules 4|Pgina por Fernando Barcina
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=example,dc=com olcDbDirectory: /var/lib/ldap olcRootDN: cn=admin,dc=example,dc=com olcRootPW: secret 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=example,dc=com" 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=example,dc=com" write by * read
Now add the LDIF to the directory: sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif
The frontend directory is now ready to be populated. Create a frontend.example.com.ldif with the following contents:
# Create top-level object in domain dn: dc=example,dc=com objectClass: top objectClass: dcObject objectclass: organization o: Example Organization dc: Example description: LDAP Example
# Admin user. dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword: secret
dn: uid=john,ou=people,dc=example,dc=com
objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: john sn: Doe givenName: John cn: John Doe displayName: John Doe uidNumber: 1000 gidNumber: 10000 userPassword: password gecos: John Doe loginShell: /bin/bash homeDirectory: /home/john shadowExpire: -1 shadowFlag: 0 shadowWarning: 7 shadowMin: 8 shadowMax: 999999 shadowLastChange: 10877 mail: [email protected] 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: JD
In this example the directory structure, a user, and a group have been setup. In other examples you might see the objectClass: top added in every entry, but that is the default behaviour so you do not have to add it explicitly. Add the entries to the LDAP directory: sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f frontend.example.com.ldif We can check that the content has been correctly added with the ldapsearch utility. Execute a search of the LDAP directory: ldapsearch -xLLL -b "dc=example,dc=com" uid=john sn givenName cn Just a quick explanation: -x: will not use SASL authentication method, which is the default. -LLL: disable printing LDIF schema information.