Servidor de correo Postfix en Sentora/Zpanel desde cero

Social

Con este post pretendo explicar como configurar un servidor de email con Postfix, Dovecot y SpamAssassin desde cero, con un panel de control Sentora o en zPanel, pese a que de todas maneras se puede aplicar con algunas diferencias en cualquier servidor con base Linux. Así que aqui os dejo esta guia para configurar cada uno de los apartados que hacen que un servidor de correo funcione correctamente y de manera segura. ¡Vamos allá!

Configurando Sentora / ZPanel

Una vez añadimos un dominio nuevo a zpanel o Sentora, tenemos que crear las zonas:
Nos vamos al apartado de Manage DNS, seleccionamos el dominio, y apretamos el botón de Create zone DNS.
Aunque nuestro servidor no se utilice como servidor de DNS, es necesario tener creadas las zonas para que resuelva correctamente.
Lo siguiente es modificar los registros DNS, sea en la pagina donde has registrado el dominio utilizando sus propios DNS, o en tu ZPanel si has indicado que es tu servidor de DNS.
Modificamos los registros DNS del dominio:

Registro A -> IP_SERVIDOR
Registro MX -> @/IP_SERVIDOR
Registros SPF: v=spf1 a mx -all

Ya podemos crear los buzones de correo que necesitemos desde el Zpanel o Sentora.

Podemos modificar las Cuotas por defecto de espacio del buzón en Admin > Module admin > Mail Config, en la opción Max Mailbox Size.

En el caso de que queramos ampliar la cuota de correo de un usuario ya creado, lo tenemos que hacer desde la base de datos MySQL, en las tablas de Postfix.

Ahora, vamos a configurar DKIM para verificar que el origen de los emails es correcto.

¿Qué és DKIM? El sistema DKIM (DomainKeys Identified Mail) es una evolución del sistema DomainKeys desarrollado inicialmente por Yahoo como un mecanismo para que un mail pueda ser validado por un destinatario comprobando de forma inequívoca que el origen del mismo es realmente el que aparece en las cabeceras del email

Para crear DKIM recomiendo seguir el siguiente tutorial en Español: -> https://www.comalis.com/ayuda/como-configurar-dkim-en-una-maquina-con-postfix

Ahora crearemos los registros DMARC en el servidor DNS. Como ya hemos creado el SPF y DKIM, será mñas sencillo.

¿Qué és DMARC? El estándar DMARC (Autenticación de mensajes, informes y conformidad basada en dominios) es el último gran avance en autenticación de correos electrónicos. … Un mensaje no será validado por DMARC si falla tanto (1) SPF o la alineación SPF como (2) DKIM o la alineación DKIM

Para crear los registros DMARC que insertaremos en el servidor de DNS, utilizaremos la siguiente herramienta de MXTOOLBOX -> https://mxtoolbox.com/DMARCRecordGenerator.aspx?

Cifrando las conexiones

Ahora, crearemos los certificados para que podamos conectarnos con el servidor de email de manera segura y cifrada.
Para ello, primero, debermos crear los certificados para el servidor de correo si no lo hemos hecho todavia. Se crean igual que para una pagina web utilizando LetsEncrypt. Sigue este tutorial -> SSL con LetsEncript
Luego, lo añadiremos en el archivo main.cf de la configuración de Postfix. Comenta las siguientes opciones sobre SMTP y TLS, y añade este fragmento de código apuntando a los certificados recién creados con LetsEncrypt:


smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtp_tls_session_cache_database = btree:$data_directory/smtp_tls_session_cache
smtpd_tls_cert_file = /etc/letsencrypt/live/tu_dominio/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/tu_dominio/privkey.pem

También añadiremos los certificados en el archivo de configuración de Dovecot: /etc/dovecot/dovecot.conf, quedando así:


ssl = yes
ssl_cert = </etc/letsencrypt/live/tu_dominio/fullchain.pem
ssl_key = </etc/letsencrypt/live/tu_dominio/privkey.pem

Aquí tenemos una guía completa para configurar Postfix con LetsEncrypt -> https://www.upcloud.com/support/secure-postfix-using-lets-encrypt/
De esta manera, al enviar un email ya no aparecerá el candado rojo en GMail, por ejemplo.

SpamAssassin

Para proteger nuestros buzones de miles de correo de SPAM, tenemos que configurar SpamAssassin para que filtre y mande a la carpeta de Junk esos correos tan molestos.
Así que vamos a instalarlo y configurarlo:

apt-get install spamassassin spamc

Una vez instalado, creamos el grupo y el usuario (sin acceso a la shell):

groupadd spamd

useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd

Creamos el directorio y cambiamos los permisos

mkdir /var/log/spamassassin
chown spamd:spamd /var/log/spamassassin

Y ahora editamos la configuración:

nano /etc/default/spamassassin

Cambiando los siguientes valores:

ENABLED=0 por ENABLED=1
CRON=0 por CRON=1
Buscamos OPTIONS y cambiamos la linea por lo siguiente:
OPTIONS=”–create-prefs –max-children 2 –username spamd \ -H ${SAHOME} -s ${SAHOME}spamd.log”

Ahora ejecutamos este comando para crear una variable con el directorio de SpamAssassin:

SAHOME=”/var/log/spamassassin/”

E iniciamos el servicio:

service spamassassin start

Ahora abrimos la configuración de Postfix:

nano /etc/postfix/master.cf

Buscamos las siguientes lineas:

smtp inet n – – – – smtpd

Y añadimos lo siguiente al final:

-o content_filter=spamassassin” after smtpd

Quedando así:

smtp inet n – – – – smtpd-o content_filter=spamassassin” after smtpd

Y en el final del archivo también añadimos la siguiente linea, que define los usuarios que utiliza y que ejecutables:

spamassassin unix – n n – – pipe user=vmail:mail argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Reiniciamos postfix:

service postfix restart

Ahora volvemos a editar las reglas de SpamAssassin:

nano /etc/spamassassin/local.cf

Y cambiamos el siguiente valor, que define la puntuación necesaria para que un mensaje sea marcado como SPAM:

 required_score 5.0 a required_score 3.0

Y activamos el auto-aprendizaje cambiando estos valores:

use_bayes de 0 a 1
bayes_auto_learn de 0 a 1

Reiniciamos el servicio, y a funcionar:

service spamassassin restart

Fuente -> http://forums.sentora.org/showthread.php?tid=22

CUIDADO, en Sentora, los archivos de configuración de Dovecot están apuntando a otro lado (lo que es el filtraje, global.filter etc, solo hay que cambiar en enlace simbólico)

Para testear que funciona bien el filtraje de SPAM, puedes enviar un email con el siguiente mensaje, que dará la puntuación máxima:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

¡Espero que os haya servido!

Xavi Gonzalez Autor

Técnico en explotación de sistemas informáticos y Técnico Superior de Administración de sistemas en red y de Desarrollo de Aplicaciones Web. Actualmente como Responsable técnico y desarrollador web en Egardata Informàtica, en Terrassa.

Deja un comentario

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

ERROR: si-captcha.php plugin: GD image support not detected in PHP!

Contact your web host and ask them to enable GD image support for PHP.

ERROR: si-captcha.php plugin: imagepng function not detected in PHP!

Contact your web host and ask them to enable imagepng for PHP.