Soy Oscar Mas y hoy os voy a explicar una funcionalidad, que muchos de nuestros clientes nos solicitan. Cuando nuestro sistema de Zimbra, bloquea una cuenta de correo a consecuencia de equivocarse consecutivamente de password, ya sea por un ataque o por descuido.
Nuestro sistema bloquea la cuenta y no nos informa de lo sucedido hasta que nos llama el usuario final. Lo que vamos a ver, es el comando “zmauditswatch”, el cual nos informará por email, cuando se bloquea una cuenta de correo. Cabe destacar que esta funcionalidad no viene habilitada por defecto en nuestros sistema de Zimbra.
Lo primero que haremos, es indicarle al sistema una dirección de correo electrónico, en la cual se enviaran los mensajes, que nos indicaran que una de nuestras cuentas de correo ha sido bloqueada y posteriormente, arrancaremos el demonio.
[syntax type=”php”]
[zimbra@zimbra ~]$ zmlocalconfig -e [email protected]
[zimbra@zimbra ~]$ zmauditswatchctl start
[zimbra@zimbra ~]$ zmauditswatchctl status
[/syntax]
Para verificar que ha arrancado sin problemas, podremos ver el log en el fichero: /opt/zimbra/log/zmauditswatch.out
Valores por defecto que vienen por defecto son los siguientes:
[syntax type=”php”]
zimbra_swatch_ipacct_threshold=10
zimbra_swatch_acct_threshold=10
zimbra_swatch_ip_threshold=20
zimbra_swatch_total_threshold=100
[/syntax]
Los cuales, los podemos modificar a nuestro antojo
[syntax type=”php”]
[zimbra@zimbra ~]$ zmlocalconfig -e zimbra_swatch_ipacct_threshold=10
[zimbra@zimbra ~]$ zmlocalconfig -e zimbra_swatch_acct_threshold=15
[zimbra@zimbra ~]$ zmlocalconfig -e zimbra_swatch_ip_threshold=20
[zimbra@zimbra ~]$ zmlocalconfig -e zimbra_swatch_total_threshold=60
[/syntax]
A consecuencia, de que este demonio no arranca por defecto con nuestro sistema, nos descargaremos el script de inicio. El cual lo ubicaremos en nuestro runlevel, para cuando rebotemos el equipo, el demonio arranque de manera automática.
[syntax type=”php”]
[root@zimbra ~]# cd /usr/local/src/
[root@zimbra src]# wget https://wiki.zimbra.com/images/d/d9/Zmauditswatch.tar
[root@zimbra src]# tar xvf Zmauditswatch.tar
[root@zimbra src]# cp zmauditswatch.txt /etc/rc.d/init.d/zmauditswatch
[root@zimbra src]# chmod 755 /etc/rc.d/init.d/zmauditswatch
[root@zimbra src]# systemctl enable zmauditswatch
[/syntax]
Los mensajes que nos envía el sistema indicandono que se ha bloqueado una cuenta, están ya predefinidos y los podemos cambiar a nuestro antojo, siempre y cuando conservemos las variables:
[syntax type=”php”][root@zimbra ~]# cat /opt/zimbra/conf/auditswatchrc.in[/syntax]
Para verificar el funcionamiento, simplemente hemos de superar el umbral de fallos, indicado anteriormente:
Una vez pasado el umbral, el sistema nos enviará un mail. Os dejo una captura del mensaje que recibiremos, cuando nuestro sistema bloquee una cuenta de correo:
Wiki Oficial de Zimbra – https://wiki.zimbra.com/wiki/Zmauditswatch





