4 - Configuración del soporte LDAP en Postfix (II)

[editar]
Tutorial creado por Sergio González González. Extraido de: http://es.tldp.org/Manuales-LuCAS/doc-tutorial-postfix-ldap-courier-spamassassin-amavis-squirrelmail/html-unico/smtp-postfix.html#licencia-fdl
28 de Febrero de 2006
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:

Ejemplo 2.3. Plantilla LDIF para el grupo “vmail

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

Elija el GID del grupo de acuerdo a la configuración de su sistema.

El siguiente paso es la creación del directorio que almacenará los buzones de correo de los nuevos usuarios:

Ejemplo 2.4. 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
 

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:

Ejemplo 2.5. Preparando el directorio /etc/skel/

# /bin/echo -ne "PATH=/usr/bin:/bin:/usr/local/bin:.\n\
 MAILDIR=\$HOME/Maildir\nDEFAULT=\$MAILDIR/" > /etc/skel/.procmailrc 1
 # /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:

Ejemplo 2.6. Instalación del paquete courier-ldap (primera parte)

# /usr/bin/apt-get install courier-ldap
 Leyendo lista de paquetes... Hecho
 Creando árbol de dependencias... Hecho
 Se instalarán los siguientes paquetes extras:
   courier-authdaemon courier-base
 Se instalarán los siguientes paquetes NUEVOS:
   courier-authdaemon courier-base courier-ldap
 0 actualizados, 3 se instalarán, 0 para eliminar y 9 no actualizados.
 Se necesita descargar 0B/344kB de archivos.
 Se utilizarán 1114kB de espacio de disco adicional después de desempaquetar.
 ¿Desea continuar? [S/n]
 Preconfiguring packages ...

Figura 2.16. ¿Crear directorios para la administración vía web?

¿Crear directorios para la administración vía web?

Se responde afirmativamente a esta pregunta, de forma que se creen los directorios necesarios para poder administrar la aplicación por una interfaz web (con el paquete courier-webadmin).

Figura 2.17. Nombre del directorio para el almacén de los correos en formato Maildir

Nombre del directorio para el almacén de los correos en formato Maildir

Directorio, bajo el home del usuario, donde se almacenarán los correos en formato Maildir.

Ejemplo 2.7. Instalación del paquete courier-ldap (segunda parte)

--------------------- Sourcerer Apt Watcher ---------------------
 Configure: courier-base
 -----------------------------------------------------------------
 (Leyendo la base de datos ...
 273464 ficheros y directorios instalados actualmente.)
 Desempaquetando courier-base (de .../courier-base_0.45.4-1_i386.deb) ...
 Desempaquetando courier-authdaemon (de .../courier-authdaemon_0.45.4-1_i386.deb) ...
 Desempaquetando courier-ldap (de .../courier-ldap_0.45.4-1_i386.deb) ...
 Configurando courier-base (0.45.4-1) ...
 
 Configurando courier-authdaemon (0.45.4-1) ...
 Starting Courier authdaemon: done.
 
 Configurando courier-ldap (0.45.4-1) ...
 Starting Courier LDAP alias daemon: done.
 
 

El siguiente ejemplo muestra una descripción del paquete que se acaba de instalar en el sistema, así como sus dependencias más directas:

Ejemplo 2.8. Información sobre los paquetes courier-ldap, courier-authdaemon y courier-base

