0% encontró este documento útil (0 votos)
56 vistas41 páginas

Introducción a LDAP y su Funcionamiento

Este documento introduce conceptos básicos sobre LDAP como protocolo de acceso a directorios, sus características, usos y diferencias con bases de datos relacionales. Explica términos como entradas, atributos y estructura jerárquica de LDAP.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas41 páginas

Introducción a LDAP y su Funcionamiento

Este documento introduce conceptos básicos sobre LDAP como protocolo de acceso a directorios, sus características, usos y diferencias con bases de datos relacionales. Explica términos como entradas, atributos y estructura jerárquica de LDAP.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIDAD 

1
INTRODUCCION

LDAP ­SAMBA ­ POSTFIX 1­1
Que es LDAP?

LDAP ("Lightweight Directory Acces Protocol", en español Protocolo Ligero de Acceso a 
Directorios) es un protocolo de tipo cliente­servidor para acceder a un servicio de directorio. Se usó 
inicialmente como un Front­end o interfaz final para x.500, pero también puede usarse con servidores 
de directorio únicos y con otros tipos de servidores de directorio.

¿Qué es un directorio? 

Un directorio es una base de datos, pero en general contiene información más descriptiva y más 
basada en atributos. La información contenida en un directorio normalmente se lee mucho más de lo 
que se escribe. Como consecuencia los directorios no implementan normalmente los complicados 
esquemas para transacciones o esquemas de reducción que las bases de datos utilizan para llevar a 
cabo actualizaciones complejas de grandes volúmenes de datos, Las actualizaciones en un directorio 
son usualmente cambios sencillos de todo o nada, si es que permiten algo.

Pueden tener capacidad de replicar información de forma amplia, con el fin de aumentar la 
disponibilidad y fiabilidad, y a la vez reducir tiempo de respuesta. Cuando se duplica la información de 
un directorio, pueden aceptarse inconsistencias temporales entre la información que hay en las 
réplicas, siempre que finalmente exista una sincronización.

¿Un directorio LDAP es una base de datos? 

El sistema gestor de una base de datos (Database Management System ó DBMS) de 
Sybase, Oracle, Informix ó Microsoft SQL Server es usado para procesar peticiones (queries) ó 
actualizaciones a una base de datos relacional. Estas bases de datos pueden recibir cientos o miles 
de órdenes de inserción, modificación o borrado por segundo. Un servidor LDAP es usado para 
procesar peticiones (queries) a un directorio LDAP. Pero LDAP procesa las órdenes de borrado y 
actualización de un modo muy lento. En otras palabras, LDAP es un tipo de base de datos, pero no 
es una base de datos relacional. No está diseñada para procesar cientos o miles de cambios por 
minuto como los sistemas relacionales, sino para realizar lecturas de datos de forma muy eficiente.

LDAP ­SAMBA ­ POSTFIX 1­2
Funcionamiento de LDAP 

El servicio de directorio LDAP se basa en un modelo cliente­servidor. Uno o más servidores 
LDAP contienen los datos que conforman el árbol de directorio LDAP o base de datos troncal, el 
cliente LDAP se conecta con el servidor LDAP y le hace una consulta. 

El servidor contesta con la respuesta correspondiente, o bien con una indicación de donde 
puede el cliente hallar más información. No importa con que servidor LDAP se conecte el cliente ya 
que siempre observará la misma vista del directorio; el nombre que se le presenta a un servidor 
LDAP hace referencia a la misma entrada a la que haría referencia en otro servidor LDAP.

Ventajas en el uso de LDAP 

Un directorio LDAP destaca sobre los demás tipos de bases de datos por las siguientes 
características:

● Es muy rápido en la lectura de registros 

● Permite replicar el servidor de forma muy sencilla y económica 

● Muchas aplicaciones de todo tipo tienen interfaces de conexión a LDAP y se pueden integrar 
fácilmente

● Dispone de un modelo de nombres globales que asegura que todas las entradas son únicas

● Usa un sistema jerárquico de almacenamiento de información.

● Permite múltiples directorios independientes. 

● Funciona sobre TCP/IP y SSL/TLS .

● La mayoría de aplicaciones disponen de soporte para LDAP

● La mayoría de servidores LDAP son fáciles de instalar, mantener y optimizar.

LDAP ­SAMBA ­ POSTFIX 1­3
Usos empresariales 

Dadas las características de LDAP sus usos más comunes son: 

■ Directorios de información. Por ejemplo bases de datos de empleados organizados 
por departamentos (siguiendo la estructura organizativa de la empresa) ó cualquier 
tipo de páginas amarillas. 

■ Sistemas de autenticación/autorización centralizada. Grandes sistemas donde se 
guarda gran cantidad de registros y se requiere un uso constante de los mismos. Por 
ejemplo: 

● Active Directory Server de Microsoft, para gestionar todas 
las cuentas de acceso a una red corporativa y mantener 
centralizada la gestión del acceso a los recursos. 

● Sistemas de autenticación para páginas Web, algunos de 
los gestores de contenidos más conocidos disponen de 
sistemas de autenticación a través de LDAP

● Sistemas de control de entradas a edificios, oficinas.

■  Sistemas de correo electrónico. Grandes sistemas formados por más de un 
servidor que accedan a un repositorio de datos común.

■  Sistemas de alojamiento de páginas web y FTP, con el repositorio de datos de 
usuario compartido. 

■ Grandes sistemas de autenticación basados en RADIUS, para el control de 
accesos de los usuarios a una red de conexión o ISP.

■  Servidores de certificados públicos y llaves de seguridad

■ Autenticación única ó  single sign­on  para la personalización de aplicaciones.

■ Perfiles de usuarios centralizados, para permitir itinerancia ó  roaming  

■ Libretas de direcciones compartidas.

LDAP ­SAMBA ­ POSTFIX 1­4
Cuándo resulta interesante usar LDAP? 

Como hemos visto LDAP es una base de datos optimizada para entornos donde se realizan 
muchas lecturas de datos y pocas modificaciones o borrados. Por lo tanto es muy importante saber 
elegir dónde es conveniente usarlo. No será conveniente como base de datos para sitios que realicen 
constantes modificaciones de datos (por ejemplo en entornos de e­commerce) Normalmente el tipo 
de preguntas que debes hacerte para saber si LDAP es conveniente para tus aplicaciones son: 

1­ ¿Me gustaría que los datos fueran disponibles desde distintos tipos de plataforma?

2­ ¿necesito acceso a estos datos desde un número muy elevado de servidores y/o aplicaciones? 

3­ Los datos que almaceno ¿son actualizados muchas veces?, o por el contrario ¿son sólo 
actualizados unas pocas veces? " 

4­ ¿tiene sentido almacenar este tipo de datos en una base de datos relacional? Si no tiene sentido, 
¿puedo almacenar todos los datos necesarios en un solo registro?

LDAP ­SAMBA ­ POSTFIX 1­5
Diferencias con una base de datos relacional 

Las características de una base de datos relacional (RDBMS o Relation Database 
Management Systems) son:

Realizan operaciones de escritura intensivas: 

Las bases de datos relacionales estás preparadas para hacer un uso constante de 
operaciones orientadas a transacciones, que implican la modificación o borrado constante de los 
datos almacenados.

Esquema específico para cada aplicación: 

Las bases de datos relacionales son creadas para cada aplicación específica, siendo 
complicado adaptar los esquemas a nuevas aplicaciones.

Modelo de datos complejo: 

Permiten manejar complejos modelos de datos que requieren muchas tablas, foreign keys, 
operaciones de unión (join) complejas& 

Integridad de datos: 

Todos sus componentes están desarrollados para mantener la consistencia de la información 
en todo momento. Esto incluye operaciones de rollback.

LDAP ­SAMBA ­ POSTFIX 1­6
Las características de un servidor LDAP son: 

● Operaciones de lectura muy rápidas. Debido a la naturaleza de los datos almacenados en 
los directorios las lecturas son más comunes que las escrituras. 

● Datos relativamente estáticos. Los datos almacenados en los directorios no suelen 
actualizarse con mucha frecuencia. 

● Entorno distribuido, fácil replicación 

● Estructura jerárquica. Los directorios almacenan la información de forma jerárquica de forma 
nativa. ­ 

● Orientadas a objetos. El directorio representa a elementos y a objetos. Los objetos son 
creados como entradas, que representan a una colección de atributos. ­

● Esquema Standard. Los directorios utilizan un sistema standard que pueden usar fácilmente 
diversas aplicaciones. 

● Atributos multi­valor. Los atributos pueden almacenar un valor único o varios. ­ 

● Replicación multi­master. Muchos de los servidores LDAP permiten que se realicen 
escrituras o actualizaciones en múltiples servidores.

LDAP ­SAMBA ­ POSTFIX 1­7
Figura 3. Delegación del árbol LDAP

Definición de términos 

 Entradas

  El modelo de información de LDAP está basado en entradas.

Una entrada es una colección de atributos que tienen un único y global Nombre Distintivo (DN) 
El DN se utiliza para referirse a una entrada sin ambigüedades.

 Cada atributo de una entrada posee un tipo y uno o más valores. Los tipos son normalmente 
palabras nemotécnicas, como  cn  para common name, o  mail  para una dirección de correo. La 
sintaxis de los atributos depende del tipo de atributo. Por ejemplo, un atributo cn puede contener el 
valor  Jose Manuel Suarez . 

Un atributo email puede contener un valor  [email protected] . El atributo jpegPhoto ha de 
contener una fotografía en formato JPEG.

LDAP ­SAMBA ­ POSTFIX 1­8
 Figura 1. Como se construyen los DNs de las entradas.

LDAP ­SAMBA ­ POSTFIX 1­9
Atributos 

Los datos del directorio se representan mediante pares de atributo y su valor. Por ejemplo el 
atributo commonName, o cn (nombre de pila), se usa para almacenar el nombre de una persona. 

Puede representarse en el directorio a una persona llamada José Suarez mediante: " cn: 
José Suarez Cada persona que se introduzca en el directorio se define mediante la colección de 
atributos que hay en la clase de objetos person. 

Otros atributos:

givenname: José

  surname: Suarez

mail: [email protected] 

Los atributos requeridos son aquellos que deben estar presentes en las entradas que se 
utilicen en la clase de objetos. Todas las entradas precisas de los atributos permitidos son aquellos 
que pueden estar presentes en las entradas que utilicen la clase de objetos.

Por ejemplo, en la clase de objetos person, se requieren los atributos cn y sn. 

LDAP ­SAMBA ­ POSTFIX 1­10
Los atributos description (descripción), telephoneNumber (número de teléfono), seealso (véase 
también), y userpassword (contraseña del usuario) se permiten pero no son obligatorios. 

Por ejemplo:

  requires 

objectClass, 

sn, 

cn 

organizationalPerson 

allows 

description, 

telephoneNumber, 

seealso, 

userpassword 

LDAP ­SAMBA ­ POSTFIX 1­11
Cada atributo tiene la definición de sintaxis que le corresponde. La definición de sintaxis describe el 
tipo de información que proporciona ese atributo:

1. bin binario

2. ces cadena con mayúsculas y minúsculas exactas (las mayúsculas y minúsculas son 
significativas durante las comparaciones) 

3. cis cadena con mayúsculas y minúsculas ignoradas (las mayúsculas y minúsculas no son 
significativas durante las comparaciones) 

4. tel cadena de número de teléfono (como cis, pero durante las comparaciones se ignoran los 
espacios en blanco y los guiones"_") 

5. dn "distinguished name" (nombre distintivo) 

6. boolean cierto/falso, si/no, on/off

Por ejemplo: 

attribute associatedname dn 

attribute audio bin 

attribute dn dn 

attribute documentauthor dn 

attribute facsimiletelephonenumber tel 

attribute homephone tel 

attribute jpegphoto bin 

attribute labeledurl ces

LDAP ­SAMBA ­ POSTFIX 1­12
 LDIF 

Para importar y exportar información de directorio entre servidores de directorios basados en LDAP, o 
para describir una serie de cambios que han de aplicarse al directorio, se usa en general el fichero de 
formato conocido como LDIF 

(formato de intercambio de LDAP). 

Un fichero LDIF almacena información en jerarquías de entradas orientadas a objeto. 

Todos los servidores LDAP que incluyen una utilidad para convertir ficheros LDIF a formato 
orientadas a objeto. Normalmente es un fichero ASCII. 

EJEMPLO: Un fichero LDIF corriente tiene este aspecto: 

dn: uid=jmsuarez,ou=People,dc=empresa,dc=com 

uid: jmsuarez 

cn: Jose Manuel Suarez 

objectclass: account 

objectclass: posixAccount 

objectclass: top 

loginshell: /bin/bash

uidnumber: 512 

gidnumber: 300 

homedirectory: /home/jmsuarez 

gecos: Jose Manuel Suarez,,,, 

userpassword: {crypt}LPnaOoUYN57Netaac

LDAP ­SAMBA ­ POSTFIX 1­13
Objetos

En LDAP, una clase de objetos define la colección de atributos que pueden usarse para definir 
una entrada. El estándar LDAP proporciona estos tipos básicos para las clases de objetos: 

1. Grupos en el directorio, entre ellos listas no ordenadas de objetos individuales o de grupos de 
objetos. 

2. Emplazamientos, como por ejemplo el nombre del país y su descripción.

3. Organizaciones que están en el directorio. 

4. Personas que están en el directorio. 

Una entrada determinada puede pertenecer a más de una clase de objetos. Por ejemplo, la entrada 
para personas se define mediante la clase de objetos person, pero también puede definirse mediante 
atributos en las clases de objetos inetOrgPerson, groupOfNames y organization. La estructura de 
clases de objetos del servidor determina la lista total de atributos requeridos y permitidos para una 
entrada concreta.

Integración con otros sistemas 

Una vez que hayamos configurado e instalado LDAP lo podemos usar como repositorio de 
datos para multitud de aplicaciones que disponen de soporte 

● Radius

● Samba

● DNS

● Mail Transfer Agents 

● Libretas de direcciones 

● Servidores FTP

● Servidores HTTP

● Servidores de certificados de seguridad

LDAP ­SAMBA ­ POSTFIX 1­14
UNIDAD 2
INSTALACION

LDAP ­SAMBA ­ POSTFIX 1­15
Las versiones OpenLDAP 2.x funcionan con la versión 3 de LDAP (RFC 3377).

LDAPv3 es el estándar actual para todos los servidores LDAP. 

Los paquetes que incluyen las distribuciones de OpenLDAP son:

● Servidor LDAP (slapd)

● Servidor de replicación LDAP (slurpd)

● Software Development Kit (ldap) 

● Utilidades, herramientas. 

Toda la documentación sobre el producto puede consultarse en http://www.openldap.org/doc/

Para instalar openldap via apt ejecute el siguiente comando

                 apt­get install openldap openldap­clients openldap­servers

Archivo principal de servidor ldap

     /etc/openldap/slapd.conf

Reiniciar servicio ldap

/etc/init.d/ldap restart

LDAP ­SAMBA ­ POSTFIX 1­16
Contenido de OpenLDAP 

El paquete OpenLDAP contiene los archivos binarios: 

ldapadd, ldapcompare, ldapdelete, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch, ldapwhoami, 
slapadd, slapcat, slapd, slapindex, slappasswd, slurpd, liblber y libldap. 

Descripciones: 

● ldapadd abre una conexión a un servidor LDAP, enlaza y añade entradas.

