Browsed by
Categoría: zimbra

Como montar un sistema de correo con Zimbra (3/6)

Como montar un sistema de correo con Zimbra (3/6)

Introducción

No es ninguna novedad que el spam y los virus son uno de los problemas que más molestan, tanto a los usuarios como a los administradores. En el mercado existen soluciones especializadas en la “lucha” contra el spam, pero si no tenemos ninguna de estas herramientas podemos activar los filtros que nos proporciona zimbra.

Vamos a dividir el capítulo de filtros antispam en 2, ya que el que os muestro hoy es algo largo y requiere de más configuración, por lo que empezaremos con el filtro policyd y en el próximo capítulo veremos otros filtros.

!Empecemos!

Policyd

Este es un filtro muy interesante que aplicará cuotas tanto en los correos entrantes como salientes. Evitará que enviemos o nos envíen mails masivos, evitando que la IP pública de nuestra conexión o servidor sea añadida a alguna lista negra.

Este filtro es recomendable ya dispongais de un filtro antispam profesional como si no. Con este filtro controlaremos, por ejemplo, los envíos que pueda hacer un equipo infectado.

Este servicio viene desactivado por defecto y no se puede activar desde el portal web. Para activarlo ejecutaremos las siguientes ordenes desde la línea de comandos

su - zimbra
zmprov ms `zmhostname` +zimbraServiceInstalled cbpolicyd
zmprov ms `zmhostname` +zimbraServiceEnabled cbpolicyd

Una vez instalado y activado verificamos que se ha instalado correctamente ejecutando

zmprov gs `zmhostname` | grep zimbraServiceInstalled

En la salida de este comando tenemos que ver una línea  como la siguiente

zimbraServiceInstalled: cbpolicyd

Para verificar que el servicio está funcionando ejecutamos

zmcbpolicydctl status

y nos debería mostrar un resultado como el siguiente

policyd is running.

La instalación y activación de este servicio modifica la configuración del servidor postfix. Para verificar que es así, ejecutamos las siguientes ordenes

postconf | grep 10031

y deberíamos ver un resultado como el siguiente

zimbra@mail:~$ postconf | grep 10031
smtpd_end_of_data_restrictions = check_policy_service inet:localhost:10031
smtpd_recipient_restrictions = check_policy_service inet:localhost:10031, reject_non_fqdn_recipient, permit_sasl_authenticated, permit_mynetworks, reject_unlisted_recipient, reject_invalid_helo_hostname, reject_non_fqdn_sender, permit
smtpd_sender_restrictions = check_policy_service inet:localhost:10031, check_sender_access regexp:/opt/zimbra/common/conf/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, permit_tls_clientcerts, check_sender_access regexp:/opt/zimbra/common/conf/tag_as_foreign.re

Si no nos aparece alguna de estas líneas podemos forzar el cambio en la configuración ejecutando

zmprov mcf +zimbraMtaRestriction "check_policy_service inet:127.0.0.1:10031"
zmlocalconfig -e postfix_enable_smtpd_policyd=yes

Ahora tenemos el servicio funcionando y el servidor postfix utilizándolo, pero no tenemos ninguna cuota creada ni asignada. Vamos a realizar las tareas necesarias para crear estas cuotas.

En primer lugar vamos a crear una carpeta en la que crearemos todo lo necesario para aplicar estas cuotas. Este paso lo ejecutaremos desde el usuario root

mkdir /opt/zimbra/scripts && chown zimbra.zimbra /opt/zimbra/scripts/

Volvemos al usuario zimbra y creamos el fichero que contendrá la sentencia SQL con las cuotas que asignaremos.

su - zimbra
vi /opt/zimbra/scripts/cuotas.sql

El contenido de este fichero es el siguiente

BEGIN TRANSACTION;
INSERT INTO "policies" VALUES(6, 'Zimbra', 0, 'Zimbra Policy', 0);
INSERT INTO "policy_members" (PolicyID,Source,Destination) VALUES(6, 'any', 'any');
INSERT INTO "quotas" VALUES (3, 6, 'Sender:user@domain', 'Sender:user@domain', 60, 'DEFER', 'Demasiados mensajes enviados en 60 segundos', 0, 'Cuota para 60 segundos', 0);
INSERT INTO "quotas" VALUES(4, 6, 'Recipient:@domain', 'Recipient:@domain', 60, 'REJECT', 'Demasiados mensajes enviados en 60 segundos', 0, 'Cuota para recepcion de dominios externos en 60 segundos', 0);
INSERT INTO "quotas_limits" VALUES(4, 3, 'MessageCount', 6, '', 0);
INSERT INTO "quotas_limits" VALUES(5, 4, 'MessageCount', 20, '', 0);
COMMIT;

Las cuotas que preparamos en este fichero va a permitir enviar un máximo de 6 mails por minuto y por usuario, y también que no recibamos más de 20 mensajes por minuto de un mismo dominio.