# /usr/bin/apt-cache show courier-ldap courier-authdaemon courier-base
 Package: courier-ldap
 Priority: optional
 Section: mail
 Installed-Size: 260
 Maintainer: Stefan Hornburg (Racke) <racke@linuxia.de>
 Architecture: i386
 Source: courier
 Version: 0.45.4-1
 Replaces: courier-imap-authldap
 Depends: libc6 (>= 2.3.2.ds1-4), libgdbm3, libldap2 (>= 2.1.17-1), libpam0g (>= 0.76),
 courier-base (>= 0.45.4), courier-authdaemon (>= 0.45.4)
 Conflicts: courier-imap-authldap
 Filename: pool/main/c/courier/courier-ldap_0.45.4-1_i386.deb
 Size: 62014
 MD5sum: 205b66ece1774ccbf354038e05b2e8f5
 Description: Courier Mail Server - LDAP support
  This package contains support for LDAP authentication and
  LDAP-based mail aliasing.
 
 Package: courier-authdaemon
 Priority: optional
 Section: mail
 Installed-Size: 208
 Maintainer: Stefan Hornburg (Racke) <racke@linuxia.de>
 Architecture: i386
 Source: courier
 Version: 0.45.4-1
 Depends: libc6 (>= 2.3.2.ds1-4), libgdbm3, libpam0g (>= 0.76), courier-base (>= 0.45.4)
 Filename: pool/main/c/courier/courier-authdaemon_0.45.4-1_i386.deb
 Size: 51486
 MD5sum: da101bf6c9b839d2462e3da4bec49eeb
 Description: Courier Mail Server - Authentication daemon
  This package contains the authentication daemon for the
  Courier Mail Server.
 
 Package: courier-base
 Priority: optional
 Section: mail
 Installed-Size: 620
 Maintainer: Stefan Hornburg (Racke) <racke@linuxia.de>
 Architecture: i386
 Source: courier
 Version: 0.45.4-1
 Replaces: courier-debug (<< 0.44.2)
 Depends: libc6 (>= 2.3.2.ds1-4), libfam0c102, libgdbm3, perl, debconf (>= 0.5.00)
 Conflicts: courier-imap (<= 1.3.3), courier-debug (<< 0.44.2)
 Filename: pool/main/c/courier/courier-base_0.45.4-1_i386.deb
 Size: 230866
 MD5sum: 6cfa4f6dc8ac2e3feba5d50022700b6b
 Description: Courier Mail Server - Base system
  The Courier mail transfer agent (MTA) is an integrated mail/groupware
  server based on open commodity protocols, such as ESMTP, IMAP, POP3, LDAP,
  SSL, and HTTP. Courier provides ESMTP, IMAP, POP3, webmail, and mailing list
  services within a single, consistent, framework.
  .
  This package provides the functionality needed by all Debian courier packages
  like some configuration files, helper programs and the Courier TCP server
  daemon.
 
 

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:

Ejemplo 2.9. Copiando el esquema authldap.schema al directorio de esquemas de OpenLDAP

# /bin/cp -v /usr/share/doc/courier-ldap/authldap.schema /etc/ldap/schema/
 `/usr/share/doc/courier-ldap/authldap.schema' -> `/etc/ldap/schema/authldap.schema'
 # /bin/chown -v slapd.slapd /etc/ldap/schema/authldap.schema
 cambiado el propietario de `/etc/ldap/schema/authldap.schema' a slapd:slapd
 # /bin/chmod -v 640 /etc/ldap/schema/authldap.schema
 el modo de `/etc/ldap/schema/authldap.schema' cambia a 0640 (rw-r-----)

Por último se ha de añadir el nuevo esquema al archivo de configuración del demonio slapd y reiniciar el demonio. Para ello, añada la siguiente línea en la sección de definiciones de objectClass y Schemas:

include         /etc/ldap/schema/authldap.schema

Una vez hecho esto, reinicie el servidor slapd:

# /etc/init.d/slapd restart
 Stopping OpenLDAP: slapd.
 Starting OpenLDAP: slapd.

A partir de este momento, OpenLDAP ya tiene soporte para almacenar información relativa a sistemas de correo. En la siguiente sección se verá como añadir nuevos usuarios de correo al directorio LDAP.

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: usuario@dominio.com 
 mailbox: Maildir/ 
 quota: 0 
 

Clave del usuario encriptada con el algoritmo de hash CRYPT. La elección del algoritmo es crítica para el funcionamiento global del sistema. Si no se escoge este algoritmo, no se podrá autentificar más tarde en los servicios POP3 e IMAP.

 