● ldapcompare abre una conexión a un servidor LDAP, enlaza y hace una comparación usando 
los parámetros especificados. 

● ldapdelete abre una conexión a un servidor LDAP, enlaza y borra una o mas entradas.

● ldapmodify abre una conexión a un servidor LDAP, enlaza y modifica entradas. 

● ldapmodrdn abre una conexión a un servidor LDAP, enlaza y modifica el RDN de las 
entradas.

● ldappasswd es una herramienta para establecer la contraseña de un usuario LDAP. 

● ldapsearch abre una conexión a un servidor LDAP, enlaza y hace una búsqueda usando los 
parámetros especificados. 

● ldapwhoami abre una conexión a/etc/openldap/slapd.conf un servidor LDAP, enlaza y realiza 
una operación whoami. 

● slapadd se usa para añadir entradas especificadas en el formato Intercambio de Directorio de 
LDAP (LDIF) en una base de datos slapd. 

● slapcat Se usa para generar una salida LDAP LDIF basada en el contenido de una base de 
datos slapd. 

● slapd es el servidor LDAP independiente. 

● slapindex se usa para regenerar índices slapd basados en el contenido actual de una base 
de datos. 

● slappasswd es una utilidad de contraseñas OpenLDAP. 

● slurpd es el servidor réplica LDAP independiente.

LDAP ­SAMBA ­ POSTFIX 1­17
 UNIDAD 3
CONFIGURACION

LDAP ­SAMBA ­ POSTFIX 1­18
Configuracion Basica

 1­  Crear  password para administrador de servicio ldap

slappasswd

New password:

Re­enter new password:

{SSHA}9hCt10m6EExJwanWh5ypqtwPEF724TO5

2­   Edite el archivo  principal  del servicio ldap

 vi  /etc/openldap/slapd.conf

         database        bdb

suffix          "dc=trunk,dc=com"

rootdn          "cn=Manager,dc=trunk,dc=com"

# rootpw                secret

rootpw          {SSHA}9hCt10m6EExJwanWh5ypqtwPEF724TO5

directory       /var/lib/ldap/

3­  Inicie el servicio ldap

service ldap start 

4  ­   Active el servicio ldap   para que se inicie automaticamente 

        el  proximo rebooteo

  chkconfig ldap on

LDAP ­SAMBA ­ POSTFIX 1­19
MIGRACION PASSWD Y GROUP HACIA LDAP

1­ Edite el fichero /usr/share/openldap/migration/migrate_common.ph 

     $DEFAULT_MAIL_DOMAIN = "trunk.com";

     $DEFAULT_BASE = "dc=trunk,dc=com";

2­ Genere un fichero base.ldif del siguiente modo:

     /usr/share/openldap/migration/migrate_base.pl > base.ldif

3­ Poblar base

­x autenticación simple

­W solicitar clave de acceso

­D binddn Nombre Distinguido (dn) a utilizar

­h anfitrión Servidor LDAP a acceder

­f fichero  fichero a utilizar

ldapadd ­x ­W ­D 'cn=Manager, dc=trunkl, dc=com' ­h 127.0.0.1 ­f base.ldif

Una vez hecho lo anterior, se podrá comenzar a poblar el directorio con datos. 

Lo primero será importar los grupos y usuarios existentes en el sistema. 

LDAP ­SAMBA ­ POSTFIX 1­20
4­ IMPORTACION DE USUARIOS Y GRUPOS

/usr/share/openldap/migration/migrate_group.pl /etc/group group.ldif

/usr/share/openldap/migration/migrate_passwd.pl /etc/passwd passwd.ldif

ldapadd ­x ­W ­D 'cn=Administrador, dc=su­red­local, dc=com' ­h 127.0.0.1 ­f group.ldif

ldapadd ­x ­W ­D 'cn=Administrador, dc=su­red­local, dc=com' ­h 127.0.0.1 ­f passwd.ldif

5­ Comprobaciones.

La siguiente comprobación verifica que directorios disponibles hay en el servidor 127.0.0.1.

ldapsearch ­h 127.0.0.1 ­x ­b '' ­s base '(objectclass=*)' namingContexts

ldapsearch ­x ­b 'dc=trunk,dc=com' '(objectclass=*)'

ldapsearch ­x ­b 'uid=fulano,ou=People,dc=trunk,dc=com'

ldapsearch ­x ­b 'dc=trunk,dc=com'

LDAP ­SAMBA ­ POSTFIX 1­21
 UNIDAD 4
 INTEGRACION DE SAMBA­LDAP

LDAP ­SAMBA ­ POSTFIX 1­22
1­  Copiar schema

    

      cp /usr/share/doc/samba­3.0.10/LDAP/samba.schema /etc/openldap/schema/

2­ Agregar schemas requeridos

   

   vi /etc/openldap/sldap.conf

   include         /etc/openldap/schema/samba.schema

   include         /etc/openldap/schema/openldap.schema

Configurando Samba­TOOLS

SAMBA­TOOLS (prove los comandos para utilizar ldap)

LDAP ­SAMBA ­ POSTFIX 1­23
INSTALAR samba­tools

   apt­get install smbldap­tools

