¿Estás visitando desde Argentina?
Ingresá a Linware Argentina ⯈
Continuar en Linware Argentina ⯈
×
¿Qué estás buscando?
BUSCAR!
BLOG
Protección de Zimbra con el firewall de aplicaciones web de Sucuri
Publicada el 11/01/2023

Puede mejorar la seguridad de sus servidores Zimbra mediante el uso de un firewall de aplicaciones web (WAF). Al usar un firewall de aplicaciones web, puede agregar las siguientes protecciones a Zimbra:

  • Bloqueo geográfico, cercado geográfico
  • Bloquear o permitir direcciones IP
  • Protección de emergencia DDoS
  • Bloquear proxies anónimos
  • Bloquear los tres principales países de ataque
  • Administrar encabezados de seguridad HTTP
  • Bloqueo limitado de rutas URL

Si bien Zimbra ofrece DoSFilter , su configuración se basa en la línea de comandos y no es muy fácil de entender.

requisitos previos

Para comenzar con un firewall de aplicaciones web, primero debe instalar Zimbra y configurarlo de la manera habitual. Puede usar el instalador automático de Zimbra si desea comenzar rápidamente.

Para el nombre de host de Zimbra, no puede usar marcas comerciales (registradas), incluida Sucuri. Como esos no se pueden agregar al servicio de Sucuri.

Eventualmente, solo se podrá acceder a la interfaz web de Zimbra a través del firewall de la aplicación web y para eso deberá cambiar el DNS. Pero para la instalación inicial, puede configurar el DNS de la siguiente manera (suponiendo que su dominio sea zimbra.tech):

$ ORIGEN zimbra.tech.n@ MX 100 wafmail.zimbra.tech.n@TXT "v=spf1 a mx -todos"n_dmarc TXT "v=DMARC1; p=rechazar; fo=1"n@ CAA 0 problema "letsencrypt.org"n@ CAA 0 problema "godaddy.com"nnwaftest A [la ip de su servidor zimbra]nwafmail A [la ip de su servidor zimbra]

Tenga en cuenta los registros CAA, Let's Encrypt es utilizado por el instalador automatizado de Zimbra y GoDaddy es utilizado por Sucuri.

Puedes instalar Zimbra usando:

wget https://raw.githubusercontent.com/Zimbra/zinstaller/master/zinstaller -O /root/zinstallernchmod +x /raíz/zinstallern/root/zinstaller -p poner-una-contraseña-aquí -n waftest -t 'Europa/Londres' -an --letsencrypt y zimbra.tech

Si desea utilizar el firewall de la aplicación web con un nombre de host diferente al configurado en Zimbra, debe considerar la configuración de zimbraReverseProxyStrictServerNameEnabled . Deje esta habilitación (verdadero) si no tiene problemas.

zmprov mcf zimbraReverseProxyStrictServerNameEnabled falso

Configuración de Sucuri

Cree una cuenta para una prueba de 30 días en https://sucuri.net/website-firewall-a/free-trial/ el costo de Sucuri basic es de $10/mes al momento de escribir este artículo. 

Luego, Sucuri le pedirá que cambie su DNS para que la interfaz web de Zimbra pueda ser enviada a través del firewall de la aplicación web. Esto significa que cambia el DNS de la siguiente manera:

$ ORIGEN zimbra.tech.n@ MX 100 wafmail.zimbra.tech.n@TXT "v=spf1 a mx -todos"n_dmarc TXT "v=DMARC1; p=rechazar; fo=1"n@ CAA 0 problema "letsencrypt.org"n@ CAA 0 problema "godaddy.com"nnwaftest A [DIRECCIÓN IP PROPORCIONADA POR SUCURI]nwafmail A [la ip de su servidor zimbra]

Ahora debería poder visitar su servidor Zimbra a través del firewall de la aplicación web. Con suerte, Sucuri ha solicitado un nuevo certificado TLS y no debería tener problemas. Si es necesario, puede cargar certificados TLS a Sucuri a través del tablero.

Configuración de un cortafuegos en Zimbra

Para asegurarse de que nadie pueda eludir el firewall de la aplicación web, debe configurar un firewall de host en Zimbra. Si instaló Zimbra con el instalador automático, puede encontrar la configuración de su firewall ejecutando
iptables -L -n --line-numberscomo root:

Cadena INPUT (política DROP)nnum target prot opt ​​origen destinon1 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp indicadores: 0x3F/0x00n2 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 estado NUEVOn3 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 indicadores tcp: 0x3F/0x3Fn4 ACEPTAR todo -- 0.0.0.0/0 0.0.0.0/0n5 ACEPTAR todo -- 0.0.0.0/0 0.0.0.0/0 ctstate RELACIONADO, ESTABLECIDOn6 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143n7 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993n8 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995n9 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443n10 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465n11 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587n12 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:9071n13 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80n14 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25n15 ACEPTAR tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22n16 ACEPTAR icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8 estado NUEVO, RELACIONADO, ESTABLECIDOnnCadena ADELANTE (política ACEPTAR)nnum target prot opt ​​origen destinonnCadena SALIDA (política ACEPTAR)nnum target prot opt ​​origen destinon1 ACEPTAR todo -- 0.0.0.0/0 0.0.0.0/0n2 ACEPTAR icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 0 estado RELACIONADO, ESTABLECIDOnnChain InstanceServices (0 referencias)nnum target prot opt ​​origen destino

