Академический Документы
Профессиональный Документы
Культура Документы
Servidor de Autenticacin
Table of Contents [-]
1 OpenLDAP 2 Backends 2.1 Concepto General 2.2 Backends Disponibles 3 Overlays 3.1 Concepto General 3.2 Overlays 4 Implementaciones 4.1 Active Directory 4.2 Novell Directory Services 4.3 iPlanet - Sun ONE Directory Server 4.4 OpenLDAP 4.5 Red Hat Directory Server 4.6 Apache Directory Server 4.7 Open DS 5 Instalacion y configuracion de OpenLDAP 5.1 Generando los directorios 5.2 Generando los llaves de acceso 5.3 Configuracion del fichero /etc/openldap/slapd.conf 6 Iniciar, detener o reiniciar el servidor OpenLDAP 7 Verificando el funcionamiendo de OpenLDAP 8 Creacion de las cuentas 9 Configuracion de los clientes
OpenLDAP #
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 Linux incluyen el software OpenLDAP para el soporte LDAP. Este software tambin corre en plataformas BSD, AIX, HP-UX, Mac OS X, Solaris y Microsoft Windows
Backends#
Concepto General#
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.
05/11/2011
Pgina 2 de 13
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 Proxy backends - actan como puertas de enlace a otros sistemas de almacenamiento de datos back-ldap: proxy simple a otros servidores LDAP back-meta: proxy con caractersticas de meta-directorio back-passwd: usa un sistema basado en Unix de datos passwd y group back-relay: internamente redirige a otros backends de servidores slapd back-sql: establece conexiones a bases de datos SQL Backends dinmicos - estos generan datos sobre la marcha back-config: configuracin del servidor slapd va LDAP back-dnssrv: localiza servidores LDAP va DNS back-monitor: estadsticas de slapd va LDAP back-null: un backend nulo, anlogo a /dev/null en Unix back-perl: invoca arbitrariamente mdulos de perl en respuesta a peticiones LDAP back-shell: invoca scripts de shell para peticiones LDAP back-sock: redirige peticiones LDAP sobre IPC a demonios de manera arbitraria
Algunos backends disponibles en lanzamientos antiguos de OpenLDAP han sido retirados, los ms notorios fueron el back-ldbm que fue heredado del cdigo original de UMich, y back-tcl que era similar a back-perl y back-shell. En la prctica, los backends como -perl, -shell, and -sock permiten interconexin con cualquier lenguaje de programacin, por lo cual proveen limitadas capacidades para personalizacin y expansin. En efecto el servidor slapd se convierte en un motor RPC con una interfaz de programacin de aplicaciones (API) compacta, bien definida y ubcua.
Overlays#
Concepto General#
Generalmente una peticin LDAP es recibida por el frontend, decodificada y luego transferida a un backend para procesamiento. Cuando el backend completa la peticin, devuelve un resultado al frontend, quien luego enva el resultado al cliente LDAP. Un overlay es una pieza de cdigo que puede ser insertada entre el frontend y el backend. Es entonces capaz de interceptar peticiones y lanzar otras acciones en ellas antes de que el backend las reciba, y puede tambin actuar sobre los resultados del backend antes de que stos alcancen el frontend. Overlays tiene acceso completo a las interfaces de programacin (APIs) internas del servidor slapd, y por tanto pueden invocar cualquier llamada que podran realizar el frontend u otros backends. Mltiples overlays pueden ser usados a la vez, formando una pila de mdulos entre el frontend y el backend.
Los overlays proveen un medio simple para incrementar las funcionalidades de una base de datos sin requerir que un completo backend nuevo puede ser escrito, y permite aadir nuevas funcionalidades de manera compacta, fcilmente depurable y mdulos mantenibles. Desde la introduccin de la caracterstica de overlay en OpenLDAP 2.2 muchos nuevos overlays han sido contribudos por la comunidad OpenLDAP.
Overlays#
Actualmente existen 20 overlays en el ncleo de la distribucin OpenLDAP, con otros 10 overlays en la seccin de contribuciones de los usuarios, y ms an esperan aprobacin para ser aadidos.
05/11/2011
Pgina 3 de 13
accesslog: servidor de registro de actividades en otra base de datos LDAP, para registro de actividades accesible por LDAP auditlog: servidor de registro de actividades en un archivo de texto plano chain: intercepta referencias y las encadena; el cdigo es parte de back-ldap collect: implementa atributos de estilo X.500 (tambin conocido Netscape Class Of Service) constraint: restringe los valores aceptables para atributos particulares dds: dynamic data service - entradas de corto tiempo de vida, auto expirables deref: devuelve informacin acerca de entradas referenciadas en resultados de bsqueda dados dyngroup: soporte simple de grupos dinmicos dynlist: soporte de grupos dinmicos ms sofisticado y otras caractersticas memberof: soporte de memberOf y atributos similares pcache: almacenamiento en cache de resultados de bsqueda, principalmente para mejorar desempeo para servidor que actan como proxyes. ppolicy: poltica de claves LDAP - calidad de claves, expiracin, etc. refint: integridad referencial retcode: establece cdigos de retorno predefinidos para varios operadores, usado para depuracin de clientes rwm: mdulo de reescritura para varias alteraciones de datos LDAP seqmod: serializa escritura para entradas individuales syncprov: Proveedor para un consumidor syncrepl, implementa el lado maestro en un esquema de replicacin translucent: paso semi-transparente, para aumentar datos lgicamente en un servidor utilizado como proxy unique: para forzar unicidad de valores de atributos en un rbol valsort: mantiene varios ordenamientos para valores de un atributo
OpenLDAP tambin soporta SLAPI, la arquitectura de extensin usada por Sun y Netscape/Fedora/RedHat. En versiones actuales, el framework SLAPI es implementada dentro del overlay de slapd. Mientras varias extensiones escritos por Sun/Netscape/Fedora/RedHat son compatibles con OpenLDAP, muy pocos miembros de la comunidad OpenLDAP usan SLAPI.
Implementaciones#
Existen diversas implementaciones y aplicaciones reales del protocolo LDAP.
Active Directory #
Active Directory es el nombre utilizado por Microsoft como almacn centralizado de informacin de uno de sus dominios de administracin.
Un Servicio de Directorio es un depsito estructurado de la informacin de los diversos objetos que contiene el Active Directory, en este caso podran ser impresoras, usuarios, equipos... Bajo este nombre se encuentra realmente un esquema (definicin de los campos que pueden ser consultados) LDAP versin 3, lo cual permite integrar otros sistemas que soporten el protocolo. En este LDAP se almacena informacin de usuarios, recursos de la red, polticas de seguridad, configuracin, asignacin de permisos, etc.
05/11/2011
Pgina 4 de 13
OpenLDAP #
Se trata de una implementacin libre del protocolo que soporta mltiples esquemas por lo que puede utilizarse para conectarse a cualquier otro LDAP. Tiene su propia licencia, la OpenLDAP Public License. Al ser un protocolo independiente de la plataforma, varias distribuciones GNU/Linux y BSD lo incluyen, al igual que AIX, HP-UX, Mac OS X, Solaris, Windows (2000/XP) y z/OS.
Open DS #
Basado en los estndares LDAPv3 y DSMLv2, OpenDS surgi como un proyecto interno de SUN, aunque posteriormente se puso a disposicin de la comunidad. Est desarrollado en JAVA y precisa de un entorno de ejecucin (Java Runtime Environment) para funcionar. Es multiplataforma.
Para asegurarnos que realmente se instalaron los paquetes simplemente teclee lo siguiente en terminal
[BASH]# rpm -ql openldap [BASH]# rpm -ql openldap-clients [BASH]# rpm -ql openldap-servers
05/11/2011
Pgina 5 de 13
Como podemos observar nos pedira que tecleemos dos veces la contrasea, esto para evitar errores en el tecleo de la palabra. Por ultimo, nos arrojara como resultado una cadena de caracteres el cual debemos guardar en un fichero plano ya que mas tarde deberemos agregar esta cadena en el archivo de configuracion de OpenLDAP
Se verificara que los ficheros de esquema mnimos requeridos estn activos. De tal modo que debe haber algo similar a lo siguiente dentro del fichero:
include include include include /etc/openldap/schema/core.schema /etc/openldap/schema/cosine.schema /etc/openldap/schema/inetorgperson.schema /etc/openldap/schema/nis.schema
El siguiente paso es configurar el dominio y el usuario que tendra acceso administrativo a esta instancia de OpenLDAP , para ello haremos uso del fichero plano que generamos en el punto 2.2.2 y su contenido lo agregaremos al fichero
/etc/openldap/slapd.conf dentro de la siguiente seccin: Database suffix rootdn rootpw bdb "dc=mi_nombre_de_dominio,dc=com" "cn=admin,dc=mi_nombre_de_dominios,dc=com" {SSHA}xXxXxXxXxXxXxXxXxXxXxXxXxXxXx
05/11/2011
Pgina 6 de 13
directory
/var/lib/ldap/auth
# Indices to maintain for this database index objectClass index ou,cn,mail,surname,givenname index uidNumber,gidNumber,loginShell index uid,memberUid index nisMapName,nisMapEntry
Esto debe de ser suficiente para tener una configuracin de OpenLDAP completa y segura.
Igualmente existen opciones ya sea para reiniciar, detener, recargar o conocer el status en el que se encuentra el servidor OpenLDAP. Estas opciones pueden ser consultadas en la siguiente tabla:
start stop restart Inicia el servicio Detiene el servicio Reinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta Recarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuracin del servicio sin necesidad de matar los procesos relacionados con el mismo, por lo que podra entenderse que hace el cambio en caliente.
reload
condrestartReinicio Condicional.- Solamente se inicia si el servicio se encuentra ejecutndose. status Da a conocer el estado en el que se encuentra el servicio Como alternativa tambin podemos ocupar el siguiente comando para iniciar el servidor OpenLDAP [BASH]# service ldapd start
Y de igual manera podemos usar las opciones antes descritas en la tabla anterior. Recuerde que estos comandos se ejecutan como root. Recuerde tambien configurar el servicio para que cada que el sistema sea reiniciado ldap inicie, esto se hace tecleando en la terminal de BASH lo siguiente:
[BASH]# chkconfig --level 35 ldap on
Por
05/11/2011
Pgina 7 de 13
SELINUX=disabled
Una ves modificado este archivo, ejecuta el siguiente script de la siguiente manera:
/usr/share/openldap/migration/migrate_base.pl > base.ldif
Esta accion creara el objeto que a su vez contendr el resto de los datos de nuestro directorio En las siguientes lneas
# LDIF entries for base DN
Referentes al script
/usr/share/openldap/migration/migrate_base.pl
vemos que lo que hace es generar # LDIF entries for base DN Si te das un minuto para revisar al fichero
/tmp/base.ldif
05/11/2011
Pgina 8 de 13
El LDAP Formato de Intercambio de Informacin (LDIF) es utilizado para representar entradas de LDAP y modificar campos en modo texto. Las herramientas LDAP, cmo ldapadd(1) y ldapsearch(1), leen y escriben archivos LDIF. ldapmodify(1) lee cambios a realizarse con LDIF.
Este manual provee una descripcin bsica de LDIF. Para importar este ldif (/tmp/base.ldif) lo puedes hacer tecleando en consola lo siguiente:
[BASH]# ldapadd -a -D 'cn=admin, dc=tu_dominio, dc=com' -h localhost -f \ > /tmp/base.ldif
Para agregar a este usuario a tu servidor ldap puedes usar ya sea ldapbrowser o lo puedes hacer desde la consola. Para hacerlo desde la consola solo teclea en una terminal de BASH lo siguiente:
[BASH]# ldapadd -a -D 'cn=admin, dc=tu_dominio, dc=com' -h localhost \ > -f /tmp/usuarioTest.ldif
05/11/2011
Pgina 9 de 13
Hay 2 maneras sencillas de lograr esto: 1.Utilizando system-config-authentication 2.Utilizando authconfig-tui y como ultimo paso , modificar los siguientes archivos
/etc/ldap.conf /etc/nsswitch.conf /etc/pam.d/system-auth
Para los pasos 1 y 2 solo deberas teclear en la consola de BASH alguno de los metodos sugeridos para la configuracion, a continuacion se muestran los pantallazos para la primera opcion
[BASH]# system-config-authentication
05/11/2011
Pgina 10 de 13
05/11/2011
Pgina 11 de 13
Esto
# The distinguished name of the search base. base dc=example,dc=com por esto # The distinguished name of the search base. base dc=mi_dominio,dc=com
Del fichero
[BASH]# /etc/nsswitch.conf
Esto
# Example: #passwd: db files nisplus nis #shadow: db files nisplus nis #group: db files nisplus nis passwd: files shadow: files group: files por esto # Example: #passwd: db files nisplus nis #shadow: db files nisplus nis #group: db files nisplus nis passwd: files ldap shadow: files ldap group: files ldap
Al fichero
[BASH]# /etc/pam.d/system-auth Deberan agregar lo siguiente #%PAM-1.0 # This file is auto-generated.
05/11/2011
Pgina 12 de 13
# User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so account required pam_permit.so password password password password session session session session session requisite pam_cracklib.so try_first_pass retry=3 sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok sufficient pam_ldap.so use_authtok required pam_deny.so optional pam_keyinit.so revoke required pam_limits.so [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid required pam_unix.so optional pam_ldap.so
Guardamos los cambios y con ello el equipo est configurado para utilizar OpenLDAP como servidor de autenticacin. Recuerdan esa cuenta de usuarioTest que creamos a la mitad del documento Bueno, ese usuario NO est creado localmente en nuestro host, pero si hacemos un
[BASH]# id usuarioTest uid=900(usuarioTest) gid=900(usuarioTest) groups=900(usuarioTest) [BASH]# finger usuarioTest Login: usuarioTest Name: usuarioTest Directory: /home/usuarioTest Shell: /bin/bash Never logged in. No mail. No Plan.
Listo, vemos que la informacin del usuario est ah! Esto es porque el host est haciendo un query al servidor OpenLDAP. Ahora, que pasa cuando haces un ssh al host con las credenciales del usuarioTest, deberas poder logearte. Ejemplo
[BASH]# ssh usuarioTest@host_usando_openldap_como_auth_server usuarioTest@centos's password: Last login: Thu Jul 31 11:19:17 2008 from otro.host.de_mi_red.com Could not chdir to home directory /home/usuarioTest: No such file or directory -bash-3.1$
Esto es porque el usuario no tiene un directorio en /home en este host, la manera de solucionar esto es 1. Crendo el /home/usuarioTest a mano o 2. Modificando /etc/pam.d/sshd y agregndo al final una lnea como esta:
[BASH]# session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
05/11/2011
Pgina 13 de 13
[BASH]# ssh usuarioTest@host_usando_openldap_como_auth_server usuarioTest@centos's password: Creating directory '/home/usuarioTest'. Last login: Fri Aug 8 08:38:26 2008 from otro.host.de_mi_red.com [BASH]$
Listo Ahora configura tus dems hosts para que utilicen OpenLDAP como su servidor de autenticacin.
0 archivos adjuntos 7888 Accesos
Promedio (0 Votos)
Comentarios
05/11/2011