1­ vi /etc/smbldap­tools/smbldap_bind.conf

   slaveDN="cn=Manager,dc=trunk,dc=cl"11

   slavePw="hola"

   masterDN="cn=Manager,dc=trunk,dc=cl"

   masterPw="hola"

2­ vi /etc/smbldap­tools/smbldap.conf

   ldapTLS="0"  (capa de tranparte para segurirada cambiar de 1 a 0)

   suffix="dc=trunk,dc=cl"

   hash_encrypt="CRYPT" algoritomo que utiliza para encriptar password dovecot usa solo crypt

   userLoginShell="/bin/bash" cuando creamos usuario por defecto

   defaultMaxPasswordAge="9999" cambiar de 45 a 9999  (por defecto 45 dias)

3­Poblar la Base deja el arbol listo para usar.

   # smbldap­populate

   puede ser cualquier password

LDAP ­SAMBA ­ POSTFIX 1­24
COMANDOS SAMABA­TOOLS

A­smbldap­useradd juan  (agrega un nuevo usuario.)

   Distintas opciones:

  ­a    is a Windows User (otherwise, Posix stuff only)

  ­w    is a Windows Workstation (otherwise, Posix stuff only)

  ­u    uid

  ­g    gid

  ­G    supplementary comma­separated groups

  ­n    do not create a group

  ­d    home

  ­s    shell

  ­c    gecos

  ­m   creates home directory and copies /etc/skel

  ­A    can change password ? 0 if no, 1 if yes

  ­B    must change password ? 0 if no, 1 if yes

  ­C    sambaHomePath (SMB home share, like '\\PDC­SRV\homes')

  ­D    sambaHomeDrive (letter associated with home share, like 'H:')

  ­F    sambaProfilePath (profile directory, like '\\PDC­SRV\profiles\foo')

  ­N    canonical name

    

LDAP ­SAMBA ­ POSTFIX 1­25
   Ejemplo:

       smbldap­useradd.pl ­a ­m ­s /bin/bash ­d /home/trunk ­c “Admin trunk”  ­G admin trunk 

       (agrega al usuartio “trunk” e inmediatamente se hace que pertenezca al grupo “admin”)

B­ smbldap­usershow.pl     muestra la información de un usuario.

C­ smbldap­usermod.pl ­s /bin/false trunk (cambia el shell del usuario “trunk”)

D­ smbldap­userdel.pl ­r  trunk (borra el usuario y sus carpetas)

E­ smbldap­passwd.pl trunk (asigna el password al usuario “truk”)

F­ smbldap­groupadd.pl Taller (crea el grupo “Taller”)

G­ smbldap­groupshow.pl Taller muestra la información de un grupo.

H­ smbldap­groupmod.pl ­m trunk Taller (agrega el usuario “trunk” al grupo “Taller”)

I­ smbldap­groupmod.pl ­x tru nk Taller (elimina el usuario “trunk” del grupo “Taller”)

J­ smbldap­groupdel.pl Taller (borra el grupo “Taller”)

LDAP ­SAMBA ­ POSTFIX 1­26
CONFIGURADNO SAMBA CON SOPORTE LDAP

El objetivo es implantar un controlador de dominio Windows que obtenga la información de  los 
usuarios de un servidor LDAP, para ofrecer la posibilidad a los clientes Windows que inicien sesión 
en el dominio. 

Por tanto habrá que instruir al servidor Samba que lea los usuarios de la base de datos LDAP.

Un fichero de configuración apropiado para conseguir dicho objetivo sería el siguiente:

vi  /etc/samba/smb.conf

[global]

        unix charset = LOCALE

        workgroup = TRUNK

        netbios name = groucho

        passdb backend = ldapsam:ldap://127.0.0.1

        username map = /etc/samba/smbusers

        log level = 2

        syslog = 0

        log file = /var/log/samba.log

        max log size = 50

        smb ports = 139 445

        name resolve order = hosts wins bcast

        wins server = 158.42.250.200

        time server = Yes

        show add printer wizard = No

        add user script = /usr/sbin/smbldap­useradd ­a ­m '%u'

LDAP ­SAMBA ­ POSTFIX 1­27
        delete user script = /usr/sbin/smbldap­userdel ­r %u

        add group script = /usr/sbin/smbldap­groupadd ­p '%g'

        delete group script = /usr/sbin/smbldap­groupdel '%g'

        add user to group script = /usr/sbin/smbldap­groupmod ­m '%u' '%g'

        delete user from group script = /usr/sbin/smbldap­groupmod ­x '%u' '%g'

        set primary group script = /usr/sbin/smbldap­usermod ­g '%g' '%u'

         add machine script = /usr/sbin/smbldap­useradd ­w '%u

        passwd program = /usr/sbin/smbldap­passwd '%u'

        logon script = scripts\logon.bat

        logon path = \\%L\profiles\%U

        logon drive = X:

     domain logons = Yes

     preferred master = Yes

     ldap admin dn = cn=root,dc=trunk,dc=cl

     ldap user suffix = ou=Users

     ldap group suffix = ou=Groups

     ldap machine suffix = ou=Computers

     ldap idmap suffix = ou=Idmap 

     ldap passwd sync = Yes

     ldap suffix = dc=dsic2,dc=upv,dc=es

  

     idmap backend = ldap:ldap://127.0.0.1

