🚧Servidor Mail con cloudfare

1. Configurar Cloudflare para Apuntar a tu Servidor

Primero, debes apuntar el dominio a tu servidor Ubuntu.

  1. Obtener la IP de tu servidor

    • Si usas una IP pública estática, usa esa.

    • Si estás en una red local, necesitarás configurar port forwarding en tu router o usar una IP pública.

  2. Añadir registros en Cloudflare

    • En Cloudflare, ve a la sección DNS y agrega los siguientes registros:

      Tipo
      Nombre
      Valor (IP de tu servidor)
      Proxy (Cloudflare)

      A

      mail

      Tu_IP_Publica

      Desactivado (DNS Only)

      MX

      @

      mail.tu-dominio.com (prioridad 10)

      N/A

      TXT

      @

      "v=spf1 mx ~all"

      N/A

      TXT

      _dmarc

      "v=DMARC1; p=none;"

      N/A

      TXT

      mail._domainkey

      Generar DKIM más adelante

      N/A

    • Desactiva el proxy (nube naranja) para el registro A y MX, ya que Cloudflare no proxy servidores de correo.


2. Instalar y Configurar el Servidor de Correo en Ubuntu

Necesitas un software para gestionar el correo. Las opciones más comunes son Postfix (SMTP) y Dovecot (IMAP/POP3).

Instalar Postfix y Dovecot

sudo apt update && sudo apt upgrade -y
sudo apt install postfix dovecot-core dovecot-imapd -y

Configurar Postfix

  1. Edita la configuración principal:

    sudo nano /etc/postfix/main.cf
  2. Agrega o modifica estas líneas:

    myhostname = mail.tu-dominio.com
    myorigin = /etc/mailname
    mydestination = $myhostname, tu-dominio.com, localhost.localdomain, localhost
    inet_interfaces = all
    inet_protocols = all
    home_mailbox = Maildir/
  3. Reinicia Postfix:

    sudo systemctl restart postfix

Configurar Dovecot

  1. Edita la configuración:

    sudo nano /etc/dovecot/dovecot.conf
  2. Asegúrate de habilitar protocolos IMAP y POP3:

    protocols = imap pop3 lmtp
  3. Reinicia Dovecot:

    sudo systemctl restart dovecot

3. Configurar Seguridad con SSL (Let's Encrypt)

Para evitar bloqueos por parte de los clientes de correo, necesitas un certificado SSL:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot certonly --standalone -d mail.tu-dominio.com

Después, configura Postfix y Dovecot para usar SSL:

sudo nano /etc/postfix/main.cf

Agrega:

smtpd_tls_cert_file=/etc/letsencrypt/live/mail.tu-dominio.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.tu-dominio.com/privkey.pem
smtpd_tls_security_level=may

Reinicia Postfix:

sudo systemctl restart postfix

Para Dovecot:

sudo nano /etc/dovecot/conf.d/10-ssl.conf

Edita:

ssl_cert = </etc/letsencrypt/live/mail.tu-dominio.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.tu-dominio.com/privkey.pem

Reinicia Dovecot:

sudo systemctl restart dovecot

4. Configurar Registros DNS Adicionales (SPF, DKIM y DMARC)

Para evitar que tus correos sean marcados como SPAM:

SPF (Sender Policy Framework)

En Cloudflare, agrega un registro TXT:

Nombre: @  
Valor: "v=spf1 mx ~all"

DKIM (DomainKeys Identified Mail)

  1. Instala OpenDKIM:

    sudo apt install opendkim opendkim-tools -y
  2. Configura Postfix para usar OpenDKIM:

    sudo nano /etc/postfix/main.cf

    Agrega:

    milter_protocol = 2
    milter_default_action = accept
    smtpd_milters = inet:localhost:8891
    non_smtpd_milters = inet:localhost:8891
  3. Reinicia Postfix:

    sudo systemctl restart postfix
  4. Generar la clave DKIM:

    sudo opendkim-genkey -t -s mail -d tu-dominio.com
    sudo mv mail.private /etc/opendkim/
    sudo mv mail.txt /etc/opendkim/
  5. Agregar el contenido del archivo mail.txt como un registro TXT en Cloudflare:

    Nombre: mail._domainkey  
    Valor: (contenido del archivo mail.txt)

DMARC

En Cloudflare, agrega un registro TXT:

Nombre: _dmarc  
Valor: "v=DMARC1; p=none;"

5. Probar y Verificar la Configuración

Verificar SPF, DKIM y DMARC

Usa:

nslookup -type=TXT tu-dominio.com
nslookup -type=TXT mail._domainkey.tu-dominio.com
nslookup -type=TXT _dmarc.tu-dominio.com

También puedes usar herramientas como:

Probar Envío y Recepción de Correos

Para probar envío:

echo "Prueba de correo" | mail -s "Test" usuario@correo.com

Para revisar logs:

sudo tail -f /var/log/mail.log

Asegúrate de abrir los puertos 25, 465, 587 (SMTP) y 993, 995 (IMAP/POP3) en tu firewall y router.

Última actualización