El objetivo de esta práctica es configurar el servidor de correo postfix, para que utilice usuarios virtuales del sistema almacenados en un directorio open LDAP. Para ello vamos a seguir los siguientes puntos:

1) Instalación necesaria: En primer lugar necesitamos tener instalado el paquete postfix-ldap, que nos da la funcionalidad para que el servidor de correo utilice el servidor LDAP.


1) Instala el paquete postfix-ldap


2) Esquema para el directorio LDAP

La organización que vamos a construir en nuestro directorio es muy similar a la que hicimos en el capítulo donde estudiamos LDAP. En este caso tendríamos tres unidades organizativas:

  • Rama “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.

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

  • Rama “postfix”: que contendrá la información necesaria para Postfix. Por ejemplo dentro de esta unidad podemos crear una unidad organizativa "alias" par crear alias y redireccionamientos. (En esta práctica no vamos a implementar esta característica).


1) Utilizando el siguiente fichero ldif crea las unidades organizativas en el directorio ldap:

dn:ou=people,dc=ldap,dc=web-personal,dc=org
objectClass: organizationalunit
ou: people
dn:ou=groups,dc=ldap,dc=web-personal,dc=org
objectClass: organizationalunit
ou: groups
dn:ou=postfix,dc=ldap,dc=web-personal,dc=org
ou: postfix
objectClass: organizationalUnit

Nota 1: Si ya tienes las unidades organizativas people y groups del capitulo anterior sólo tendrás que crear la unidad organizativa postfix.

2) Comprueba la estructura del directorio con la instrucción slapcat.


3) Directorios para el almacén de correos
Las cuentas de correo tendrán su buzón de correo bajo el directorio /home/vmail/<nombre de usuario>


1) Todos los usuarios de correo pertenecerán al grupo vmail, por lo que tendremos que crear un nuevo grupo en el directorio LDAP con el siguiente fichero ldif:
dn:cn=vmail,ou=groups,dc=ldap,dc=web-personal,dc=org
cn: vmail
gidNumber: 10004
objectClass: top
objectClass: posixGroup
Nota: Elija el GID del grupo de acuerdo a la configuración de su sistema.

2) A continuación debemos crear los directorios donde se guardarán los correos:
mkdir /home/mail/felisa
chown 10001:10004 /home/vmail/felisa
chmod 2755 /home/mail/felisa

4) Configurando openLDAP para gestionar el 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-authlib-ldap.


1) Instala el paquete courier-authlib-ldap.

2) Se copian los esquemas necesarios al directorio de esquemas de LDAP (el esquema está comprimido):
zcat /usr/share/doc/courier-authlib-ldap/authldap.schema.gz > /etc/ldap/schema/authldap.schema

3) 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

Inicializamos el demonio:

/etc/init.d/slapd restart 

5) Añadir un usuario de correo


1) Vamos a añadir un nuevo usuario de correo con el siguiente fichero ldif:

dn:uid=felisa,ou=people,dc=ldap,dc=web-personal,dc=org
uid: felisa
cn: Felisa
sn: Perez Lopez
userPassword:{CRYPT}mdkQsdBAQepDU
uidNumber: 10001
gidNumber: 10004
homeDirectory: /home/vmail/felisa
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: CourierMailAccount
mail: felisa@josedomingo.web-personal.org
mailbox: felisa/
quota: 0

Fijate que el gidNumber corresponde con el grupo vmail que creamos anteriormente.


6) Modificación de la configuración de Postfix

A continuación vamos a configurar postfix para que las cuentas de correo no corresponde a usuarios locales de la máquina sino a los usuarios virtuales que hemos guardado en el directorio ldap.


1) Modifica el fichero de configuración de postfix main.cf con las siguiente líneas, que a continuación explicaremos:

virtual_mailbox_domains = josedomingo.web-personal.org
virtual_mailbox_base = /home/vmail
virtual_minimum_uid = 100

#Virtual User
virtual_mailbox_maps = ldap:vuser

vuser_server_host = 127.0.0.1
vuser_search_base = ou=people,dc=ldap,dc=web-personal,dc=org
vuser_query_filter = (&(mail=%s)(!(quota=-1))(objectClass=CourierMailAccount))
vuser_result_attribute = mailbox
vuser_bind = no
 #Virtual User uid
virtual_uid_maps = ldap:uidldap

uidldap_server_host = 127.0.0.1
uidldap_search_base = ou=people,dc=ldap,dc=web-personal,dc=org
uidldap_query_filter = (&(mail=%s)(!(quota=-1))(objectClass=CourierMailAccount))
uidldap_result_attribute = uidNumber
uidldap_bind = no
#Virtual User gid

virtual_gid_maps = ldap:gidldap

gidldap_server_host = 127.0.0.1
gidldap_search_base = ou=people,dc=ldap,dc=web-personal,dc=org
gidldap_query_filter = (&(mail=%s)(!(quota=-1))(objectClass=CourierMailAccount))
gidldap_result_attribute = gidNumber
gidldap_bind = no

Veamos los distintos parámetros:
  • virtual_mailbox_domains: Es el dominio que postfix va a utilizar como virtual, es decir los usuarios van a ser virtuales. Es necesario quitar el domiio dell parametro mydestination de la configuración.
  • virtual_mailbox_base: Es el directorio base donde va a estar el buzón de los usarios virtuales.
  • A continuación hay que indicar donde se va a encontrar los usuarios virtuales (apartado Virtual User), indicando, entre otros, la dirección del servidor ldap, la unidad organizativa donde se encuentran los usuarios y el atributo que identifica el directorio donde vamos a guardar los correos.
  • De manera similar hay que indicar donde se busca el id y el gid de los usarios virtuales.
2) Reincia el servidor postfix, y has una prueba de envio de correo a Felisa. Comprueba en el log que se ha enviado con éxito y comprueba que se ha creado el directorio /home/vmail/felisa.




Última modificación: xoves, 7 de xullo de 2016, 12:50 PM