La shell para los usuarios destinados al correo será una shell nula, es decir, no tendrán acceso al sistema; sólo podrán obtener y enviar su correo del mismo. Si en el futuro se quisiese dotar a este usuario con acceso shell, sólo habría que cambiar este atributo por una shell válida.

 

GID del grupo principal del usuario de correo. Este ha de ser el GID del grupo vmail (eche un vistazo al valor introducido en GID del grupo vmail).

 

Directorio home del usuario.

 

objectClass que especifica los atributos relacionados con el correo.

 

Correo electrónico del usuario.

 

Atributo que controla la quota del usuario. Como de momento no se va a hacer uso de este parámetro, se utilizará para controlar si una cuenta se encuentra desactivada (valor -1) o no (cualquier otro valor).

 

Ruta relativa al buzón de correo donde se almacenarán los mensajes. Se han de tener en cuenta los siguientes puntos: el directorio almacén será de la forma dominio.com/usuario/; el directorio se ha de crear antes de ser utilizado; el directorio ha de finalizar en “/” para indicar que se está trabajando con el formato Maildir.

A continuación se mostrará un ejemplo sobre como añadir un nuevo usuario al sistema. Para ello se creará un archivo con el siguiente contenido:

# Entry 1: uid=severa,ou=people,dc=gsr,dc=pt
 dn:uid=severa,ou=people,dc=gsr,dc=pt
 uid: severa
 cn: Severa
 sn: Sanches Lopes
 userPassword: {CRYPT}************ 
 loginShell: /bin/false
 uidNumber: 10001
 gidNumber: 10004 
 homeDirectory: /home/vmail/severa
 shadowMin: -1
 shadowMax: 999999
 shadowWarning: 7
 shadowInactive: -1
 shadowExpire: -1
 shadowFlag: 0
 objectClass: top
 objectClass: person
 objectClass: posixAccount
 objectClass: shadowAccount
 objectClass: CourierMailAccount
 mail: severa@gsr.pt
 mailbox: Maildir/
 quota: 0
 

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:

Ejemplo 2.10. Obtención de una clave encriptada con CRYPT

# /usr/sbin/slappasswd -v -u -h {CRYPT}
 New password: [clave]
 Re-enter new password: [clave]
 {CRYPT}u8.2mAF.3QmIQ
 

El número que aparece en esta línea se corresponde con el gid del grupo vmail añadido en el Ejemplo 2.3, “Plantilla LDIF para el grupo vmail”.

Suponiendo que el archivo donde se ha almacenado la información de la captura LDIF para Severa se denomina severa.ldif, ha de ejecutar el siguiente comando para añadir la información al directorio LDAP:

Ejemplo 2.11. Adición de un usuario con el comando ldapadd

$ /usr/bin/ldapadd -x -D "cn=admin,dc=gsr,dc=pt" -W -h  gsr.pt -f severa.ldif
 Enter LDAP Password: [clave]
 adding new entry "uid=severa,ou=people,dc=gsr,dc=pt"
 
 

La siguiente imagen muestra de forma gráfica, gracias a phpLDAPadmin, el nuevo usuario añadido al directorio LDAP:

Figura 2.18. Nuevo usuario: Severa

Nuevo usuario: Severa

Esta captura muestra la nueva entrada bajo la unidad organizacional people: severa, usuario añadido en el Ejemplo 2.11, “Adición de un usuario con el comando ldapadd”.

[editar]

2 opiniones

Curso correo.

Muy bueno.
Sistema de correo con postfix, openldap, courier ((pop3.

Muy bueno el manual. Hay alguna manera de descargarlo en algun formato pdf?.

Tutoriales relacionados con 'Sistema de correo con Postfix, OpenLDAP, Courier (POP3&&IMAP) + SSL), SASL, Spamassassin, Amavis-new y SquirrelMail'

Esta documentación muestra la forma de montar un sistema de correo con las siguientes características:... Más »

Autor y licencia de 'Sistema de correo con Postfix, OpenLDAP, Courier (POP3&&IMAP) + SSL), SASL, Spamassassin, Amavis-new y SquirrelMail'

Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.