UNIDAD
1
INTRODUCCION
LDAP SAMBA POSTFIX 11
Que es LDAP?
LDAP ("Lightweight Directory Acces Protocol", en español Protocolo Ligero de Acceso a
Directorios) es un protocolo de tipo clienteservidor para acceder a un servicio de directorio. Se usó
inicialmente como un Frontend 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 12
Funcionamiento de LDAP
El servicio de directorio LDAP se basa en un modelo clienteservidor. 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 13
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 signon para la personalización de aplicaciones.
■ Perfiles de usuarios centralizados, para permitir itinerancia ó roaming
■ Libretas de direcciones compartidas.
LDAP SAMBA POSTFIX 14
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 ecommerce) 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 15
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 16
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 multivalor. Los atributos pueden almacenar un valor único o varios.
● Replicación multimaster. Muchos de los servidores LDAP permiten que se realicen
escrituras o actualizaciones en múltiples servidores.
LDAP SAMBA POSTFIX 17
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 18
Figura 1. Como se construyen los DNs de las entradas.
LDAP SAMBA POSTFIX 19
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 110
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 111
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 112
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 113
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 114
UNIDAD 2
INSTALACION
LDAP SAMBA POSTFIX 115
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
aptget install openldap openldapclients openldapservers
Archivo principal de servidor ldap
/etc/openldap/slapd.conf
Reiniciar servicio ldap
/etc/init.d/ldap restart
LDAP SAMBA POSTFIX 116
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 117
UNIDAD 3
CONFIGURACION
LDAP SAMBA POSTFIX 118
Configuracion Basica
1 Crear password para administrador de servicio ldap
slappasswd
New password:
Reenter 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 119
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 120
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=suredlocal, dc=com' h 127.0.0.1 f group.ldif
ldapadd x W D 'cn=Administrador, dc=suredlocal, 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 121
UNIDAD 4
INTEGRACION DE SAMBALDAP
LDAP SAMBA POSTFIX 122
1 Copiar schema
cp /usr/share/doc/samba3.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 SambaTOOLS
SAMBATOOLS (prove los comandos para utilizar ldap)
LDAP SAMBA POSTFIX 123
INSTALAR sambatools
aptget install smbldaptools
1 vi /etc/smbldaptools/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/smbldaptools/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)
3Poblar la Base deja el arbol listo para usar.
# smbldappopulate
puede ser cualquier password
LDAP SAMBA POSTFIX 124
COMANDOS SAMABATOOLS
Asmbldapuseradd 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 commaseparated 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 '\\PDCSRV\homes')
D sambaHomeDrive (letter associated with home share, like 'H:')
F sambaProfilePath (profile directory, like '\\PDCSRV\profiles\foo')
N canonical name
LDAP SAMBA POSTFIX 125
Ejemplo:
smbldapuseradd.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 smbldapusershow.pl muestra la información de un usuario.
C smbldapusermod.pl s /bin/false trunk (cambia el shell del usuario “trunk”)
D smbldapuserdel.pl r trunk (borra el usuario y sus carpetas)
E smbldappasswd.pl trunk (asigna el password al usuario “truk”)
F smbldapgroupadd.pl Taller (crea el grupo “Taller”)
G smbldapgroupshow.pl Taller muestra la información de un grupo.
H smbldapgroupmod.pl m trunk Taller (agrega el usuario “trunk” al grupo “Taller”)
I smbldapgroupmod.pl x tru nk Taller (elimina el usuario “trunk” del grupo “Taller”)
J smbldapgroupdel.pl Taller (borra el grupo “Taller”)
LDAP SAMBA POSTFIX 126
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/smbldapuseradd a m '%u'
LDAP SAMBA POSTFIX 127
delete user script = /usr/sbin/smbldapuserdel r %u
add group script = /usr/sbin/smbldapgroupadd p '%g'
delete group script = /usr/sbin/smbldapgroupdel '%g'
add user to group script = /usr/sbin/smbldapgroupmod m '%u' '%g'
delete user from group script = /usr/sbin/smbldapgroupmod x '%u' '%g'
set primary group script = /usr/sbin/smbldapusermod g '%g' '%u'
add machine script = /usr/sbin/smbldapuseradd w '%u
passwd program = /usr/sbin/smbldappasswd '%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 128
idmap uid = 1000020000
idmap gid = 1000020000
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 129
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 130
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: S1521350414085910105548282431957765
LDAP SAMBA POSTFIX 131
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 (smbldaptools).
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/smbldapuseradd a m '%u'
delete user script = /usr/sbin/smbldapuserdel r %u
add group script = /usr/sbin/smbldapgroupadd p '%g'
delete group script = /usr/sbin/smbldapgroupdel '%g'
add user to group script = /usr/sbin/smbldapgroupmod m '%u' '%g'
delete user from group script = /usr/sbin/smbldapgroupmod x '%u' '%g'
set primary group script = /usr/sbin/smbldapusermod g '%g' '%u'
add machine script = /usr/sbin/smbldapuseradd w '%u
passwd program = /usr/sbin/smbldappasswd '%u'
LDAP SAMBA POSTFIX 132
PASOS PARA AGREGAR UN NUEVO GRUPO Y COMPARTIR SU DIRECTORIO POR SAMBA
1 Crear el grupo:
smbldapgroupadd.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 133
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:
smbldapuseradd.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 134
UNIDAD 5
LDAP POSTFIX
LDAP SAMBA POSTFIX 135
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 136
$ /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 137
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 courierldap, por lo que se procederá a su instalación:
Instalación del paquete courierldap
# aptget install courierldap courierauthdaemon courierbase
Ahora que ya se encuentra instalado el paquete courierldap, 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/courierldap/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 138
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 ldaputils. 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 139
Para encriptar la clave con el algoritmo de hash CRYPT, se ha utilizado la herramienta slappasswd
que provee el paquete ldaputisl. El proceso de generación ha sido el siguiente:
slappasswd v u h {CRYPT}
New password: [clave]
Reenter 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 140
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 141