Virtualización y Cloud Computing

Zimbra: Distribution List

A partir de la versión de Zimbra 7.1, las listas de distribución (DL), se ampliaron con funcionalidades nuevas. Una de las características más destacadas y que más utilizo, es permitir quien puede enviar mensajes a esta lista de distribución. Iremos haciéndolo por comandos, pero a su vez, lo verificaremos vía administración web. Durante todo el proceso se usaremos el comando zmprov, el cual quiere decir Zimbra Provisioning.

Para empezar, lo primeros que haremos es crear una DL con el nombre dl@ilba.cat :

[root@zimbra ~]# su – zimbra[zimbra@zimbra ~]$ zmprov cdl dl@ilba.cat
a86caf9e-e710-4168-adbb-c2da4b2f9087

Observando la administración web, nos quedaría de la siguiente manera:

Ahora tenemos que añadir algunos usuarios a la lista de distribución:

[zimbra@zimbra ~]$ zmprov adlm dl@ilba.cat nuria@ilba.cat[zimbra@zimbra ~]$ zmprov adlm dl@ilba.cat oscarmash@gmail.com[zimbra@zimbra ~]$ zmprov adlm dl@ilba.cat genis@ilba.cat[zimbra@zimbra ~]$ zmprov adlm dl@ilba.cat error@ilba.cat


Observamos que nos ha creado correctamente la lista de distribución y los miembros de la lista son correctos:

[zimbra@zimbra ~]$ zmprov gdl dl@ilba.cat
# distributionList dl@ilba.cat memberCount=4
mail: dl@ilba.cat
objectClass: zimbraDistributionList
objectClass: zimbraMailRecipient
uid: dl
zimbraCreateTimestamp: 20140216090840Z
zimbraId: a86caf9e-e710-4168-adbb-c2da4b2f9087
zimbraMailAlias: dl@ilba.cat
zimbraMailForwardingAddress: error@ilba.cat
zimbraMailForwardingAddress: genis@ilba.cat
zimbraMailForwardingAddress: nuria@ilba.cat
zimbraMailForwardingAddress: oscarmash@gmail.com
zimbraMailHost: zimbra.ilba.cat
zimbraMailStatus: enabled
members
error@ilba.cat
genis@ilba.cat
nuria@ilba.cat
oscarmash@gmail.com

Observando el resultado por la administración web, nos quedaría de la siguiente manera después de haber lanzado los comandos anteriores:

Hemos creado una cuenta errónea (error@ilba.cat) , para poder observar como podemos eliminarla desde la consola:

[zimbra@zimbra ~]$ zmprov rdlm dl@ilba.cat error@ilba.cat

Accediendo a la administración web, veremos que nos ha eliminado la cuenta de error@ilba.cat:

Ahora ya tenemos nuestra lista de distribución creada. Pero cualquier persona puede enviar un mail a esta lista y ese mail será entregado a todos las cuentas pertenecientes a esa lista de distrbución. Para limitar quien puede enviar mensajes de correo electrónico a la lista de distribución, hemos de habilitar el servicio Milter . Con el cual podremos añadir funcionalidades nuevas a la lista de distribución.

Para entender un poco más que es el Milter, os copio la entrada de la Wikipedia:

Milter (apócope para filtro de correo) es una extensión ampliamente usada en el mundo de los MTA para el procesamiento de correos. Fue desarrollado inicialmente por el proyecto sendmail bajo el nombre de Sendmail Content Management API como una API o interfaz de acceso para que software desarrollado por terceros pudiesen acceder a mensajes de correos que estuviesen siendo procesados por el Agente de Transferencia de Correo (MTA). Mediante esta API se permite al filtro examinar y modificar el contenido del mensaje y la metainformación del mismo durante la transacción SMTP.

Para habilitar el Milter, lanzamos el siguiente comando:

[zimbra@zimbra ~]$ zmprov ms `zmhostname` zimbraMilterServerEnabled TRUE

Para que se apliquen los cambios, necesitaremos reiniciar los servicios: de Mailbox, Postfix y arrancaremos los servicios del Milter ya que simplemente los hemos habilitado con el anterior comando:

[zimbra@zimbra ~]$ zmmailboxdctl restart && zmmtactl restart && zmmilterctl start
Stopping mailboxd…done.
Starting mailboxd…done.
Rewriting configuration files…done.
Stopping saslauthd…done.
Starting saslauthd…done.
/postfix-script: refreshing the Postfix mail system
Starting milter server…done.

No está de más, verificar el estado del servicio del Milter:

[zimbra@zimbra ~]$ zmmilterctl status
Milter server is running.

Observamos el puerto que está usando el Milter, que por defecto es: 7026