Excelente, siempre se aprenden cosas nuevas sobre Zimbra. Gracias.
Perfecto! Justo lo que necesitaba! Sois unos cracks!
Mejoras para el wiki:
1) ¿Cómo se aplica en un servidor multi server? ¿Sólo en el logger? ¿En todos los servers?
2) ¿Cómo pones ips como excepciones ?
3) ¿Puede ser que al wiki le falte el detalle de comentar que el script bloquea cuentas? No sé, me tendré que mirar el código fuente pero yo diría que este programa no bloquea si no que simplemente avisa. Es decir que el artículo dónde dice : “Los mensajes que nos envía el sistema indicándonos que se ha bloqueado una cuenta” debería ser: “Los mensajes que nos envía el sistema indicándonos que una cuenta no ha podido hacer login correctamente”. ¿Podéis confirmarme la sospecha?
¡Muchísimas gracias! Desconocía este detalle. Es nuevo de las 8.0.X, ¿No?
Saludos Adrian,
zmauditswatch lleva desde 6.0.x mas o menos. Al final envia la alarma y me parece recordar que bloquea tambien.
Para el resto de preguntas, tengo que ojear un poco mas.
Un saludo
La otra duda que tengo es que, de serie, en los servidores de Zimbra ya conocemos que hay una opción para bloquear a los 10 intentos fallidos de login en menos de hora que dura más o menos una hora.
Me pregunto si es esta opción la que activa o desactiva con unos parametros por defecto zmauditswatch o si realmente estamos hablando de otro programa/script que se ejecuta por debajo.
Gracias.
Amigo para hacer eso, utiliza fail2ban
el script va genial, en un entorno multiserver se instala en el servidor que gestione el frontend java de zimbra, suele ser el mailbox server.
Es una muy buena medida defensiva pero sólo previene de ataques por smtp, en caso de intentos de login en el portal web de zimbra, la combinación ip – usuario hace que bloquee al usuario legítimo. Hay alguna manera de cambiarlo a X-Origin-IP ? es decir la ip del usuario que conecta a webmail?
¿Cómo se configura en Centos 7 el arranque automático?
En La Wiki aparece solamente para Centos 6
Buenas tardes. Excelente post.
Tengo un inconveniente al correr el servicio me sale este error en el zmauditswatch.out: /opt/zimbra/bin/zmauditswatchctl: line 107: /opt/zimbra/libexec/auditswatch: No
such file or directory
Al buscar ese archivo, efectivamente no existe en mi instalación de zimbra. Utilizo la versión 8.7 Open Source sobre CentOS 7
Por favor si alguien podría ayudarme.
Hola buenas tardes.
Me sucede lo mismo que a Julio. Estoy en el proceso de migracion de 8.6 a 8.7, en el 8.6 funciona sin problema, al realizar las pruebas en el zimbra 8.7 en el log aparece que no encuentra el archivo o directorio. Me di cuenta que si cambia la ubicacion de los servicios en la instalacion del zimbra 8.7, esperemos en breve nos puedas ayudar con una guia actualizada de que hacer despues de instalar Zimbra 8.7, ya que siguiendo el otro tuto no aplica del todo.
Saludos y excelente pagina.
Saludos Alexander, por ahora es un bug conocido en 8.7, por lo que no hay solución de momento en 8.7.
Un saludo
https://bugzilla.zimbra.com/show_bug.cgi?id=106053
donde puedo ver los ip bloqueados que hace este scrip?
como puedo sacar de la lista de bloqueo?
Saludos Juan.
De las pruebas y trabajos que realizado con zimbra he podido verificar que el zmauditswatchctl no bloquea la dirección IP, este script solo te notifica cuando una cuenta se ha bloqueado por inicios de sesión fallidos. La funcionalidad que bloquea la dirección IP es DoS Filter que desde zimbra 8.5 y 8.6 viene activida por defecto y que en la configuración por defecto despues de 10 intentos fallidos de inicio de sesión bloquea la dirección IP y se muestra el mesnaje “Se ha producido un servicio de error en la red”. Para sacar la ip de la lista de bloqueo lo que he probado es reiniciar el servicio mailbox (zmmailboxdctl restart) y de ser necesario he puesto la dirección IP en listas blancas empleando el comando zmprov mcf +zimbraHttpThrottleSafeIPs direccion_IP.
Buenos días,
Yo tengo registros de este tipo:
Aug 29 11:32:26 mail saslauthd[110256]: zmpost: url=’https://mail.dominio.local:7073/service/admin/soap/’ returned buffer->data=’soap:Senderauthentication failed for [[email protected]]
account.AUTH_FAILEDqtp649734728-234101:1504024346766:0c49af81d3fb0904′, hti->error=”Aug 29 11:32:26 mail saslauthd[110256]: auth_zimbra: [email protected] auth failed: authentication failed for [[email protected]]
Aug 29 11:32:26 mail saslauthd[110256]: do_auth : auth failure: [[email protected]] [service=smtp] [realm=dominio.com] [mech=zimbra] [reason=Unknown]
En el cual no aparece la IP desde donde “tratan” de acceder a una cuenta, que podría hacer para poder visualizar la IP de origen?
El log que reviso es : /var/log/zimbra.log
Nota: Dicho log sí muestra la IP origen, pero cuando ya han establecido sesión.
Hola, es posible aplicar esto en un zimbra v8.0.3?
En este link dan la solución a este problema del auditwatch, saludos.
Hola estimado. Me podrás aclarar lo siguiente.
Cuando un usuario se loguea y falla en N cantidad de intentos. Todo el rango de IP se bloquea por ende saca a las demás personas q están logueadas.
Que sucedera?.
Saludos.