LDAP ­SAMBA ­ POSTFIX 1­28
        idmap uid = 10000­20000

        idmap gid = 10000­20000

        printer admin = Administrator

        map acl inherit = Yes

        printing = cups

        printcap name = CUPS

[netlogon]

        comment = Network Logon Service

        path = /var/lib/samba/netlogon

        guest ok = Yes

        locking = No

                                                                                

[profiles]

        comment = Profile Share

        path = /var/lib/samba/profiles

        read only = No

        profile acls = Yes

                                                                                

[print$]

        comment = Printer Drivers

        path = /var/lib/samba/drivers

        browseable = yes

LDAP ­SAMBA ­ POSTFIX 1­29
        guest ok = no

        read only = yes

        write list = Administrator

EXPLICACION DEL ARCHIVO DE CONFIGURACION

En el fichero de configuración aparecen una serie de directivas que hacen mención a la configuración 
LDAP.

    1­ passdb backend = ldapsam:ldap://127.0.0.1

    Esta directiva indica cual es la base de datos donde almacenar la información de cuentas 

    (usuarios, máquinas y grupos). 

    Los valores que puede tomar son: tdbsam, ldapsam, mysql, XML.

    2­ ldap admin dn = cn=root,dc=trunk,dc=es

       Aquí indicamos cual es el administrador del servicio de directorio.

    

    3­ ldap user suffix = ou=Users

       Define la Unidad Organizativa donde almacenar cuentas de usuario. 

       La ubicación de esta OU será relativa a la raíz del directorio.

   

    4­ ldap group suffix = ou=Groups

       Define la Unidad Organizativa donde almacenar cuentas de grupo. 

       La ubicación de esta OU será relativa a la raíz del directorio.

    

LDAP ­SAMBA ­ POSTFIX 1­30
    5­ ldap machine suffix = ou=Computers

       Define la Unidad Organizativa donde almacenar cuentas de máquina. 

       La ubicación de esta OU será relativa a la raíz del directorio.

    6­ El único parámetro que no aparece en el fichero de configuración y que es necesario para que el 

       administrador pueda llevar a cabo las operaciones necesarias sobre el servidor, es la contraseña 

       que le permita autentificarse.

       En vez de definirlo en el fichero /etc/samba/smb.conf se almacena en un fichero especial con 
un formato 

       particular y que se denomina /etc/samba/secrets.tdb. 

       El siguiente comando permite introducir esa contraseña en el fichero:

       # smbpasswd ­w contraseña

       Dicha contraseña debe ser la misma que aparece en el fichero de configuración del servidor 

       LDAP (/etc/openldap/slapd.conf).

 7­ Comprobar   

         #  smbclient ­L localhost ­U%

         #  net getlocalsid

       Si las cosas han funcionado bien, deberíamos obtener información sobre el dominio y el SID del 
mismo.

       SID for domain DSIC2 is: S­1­5­21­3504140859­1010554828­2431957765

LDAP ­SAMBA ­ POSTFIX 1­31
    8­ Crear objetos en el dominio. 

       Para ello nos basaremos en las utilidades que se instalaron a la hora de crear el servicio de 

       directorio (smbldap­tools). 

       Existen diferentes scripts que nos permitirán añadir, modificar y borrar usuarios, grupos y 
maquinas 

       en el dominio par que tanto clientes Windows como Linux puedan autentificarse. 

       Estos mismos scripts se utilizan para que automáticamente una máquina se dé de alta en el 
dominio.

add user script = /usr/sbin/smbldap­useradd ­a ­m '%u'

delete user script = /usr/sbin/smbldap­userdel ­r %u

add group script = /usr/sbin/smbldap­groupadd ­p '%g'

delete group script = /usr/sbin/smbldap­groupdel '%g'

add user to group script = /usr/sbin/smbldap­groupmod ­m '%u' '%g'

delete user from group script = /usr/sbin/smbldap­groupmod ­x '%u' '%g'

set primary group script = /usr/sbin/smbldap­usermod ­g '%g' '%u'

add machine script = /usr/sbin/smbldap­useradd ­w '%u

passwd program = /usr/sbin/smbldap­passwd '%u'

LDAP ­SAMBA ­ POSTFIX 1­32
PASOS PARA AGREGAR UN NUEVO GRUPO Y COMPARTIR SU DIRECTORIO POR SAMBA

1­ Crear el grupo:

smbldap­groupadd.pl Prueba

2­ Crear la carpeta del grupo:

mkdir /home/samba/Prueba

3­ Compartir la carpeta del grupo:

Editar el arcivo /etc/samba/smb.conf

        [Prueba]

             comment = Archivos comunes de Prueba

             public = no

             browseable = yes

             writable = yes

             create mode = 0770

             path = /home/samba/Prueba

             write list = prueba

4­ Reiniciar samba:

service smb restart

LDAP ­SAMBA ­ POSTFIX 1­33
5­ Dar los permisos a la carpeta:

chown ­R root.Prueba /home/samba/Prueba

chmod ­R 2770 /home/samba/Prueba

6­ Crear el(los) usuario(s) que pertenezcan a ese grupo:

 smbldap­useradd.pl ­a ­m ­s /bin/bash ­d /home/jsabino ­c “Juan P. Sabino”  ­G Prueba jsabino