Como puede ver, el puerto 443 está permitido en la línea 9, puede eliminar la línea 9 ejecutando el siguiente comando. Verifique que la configuración de su puerto 443 esté en la línea 9:

iptables -D ENTRADA 9

Luego puedes permitir solo las IP's de Sucuri con los siguientes comandos:

iptables -I ENTRADA 6 -m estado --estado NUEVO -p tcp --dport 443 -s 192.88.134.0/23 -j ACEPTARniptables -I ENTRADA 6 -m estado --estado NUEVO -p tcp --dport 443 -s 185.93.228.0/22 ​​-j ACEPTARniptables -I ENTRADA 6 -m estado --estado NUEVO -p tcp --dport 443 -s 66.248.200.0/22 ​​-j ACEPTARniptables -I ENTRADA 6 -m estado --estado NUEVO -p tcp --dport 443 -s 208.109.0.0/22 ​​-j ACEPTARnguardado persistente de netfilter

Su servidor Zimbra ahora debería estar protegido por Sucuri

Problemas conocidos de Zimbra 9

Para Zimbra 9, en algunos casos, deberá agregar lo siguiente a la configuración Permitir rutas de URL en Sucuri:

^/servicio/jabón

Cómo usar Sucuri

Sucuri puede bloquear el acceso a ciertas URL con la función Bloquear rutas de URL. Esta podría ser una buena característica para mitigar las vulnerabilidades de seguridad de día cero. Sin embargo, la característica es muy limitada en lo que se ve como una coincidencia y prácticamente no se puede utilizar.

 

Ahora que uso Sucury, ¿necesito instalar parches de Zimbra?

 , Sucuri no mitiga los problemas de seguridad de Zimbra, incluso si se puede usar para mitigar un problema de seguridad como medida provisional, no es un reemplazo de las soluciones de seguridad proporcionadas por parches.

Una nota sobre el registro

En Zimbra, verá algunos cambios en /opt/zimbra/log/audit.log/opt/zimbra/log/audit.log, específicamente en audit.log en caso de un intento de inicio de sesión por parte de admin@zimbra.tech, específicamente el oip=valor:

2022-11-01 09:58:26,438 INFO [qtp758013696-432://localhost:8080/service/soap/BatchRequest] [name=admin@zimbra.tech;oip=[IP DEL CLIENTE], [IP DE SUCURI] ;ua=zclient/10.0.0_GA_4452;soapId=60a7ee51;] seguridad - cmd=Auth; cuenta=admin@zimbra.tech; protocolo=jabon

Similar para mailbox.log:

2022-11-01 11:48:04,540 INFORMACIÓN [qtp1279309678-242:https://waftest.zimbra.tech/service/soap/BatchRequest] [name=admin@zimbra.tech;mid=2;oip=[IP OF CLIENTE], [IP DE SUCURI];oproto=https;port=37866;ua=ZimbraXWebClient - GC107 (Linux)/10.0.0_GA_4452;soapId=635e8982;] jabón - (lote) SearchRequest transcurrido=30

Sin embargo, los registros del proxy Zimbra (basado en nginx) ya /opt/zimbra/log/nginx.access.logno contendrán la IP del cliente:

[IP DE SUCURI]:14420 - - [01/Nov/2022:09:58:31+0100] "OBTENGA https://waftest.zimbra.tech/modern/index.js.map HTTP/1.1" 404 1327 " -" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/107.0.0.0 Safari/537.36" "[ip internas de zimbra]"

Puede usar el inicio de sesión en tiempo real en Sucuri como reemplazo del registro de Zimbra Proxy.

 

Una nota sobre fail2ban

Si está utilizando fail2ban como se describe en la wiki , querrá desactivar la zimbra-webmailcárcel o actualizar el filtro filter.d/zimbra-webmail.confpara que coincida con la IP correcta con la configuración de Securi.

Una nota sobre Zimbra DosFilter

Si bien algunas de las funcionalidades entre el Dosfiltro de Zimbra se superponen con Sucuri, debe usar ambos y no deshabilitar el Dosfiltro de Zimbra. Porque Zimbra Dosfilter tiene la capacidad de suspender las conexiones a IP para inicios de sesión fallidos repetidos. Los inicios de sesión fallidos repetidos se muestran de la /opt/zimbra/log/mailbox.logsiguiente manera:

2022-11-01 15:56:43,386 INFO [qtp1279309678-23://localhost:8080/service/soap/BatchRequest] [] misceláneo - Acceso desde IP [CLIENT_IP], [SUCURI_IP] suspendido, por repetido inicio de sesión fallido.n2022-11-01 15:56:43,387 WARN [qtp1279309678-106:https://waftest.zimbra.tech/] [] webclient - falla del sistema: error al enviar la solicitud al servidor de destino: Servicio no disponiblencom.zimbra.common.service.ServiceException: falla del sistema: error al enviar la solicitud al servidor de destino: servicio no disponible

Tenga en cuenta que aunque la dirección IP de Securi figura en el registro, la prohibición solo se aplica a la IP del cliente. Lo que significa que Sucuri (y sus otros clientes) no están bloqueados por Dosfilter. Esto también significa que si alguien está usando 1 IP para probar contraseñas en admin@zimbra.tech y está suspendido, admin@zimbra.tech aún puede iniciar sesión con una IP diferente.

Para obtener más información sobre Zimbra Dosfilter, consulte: https://wiki.zimbra.com/wiki/DoSFilter

Ir al Blog