Antes de importar este SQL hacemos un backup de la base de datos actual

cp -ra /opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb /opt/zimbra/scripts/cbpolicyd.sqlitedb

Si queremos excluir alguna IP de este control podemos hacerlo añadiendo la siguiente línea al script

INSERT INTO policy_group_members (PolicyGroupId,Member,Disabled,Comment) VALUES(3,'172.16.4.10',0,'Servidor confiable');

Una vez tenemos el backup de la base de datos, vamos a importar el contenido del fichero SQL a la base de datos

sqlite3 /opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb < /opt/zimbra/scripts/cuotas.sql

Policyd dispone de otros módulos para controlar el spam, pero los vamos a desactivar porque utilizaremos los propios de Zimbra. Adaptamos la configuración para cargar únicamente el módulo de cuota y modificar el nivel de log

zmlocalconfig -e cbpolicyd_log_detail=modules,tracking,policies; zmlocalconfig -e cbpolicyd_module_accesscontrol=1 cbpolicyd_module_checkhelo=0 cbpolicyd_module_checkspf=0 cbpolicyd_module_greylisting=0 cbpolicyd_module_quotas=1
zmlocalconfig -e cbpolicyd_log_level=3

y verificamos el resultado con

zmlocalconfig | grep -i cbpolicy

Ya tenemos la configuración preparada y solo nos queda reiniciar los servicios

zmcbpolicydctl restart && zmmtactl restart

Nos aseguramos que el servicio funciona correctamente con

zmcbpolicydctl status

Pruebas

Solo nos queda verificar que las cuotas funcionan correctamente. Para ello accederemos al webmail de Zimbra con alguno de los usuarios que esté funcionando. Una vez dentro enviaremos más de 5 mensajes en menos de 1 minuto. Si todo ha funcionado correctamente, al intentar enviar el quinto mensaje nos aparecerá el siguiente mensaje

En el log /opt/zimbra/log/cbpolicyd.log podemos ver como hemos superado la quota

[2017/03/06-21:24:08 - 6814] [CORE] INFO: module=Quotas, action=defer, host=127.0.0.1, helo=mail.eslinux.org, from=usuari2@eslinux.org, to=usuari1@eslinux.org, reason=quota_match, policy=6, quota=3, limit=4, track=Sender:usuari2@eslinux.org, counter=MessageCount, quota=7.88/6 (131.4%)

y en el log /var/log/mail.log podemos ver el mensaje que configuramos al configurar las cuotas

Mar 6 21:24:08 mail postfix/smtpd[5630]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.7.1 <usuari1@eslinux.org>: Recipient address rejected: Demasiados mensajes enviados en 60 segundos; from=<usuari2@eslinux.org> to=<usuari1@eslinux.org> proto=ESMTP helo=<mail.eslinux.org>

Bibliografia

Si queréis profundizar en este sistema antispam podéis consultar los siguientes enlaces

Como utilizar DNS con zimbra

Como utilizar DNS con zimbra

Introducción

En el primer capítulo de la serie “Como montar un servidor zimbra” mostraba la instalación básica. Después de pruebas con el entorno que estoy preparando, he visto problemas en la recepción de correos externos. El problema es debido a que el servidor tiene una IP privada, mientras que el DNS resuelve el nombre del servidor a la IP pública. Si el servidor zimbra tuviera directamente la IP pública no sería necesario hacer nada.

En este post trataré de explicaros como solucionar este problema con Split-DNS.

Hay que tener en cuenta que este procedimiento implica reiniciar servicios de zimbra, por lo que si el servidor está en producción, será necesario informar a los usuarios o realizar estas tareas fuera de horario laboral.

Leer más Leer más

Como montar un sistema de correo con Zimbra (2/6)

Como montar un sistema de correo con Zimbra (2/6)

Introducción

En el primer capítulo de este manual de Zimbra vimos como instalarlo en un Ubuntu Server 16.04 LTS, pero la funcionalidad dejaba mucho que desear, ya que no hicimos nada más.

En este segundo capítulo vamos a preparar una configuración para tener una base adecuada a nuestras necesidades, para luego empezar a crear cuentas de correo. Veremos las secciones en el portal de administración, pero las que yo marque aquí no tienen porqué ser las mismas que os sirvan a vosotros. Mirad con calma todas las opciones que Zimbra nos ofrece y seleccionad las que mejor cubran vuestras necesidades.

Leer más Leer más

Como montar un sistema de correo con Zimbra (1/6)

Como montar un sistema de correo con Zimbra (1/6)

Introducción

Antes de empezar con este post me gustaría comentar que no soy un experto en Zimbra. Voy a aprovechar un nuevo proyecto para ir compartiendo los avances y las experiencias con las que me iré encontrando.

Dividiré las publicaciones en los siguientes capítulos:

Es posible que vaya variando el contenido según las necesidades y lo que vaya preparando. Empecemos con el primer capítulo.

Leer más Leer más