RESPALDANO LDAP

Ejecute el sigueitne comando

Paso 1:

    ldapsearch ­x > resapaldo

Paso 2:

       vi respaldo 

         A ­borar la cabecera que esta comentada

         B­ borrar desde # search result hasta el final

RESTAURAR BASE LDAP

ldapadd ­x ­v ­D "cn=Manager,dc=trunk,dc=cl" ­W ­f /home/resapaldo

ingresar password de manager

LDAP ­SAMBA ­ POSTFIX 1­34
 UNIDAD 5
 LDAP ­ POSTFIX

LDAP ­SAMBA ­ POSTFIX 1­35
Esquema para el directorio LDAP

El esquema que se utilizará para el directorio LDAP será un árbol cuya la raíz será: dc=trunk,dc=cl, de 
la cual colgarán tres organizationalUnit que almacenarán toda la información necesaria:

• “people”: la cual contendrá información sobre las cuentas de usuario. Aquí se almacenarán todos los 
datos obligatorios de las cuentas: direcciones de correo electrónico, directorio Maildir, etc.

• “groups”: almacenará la información relativa a grupos de usuarios.

• “postfix”: que contendrá la información necesaria para Postfix. En esta rama se creará una rama hija 
para el almacén de los alias de correo, de manera que se puedan tener varias direcciones que apunten a 
una misma cuenta o a otra cuenta externa.

Plantilla LDIF

A continuación se mostrará una plantilla que podría haberse empleado para la generación de las unidades 
organizacionales descritas anteriormente:

Plantilla LDIF para la creación de las unidades organizacionales: postfix, alias, people y groups
#ou=people,dc=trunk,dc=cl
dn:ou=people,dc=gsr,dc=pt
objectClass: organizationalunit
ou: people

#ou=groups,dc=trunk,dc=cl
dn:ou=groups,dc=gsr,dc=pt
objectClass: organizationalunit
ou: groups

#ou=postfix,dc=trunk,dc=cl
dn:ou=postfix,dc=gsr,dc=pt
ou: postfix
objectClass: top
objectClass: organizationalUnit
userPassword: {CRYPT}****************

#ou=alias,ou=postfix,dc=trunk,dc=cl
dn:ou=alias,ou=postfix,dc=gsr,dc=pt
ou: alias
objectClass: top
objectClass: organizationalUni

Añadiendo una plantilla LDIF con ldapadd

LDAP ­SAMBA ­ POSTFIX 1­36
$ /usr/bin/ldapadd ­x ­D "cn=admin,dc=trunk,dc=cl" ­W ­h gsr.pt  ­f organizationalunits.ldif

Enter LDAP Password: [clave]

adding new entry "ou=people,dc=trunk,dc=cl"

adding new entry "ou=groups,dc=trunk,dc=cl"

adding new entry "ou=postfix,dc=trunk,dc=cl"

adding new entry "ou=alias,ou=postfix,dc=trunk,dc=cl"

Directorio para el almacén de correos
Las cuentas de correo tendrán su buzón de correo bajo el directorio /home/vmail/$user/Maildir, donde “$user” se 
sustituirá por el nombre del usuario.

Todos los usuarios de correo pertenecerán al grupo vmail, por lo que si este grupo no existe en su 
sitema, tendrá que crearlo. A continuación se presenta la plantilla LDIF necesaria para añadir el grupo “vmail” al 
directorio LDAP:

Plantilla LDIF para el grupo “vmail”

# Entry 1: cn=vmail,ou=groups,dc=trunk,dc=cl
dn:cn=vmail,ou=groups,dc=gsr,dc=pt
cn: vmail
gidNumber: 10004 
objectClass: top
objectClass: posixGroup

Creación del directorio para los usuarios de correo
# /bin/mkdir ­vp ­m 2755 /home/vmail
mkdir: se ha creado el directorio `/home/vmail'
# /bin/chown ­v root.vmail /home/vmail/
cambiado el propietario de `/home/vmail/' a root:vmail

LDAP ­SAMBA ­ POSTFIX 1­37
Como los usuarios de correo van a ser usuarios del sistema, pero sin acceso a la shell, en 
principio, tienen asociado un directorio home, cuyo path será: /home/vmail/$user ($user se 
corresponde con el nombre del usuario). 

Por este motivo, se va a añadir al directorio /etc/skel/ un archivo de recursos para 
procmail (programa encargado del repardo de correos de los usuarios) y el directorio bajo el cual se 
van a almacenar los correos de los usuarios en formato Maildir. 

El siguiente ejemplo muestra como hacerlo:

Preparando el directorio /etc/skel/
# /bin/echo ­ne "PATH=/usr/bin:/bin:/usr/local/bin:.\n\
MAILDIR=\$HOME/Maildir\nDEFAULT=\$MAILDIR/" > /etc/skel/.procmailrc 
# /usr/bin/maildirmake /etc/skel/Maildir

    En esta línea se define la localización del directorio donde procmail va a almacenar los correos de los 
usuarios en formato Maildir.

   Ahora el sistema ya se encuentra preparado para la correcta creación del home de los usuarios de correo.

Preparando OpenLDAP para el soporte de correo
OpenLDAP necesita un esquema específico para poder manejar información acerca del correo electrónico, este 
esquema se encuentra en el paquete courier­ldap, por lo que se procederá a su instalación:

Instalación del paquete courier­ldap

# apt­get install courier­ldap courier­authdaemon courier­base
Ahora que ya se encuentra instalado el paquete courier­ldap, se procederá a copiar el esquema necesario para 
dar soporte de correo al directorio LDAP al directorio de esquemas de OpenLDAP, como se muestra a 
continuación:

cp ­v /usr/share/doc/courier­ldap/authldap.schema /etc/ldap/schema/
chown ­v slapd.slapd /etc/openldap/schema/authldap.schema
chmod ­v 640 /etc/openldap/schema/authldap.schema

LDAP ­SAMBA ­ POSTFIX 1­38
Agregar schemas requeridos
    vi /etc/openldap/sldap.conf

    include         /etc/openldap/schema/authldap.schema

Adición de un usuario de correo

En esta sección se verá como añadir un usuario de correo al directorio LDAP. En esta ocasión se 
hará uso de las herramientas de consola que provee el paquete ldap­utils. Para ello, se creará un 
archivo ldif con la siguiente estructura:

dn:uid=user,ou=people,dc=gsr,dc=pt
uid: user
cn: Nombre
sn: Apellidos
userPassword: {CRYPT}******** 
loginShell: /bin/false 
uidNumber: 10001
gidNumber: 10004 
homeDirectory: /home/vmail/user 
shadowMin: ­1
shadowMax: 999999
shadowWarning: 7
shadowInactive: ­1
shadowExpire: ­1
shadowFlag: 0
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
objectClass: CourierMailAccount 
mail: [email protected] 
mailbox: Maildir/ 
quota: 0 

LDAP ­SAMBA ­ POSTFIX 1­39
Para encriptar la clave con el algoritmo de hash CRYPT, se ha utilizado la herramienta slappasswd 
que provee el paquete ldap­utisl. El proceso de generación ha sido el siguiente:
slappasswd ­v ­u ­h {CRYPT}
New password: [clave]
Re­enter new password: [clave]
{CRYPT}u8.2mAF.3QmIQ

dición de un usuario con el comando ldapadd
$ /usr/bin/ldapadd ­x ­D "cn=admin,dc=trunk,dc=cl" ­W ­h  trunk.cl ­f 
severa.ldif
Enter LDAP Password: [clave]
adding new entry "uid=severa,ou=people,dc=trunk,dc=cl"

Creación del directorio HOME para los nuevos usuarios..

Creación de un alias de correo

Dirección de destino. Se puede corresponder con una dirección virtual de alguno de los 
dominios virtuales en su poder o una en otro dominio. Si existe más de una línea con el 
atributo maildrop, el mensaje que llegue a la cuenta mail se enviará a todas las direcciones 
especificadas.

Un ejemplo podía ser el siguiente:
dn: [email protected],ou=alias,ou=postfix,dc=gsr,dc=pt
cn: Liviana
mail: [email protected]
maildrop: [email protected]
sn: Sanches
objectClass: couriermailalias
objectClass: inetOrgPerson
objectClass: Person

Adición de un alias con el comando ldapadd
/usr/bin/ldapadd ­x ­D "cn=admin,dc=trunk,dc=cl" ­W ­h  trunk.cl ­f test.ldif
Enter LDAP Password: [clave]
adding new entry "[email protected],ou=alias,ou=postfix,dc=trunk,dc=cl"

LDAP ­SAMBA ­ POSTFIX 1­40
Modificación de la configuración de Postfix

Configuración de los alias de correo

Como los alias de correo están almacenados en el directorio LDAP hay que decirle a Postfix donde y como ha 
de realizar las búsquedas. Cuando se especifica: ldap:nombre, nombre va a ser el prefijo que se va a utilizar en 
una serie de variables de Postfix para especificar la configuración e interrogación de LDAP. De esta forma, para 
la sentencia ldap:nombre, se deberán definir las siguientes opciones:

• nombre_server_host: servidor LDAP

• nombre_search_base: base de las búsquedas en LDAP

• nombre_query_filter: filtro para la búsqueda

• nombre_result_attribute: atributos que se quieren leer de los resultados de la búsqueda

• nombre_bind: ¿es precisa la autentificación?. En este caso no es precisa, ya que la parte a consultar 
en el directorio LDAP es accesible anónimamente

De esta forma, por ejemplo, para la configuración de los alias de correo, se tendría una configuración como:

#Alias virtuales

virtual_maps = ldap:valiases
valiases_server_host = trunk.cl
valiases_search_base = ou=alias,ou=postfix,dc=trunk,dc=pt
valiases_query_filter = (&(mail=%s)(objectClass=CourierMailAlias))
valiases_result_attribute = maildrop
valiases_bind = no

 Configuración de Postfix para la entrega local

También se desea que el correo local sea administrado por Postfix, de forma que hay que indicárselo 
en su archivo de configuración. A continuación se verá la forma de hacer esto:

local_transport = local
mydestination = $myhostname $localhost.$mydomain localhost.trunk.cl
local_recipient_maps = unix:passwd.byname $alias_maps

Esto sería suficiente para la realización de la entrega local. 

LDAP ­SAMBA ­ POSTFIX 1­41

También podría gustarte