Servidor de correo Zimbra 8.8.15 en Ubuntu 20.04 dominio real, certificado, protección y reputación de nuestro servidor + listas de correo. Parte 2/4

//Certificado Let\’s Encrypt y protegiendo nuestro servidor contra suplantación de identidad.

Aprovechando que tenemos tanto un dominio real como IP pública, vamos a generar un certificado válido para nuestro servidor Zimbra. Esto además de añadir protección a nuestro servidor, significa credibilidad y seguridad para nuestros usuarios.

Antes de comenzar por supuesto debemos tener nuestro sistema Zimbra instalado y funcionando, en la siguiente entrada podrá encontrar los pasos.

1- Certificado Let\’s Encrypt

Es importante remover cualquier indicio de certbot, aunque si hemos realizado una instalación limpia no tendremos problema:

# sudo apt remove certbot

Vamos a utilizar snap para instalar certbot, así que con los siguientes comandos instalamos y ponemos en marcha el paquete:

# sudo snap install core; sudo snap refresh core
# sudo snap install --classic certbot
# sudo ln -s /snap/bin/certbot /usr/bin/certbot

Listo, ya podemos generar nuestro certificado para el dominio en este caso ntw.nat.cu con el siguiente comando:

# sudo /snap/bin/certbot certonly --standalone --agree-tos --staple-ocsp --email admin@ntw.nat.cu -d mail.ntw.nat.cu -d webmail.ntw.nat.cu --preferred-chain \'ISRG Root X1\'

UPDATE (16-5-2023)
Para solventar el error de match:
** Verifying \'/etc/letsencrypt/live/mail.ntw.nat.cu/cert.pem\' against \'/opt/zimbra/ssl/zimbra/commercial/commercial.key\'
140489956476224:error:0607907F:digital envelope routines:EVP_PKEY_get0_RSA:expecting an rsa key:crypto/evp/p_lib.c:474:
ERROR: Certificate \'/etc/letsencrypt/live/mail.ntw.nat.cu/cert.pem\' and private key \'/opt/zimbra/ssl/zimbra/commercial/commercial.key\' do not match.

Debe generar su certificado de la siguiente forma:

sudo /snap/bin/certbot certonly --standalone --agree-tos --staple-ocsp --email admin@ntw.nat.cu -d mail.ntw.nat.cu -d webmail.ntw.nat.cu --preferred-chain \'ISRG Root X1\' --key-type rsa

Lo que hemos agregado es: –key-type rsa esto se debe a que Zimbra hace la comprobación de la llave mediante rsa. Evite otras soluciones como modificar el código de \»zmcertmgr\» para sustituir la comprobación mediante rsa, ya que en posibles actualizaciones, Zimbra volverá seguramente a establecer dicho archivo a sus valores originales y obtendrás nuevamente el error, así que lo mejor es obtener los archivos de certificado y llave como Zimbra los necesita.


Es muy importante, poner como primer dominio, el FQDN del servidor Zimbra, en este caso mail.ntw.nat.cu, luego podemos añadir otras url, por ejemplo generamos el mismo certificado para webmail.ntw.nat.cu, pero también podemos añadir otras como imap.ntw.nat.cu o smtp.ntw.nat.cu, solo es cuestión de agregarlos con el parámetro -d.

Lo siguiente es para asignar algunos permisos:

# sudo apt install acl
# sudo setfacl -R -m u:zimbra:rwx /etc/letsencrypt/

Nos logueamos como Zimbra y copiamos el privkey.pem hacia el directorio de Zimbra:

# sudo su - zimbra
# cp /etc/letsencrypt/live/mail.ntw.nat.cu/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key

Descargamos el Root X1:

# wget -O /tmp/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt

Combinamos los dos archivos:

# cat /etc/letsencrypt/live/mail.ntw.nat.cu/chain.pem /tmp/isrgrootx1.pem > /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

Aplicamos el deploy del certificado:

# /opt/zimbra/bin/zmcertmgr deploycrt comm /etc/letsencrypt/live/mail.ntw.nat.cu/cert.pem /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

Opcionalmente podemos verificar que se realizó con éxito:

# /opt/zimbra/bin/zmcertmgr viewdeployedcrt

Nos queda reiniciar los servicios de Zimbra para que todo comience a funcionar:

# zmcontrol restart
# exit

2- Verificar la configuración de mynetworks

# postconf mynetworks

Este archivo solo debe contener la direccion local, tanto para IPv4 como IPv6, y la red a la cual pertenece Zimbra, por ejemplo, si la IP de nuestro Zimbra es 192.168.1.10/24 entonces mynetworks debería contener: mynetworks = 127.0.0.0/8 [::1]/128 192.168.1.0/24.

En este caso me devuelve: mynetworks = 127.0.0.0/8 [::1]/128 152.206.85.0/24

En un servidor de correo postfix, el parámetro mynetworks declara uno o varios hosts o incluso redes enteras que no van a pasar por las reglas del servidor, entonces cualquier cliente que pertenezca a la red declarada aquí, podrá enviar correo sin autenticar entre otras cosas. Por tal motivo es necesario cerciorarse que solamente aparezca aquí la red interna del Zimbra.

3- Suplantación de identidad y envío de correo sin autentificación.

Lo siguiente lo ejecutamos con el fin de evitar la suplantación de identidad, esto significa que un usuario autenticado en el servidor, aún estando autenticado no puede enviar correo a nombre de otro. En el video sobre esta entrada veremos como se comporta esto y podrás entender mejor.

# su zimbra
zmprov mcf zimbraMtaSmtpdSenderLoginMaps proxy:ldap:/opt/zimbra/conf/ldap-slm.cf +zimbraMtaSmtpdSenderRestrictions reject_authenticated_sender_login_mismatch

Luego editamos el archivo smtpd_sender_restrictions.cf y agregamos lo siguiente justo después de: permit_mynetworks

# nano /opt/zimbra/conf/zmconfigd/smtpd_sender_restrictions.cf

permit_mynetworks, reject_sender_login_mismatch

Pasado unos minutos estos cambios surten efecto, o podemos también forzarlos reiniciando los servicios.

Ademas vamos a ejecutar los siguientes comandos que también son necesarios para el envío sin autentificación o a nombre de usuarios inexistentes en el servidor:

# zmprov mcf zimbraMtaSmtpdRejectUnlistedRecipient yes
# zmprov mcf zimbraMtaSmtpdRejectUnlistedSender yes
# zmmtactl restart
# zmconfigdctl restart

Una vez realizados todos estos pasos podemos verificar que todo funciona correctamente, a continuación les dejo algunas herramientas online que le servirá para las pruebas. Si no dispone de acceso desde internet al servidor Zimbra, siempre puede usar Telnet.

https://www.smtper.net/

https://dnschecker.org/smtp-test-tool.php

Para dudas o comentarios utilizar el grupo en Telegram o la Comunidad.

5 comentarios en “Servidor de correo Zimbra 8.8.15 en Ubuntu 20.04 dominio real, certificado, protección y reputación de nuestro servidor + listas de correo. Parte 2/4”

  1. Hola, y saludos gracias por compartir conocimiento sobre el tema de zimbra, respecto a la creciaon de los certificados tengo el siguiente error si me puedes ayudar

    certbot: error: unrecognized arguments: –preferred-chain ISRG Root X1 –key-type rsa

    no reconoce el comando de creación

    sistema operativo ubuntu 20.04
    zimbra 8.8.15

    gracias

    saludos

  2. Saludos, he seguido todos los pasos de suplantación de identidad, comprobé por los enlaces que ocurría; luego, realizando las pruebas en las url del articulo pude comprobar como efectivamente se evita que envíen correos; pero, toda mi red deja de funcionar incluido el zimbra. Por favor ayuda!!! Gracias de antemano.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio