Configuración de postfix para el uso de usuarios virtuales de un directorio LDAP
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).
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: posixGroupNota: 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:
|