[zimbra@zimbra ~]$ zmprov gs `zmhostname` zimbraMilterBindPort
# name zimbra.ilba.cat
zimbraMilterBindPort: 7026

Y como no, que el servicio esté escuchando:

[zimbra@zimbra ~]$ netstat -nlpt | grep 7026
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:7026                0.0.0.0:*                   LISTEN      35223/java

Permitimos solo a oscar@ilba.cat que pueda enviar mails a la lista de distribución que hemos creado anteriormente con el nombre de dl@ilba.cat:

[zimbra@zimbra ~]$ zmprov grr dl dl@ilba.cat usr oscar@ilba.cat sendToDistList

Si quisiéramos eliminar una persona para que no pueda enviar mail a la lista de distribución, simplemente poniendo un signo de restar,  antes de sendToDistList, lo eliminaríamos. Por ejemplo:

[zimbra@zimbra ~]$ zmprov grr dl dl@ilba.cat usr oscar@ilba.cat -sendToDistList

Veremos que nos aparece, un nuevo atributo en las características de la lista de distribución, llamado zimbraACE, el cual es el ID del usuario que puede enviar mails a la lista:

[zimbra@zimbra ~]$ zmprov gdl dl@ilba.cat
# distributionList dl@ilba.cat memberCount=3
mail: dl@ilba.cat
objectClass: zimbraDistributionList
objectClass: zimbraMailRecipient
uid: dl
zimbraACE: f9bd6617-d54e-4b56-a998-05f9cdae25c6 usr sendToDistList
zimbraCreateTimestamp: 20140216090840Z
zimbraId: a86caf9e-e710-4168-adbb-c2da4b2f9087
zimbraMailAlias: dl@ilba.cat
zimbraMailForwardingAddress: genis@ilba.cat
zimbraMailForwardingAddress: nuria@ilba.cat
zimbraMailForwardingAddress: oscarmash@gmail.com
zimbraMailHost: zimbra.ilba.cat
zimbraMailStatus: enabled

members
genis@ilba.cat
nuria@ilba.cat
oscarmash@gmail.com

Aunque otra manera más sencilla, de verificar si un usuario puede enviar a esa lista de distribución por consola, es:

[zimbra@zimbra ~]$ zmprov ckr dl dl@ilba.cat oscar@ilba.cat sendToDistList

También podemos verificar, las personas que pueden enviar a un mail de correo electrónico a lista de distribución, de una manera más sencilla o incluso crearlas mediante la administración web:

Cuando creamos un mail y seleccionamos la lista de distribución, si desplegamos la lista de distribución con el signo de sumar, podremos ver todas las cuentas que tiene la lista de distribución dl@ilba.cat:

En el log, podremos observar que postfix le pasa el mensaje al Milter por el puerto 7025 y posteriormente el mensaje es enviado a los destinatarios

[root@zimbra ~]# tail -f /var/log/maillog
Feb 16 10:26:02 zimbra postfix/lmtp[12463]: A844324152F: to=<genis@ilba.cat>, relay=zimbra.ilba.cat[192.168.100.20]:7025, delay=21, delays=0.28/0.36/0.01/20, dsn=2.1.5, status=sent (250 2.1.5 Delivery OK)

Ahora solamente, nos queda probar desde el exterior la lista de distribución y  ver que sucede si una cuenta que no está permitida que envíe mensajes a esta lista de distribución, le envía un mensaje:

Y para dar el toque final, solamente nos quedará ocultar la DL en la GAL:

[zimbra@zimbra ~]$ zmprov mdl dl@ilba.cat zimbraHideInGal TRUE

Uno de los problemas que nos podemos encontrar con la lista de distribución que hemos creado anteriormente, es que la hemos hecho tan custom, que solamente el administrador puede añadir y eliminar cuentas de esta lista de distribución. Si observamos en el buzón de oscar@ilba.cat, el cual puede enviar mensajes a esta lista, no puede ni añadir ni eliminar cuentas de correo electrónico de dicha lista. De hecho ni le aparece en sus contactos:

Para solventar esta incidencia, lo que haremos es añadir a la cuenta oscar@ilba.cat en la lista de propietarios de la lista de distribución, de tal manera que pueda gestionarla sin necesidad de que nos llame cada vez que quiere hacer cambios en dicha lista:

Una vez aplicados los cambios, simplemente refrescando el navegador, podremos ver que nuestro usuario tiene acceso a la lista de distribución para poder gestionarla:

De hecho, podremos como usuario gestionar más cosas que las cuentas de correo. Os adjunto una captura que pantalla en la cual podréis ver las propiedades que puede modificar el usuario, de la lista de distribución a la cual le hemos hecho propietario:

By | 2017-02-13T17:34:49+00:00 20-02-2014|Zimbra|