GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configure OpenDMARC con Postfix en CentOS/RHEL para bloquear la falsificación de correo electrónico

En artículos anteriores, discutimos varios consejos efectivos para bloquear el correo no deseado. Este tutorial le mostrará cómo configurar OpenDMARC con el servidor Postfix SMTP en CentOS/RHEL para bloquear la suplantación de identidad y el correo no deseado. OpenDMARC es un filtro de política de correo electrónico DMARC de código abierto para MTA (agente de transporte de mensajes, también conocido como servidor SMTP).

Qué es DMARC

DMARC (Domain-based Message Authentication, Reporting and Conformance) es un estándar de Internet (RFC 7489) que permite a los propietarios de dominios evitar que sus nombres de dominio sean utilizados por falsificadores de correo electrónico. Antes de que se inventara DMARC, era muy fácil para los malhechores usar el nombre de dominio de otras personas en la dirección de remitente.

Si el propietario de un dominio creó un registro DNS DMARC para su nombre de dominio y un servidor de correo electrónico receptor implementó la verificación DMARC, entonces los malos actores deben pasar la alineación SPF o la alineación DKIM para pasar la verificación DMARC. Si falla la verificación de DMARC, el correo electrónico falsificado podría ser rechazado. Nunca para ser visto por los usuarios finales. Es difícil para el mal actor pasar SPF o DKIM, a menos que el servidor de correo electrónico del propietario del dominio esté comprometido.

Ejemplo de falsificación de correo electrónico

Un spammer me envió un correo electrónico de rescate usando winsaaluminyumankara.com en la dirección De. La información whois de winsaaluminyumankara.com es público Claramente, el spammer no es una persona responsable de este nombre de dominio.

winsaaluminyumankara.com tiene un registro DMARC.

Luego revisé los encabezados de correo electrónico, que muestran que SPF falló. No hay firma DKIM. Entonces la verificación de DMARC falla. Este es un correo electrónico falsificado.

Esto demuestra que no solo las grandes marcas están siendo utilizadas por los falsificadores de correo electrónico, sino que cualquier nombre de dominio en Internet podría ser suplantado por malos actores. Lamentablemente, la política de DMARC para este nombre de dominio es p=none , que le dice al servidor de correo electrónico receptor que no haga nada especial si falla la verificación de DMARC. Si la política es p=reject , entonces mi servidor Postfix SMTP rechazaría este correo electrónico con OpenDMARC.

Paypal y Facebook han creado un reject política DMARC para su nombre de dominio.

Entonces, si un mal actor intenta falsificar Paypal o Facebook, mi servidor de correo electrónico puede rechazar el correo electrónico falsificado con OpenDMARC. Hay muchos otros nombres de dominio conocidos que implementaron un reject política DMARC, como se puede ver en la siguiente tabla.

El proveedor de buzón de correo seguro Protonmail utiliza Postfix y OpenDMARC para realizar comprobaciones DMARC en los correos electrónicos entrantes y le mostraré cómo hacer lo mismo en su propio servidor Postfix SMTP.

Requisitos

Este tutorial es para proveedores de buzones y cualquier persona que ejecute su propio servidor de correo, para proteger a sus usuarios de ser estafados por correo electrónico falso. Si es propietario de un nombre de dominio y desea evitar que los suplantadores de correo electrónico utilicen su nombre de dominio, lea este artículo para crear un registro DMARC y analizar el informe DMARC. También te recomiendo que leas ese artículo si no entiendes completamente DMARC.

Debe tener un servicio de verificación DKIM ejecutándose en su servidor de correo antes de configurar OpenDMARC. OpenDMARC debe usarse junto con OpenDKIM. Si usa Amavis para realizar la firma y verificación de DKIM, le recomiendo cambiar de Amavis a OpenDKIM. Eso es porque OpenDMARC no puede leer los resultados de verificación DKIM de Amavis. No tienes que desinstalar por completo Amavis. Simplemente deshabilite DKIM en Amavis, luego instale y configure OpenDKIM.

Si no desea cambiar a OpenDKIM, debe integrar Amavis con Postfix a través de la interfaz milter, que se explicará al final de este artículo.

Paso 1:Instalar y configurar OpenDMARC en CentOS/RHEL

OpenDMARC es un software de código abierto que puede realizar comprobaciones e informes DMARC. Puede instalarlo en CentOS/RHEL desde el repositorio de EPEL.

sudo dnf install epel-release

sudo dnf install opendmarc

Inicie OpenDMARC.

sudo systemctl start opendmarc

Habilite el inicio automático en el momento del arranque.

sudo systemctl enable opendmarc

OpenDMARC escucha en 127.0.0.1:8893 . Ejecute el siguiente comando para comprobar su estado.

systemctl status opendmarc

Salida:

● opendmarc.service - Domain-based Message Authentication, Reporting & Conformance (DMARC) Milter
   Loaded: loaded (/usr/lib/systemd/system/opendmarc.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-03-08 23:52:59 EDT; 1min 4s ago
     Docs: man:opendmarc(8)
           man:opendmarc.conf(5)
           man:opendmarc-import(8)
           man:opendmarc-reports(8)
           http://www.trusteddomain.org/opendmarc/
 Main PID: 19987 (opendmarc)
    Tasks: 3 (limit: 5047)
   Memory: 1.1M
   CGroup: /system.slice/opendmarc.service
           └─19987 /usr/sbin/opendmarc -c /etc/opendmarc.conf -P /var/run/opendmarc/opendmarc.pid

Luego edite el archivo de configuración principal con su editor de texto.

sudo nano /etc/opendmarc.conf

Busque la siguiente línea:

# AuthservID name

De manera predeterminada, OpenDMARC usa el nombre de host del MTA como AuthserveID, pero es mejor usar un nombre diferente para el servicio de autenticación, porque Amavisd-new sobrescribirá el encabezado de resultados de autenticación agregado por OpenDMARC. Puede cambiarlo a lo siguiente, que le resultará muy fácil ver qué programa agrega qué encabezado de resultados de autenticación.

AuthservID OpenDMARC

A continuación, agregue la siguiente línea. Reemplace el nombre de host con su nombre de host real de Postfix. Esto le dice a OpenDMARC que confíe en el resultado de la autenticación con mail.yourdomain.com en la identificación. Esto es necesario cuando tiene OpenDKIM ejecutándose para realizar la verificación de DKIM. Si el nombre de host de Postfix no está incluido en los TrustedAuthservIDs , entonces OpenDMARC ignorará el encabezado de resultados de autenticación generado por OpenDKIM.

TrustedAuthservIDs mail.yourdomain.com

Luego busque la siguiente línea.

# IgnoreAuthenticatedClients false

Cambia el valor a true para ignorar los clientes SMTP que se autentican correctamente a través de SMTP AUTH, que incluye clientes de correo de escritorio/móviles que envían correos electrónicos salientes a través del puerto 587.

IgnoreAuthenticatedClients true

Luego busque esta línea:

# RejectFailures false

De manera predeterminada, OpenDMARC no rechazará los correos electrónicos que no superen la verificación de DMARC, incluso si la política del dominio está establecida en p=reject. . Si prefiere rechazar los correos electrónicos que fallan en DMARC, verifique cuándo la política del dominio está configurada en p=reject , luego elimine el comentario de esta línea y cambie false a true .

RejectFailures true

Busque la siguiente línea.

# RequiredHeaders  false

Cámbialo por:

RequiredHeaders    true

Esto rechazará los correos electrónicos que no cumplan con los estándares de encabezado de correo electrónico como se describe en RFC5322. Por ejemplo, si un correo electrónico entrante no tiene From: encabezado o date: encabezado, será rechazado. También se rechazará un campo De:del que no se haya podido extraer ningún nombre de dominio.

De forma predeterminada, OpenDMARC en CentOS/RHEL ignorará los resultados de SPF en los encabezados de correo electrónico y realizará las comprobaciones de SPF por sí mismo. Esto se controla mediante los siguientes dos parámetros.

SPFIgnoreResults true

SPFSelfValidate true

Si prefiere utilizar otro servicio de comprobación de SPF en su servidor de correo, dígale a OpenDMARC que confíe en los resultados de SPF en los encabezados de correo electrónico y solo realice comprobaciones de SPF cuando no pueda encontrar resultados de SPF en los encabezados.

SPFIgnoreResults false

SPFSelfValidate true

Guarde y cierre el archivo. Luego reinicie OpenDMARC para que los cambios surtan efecto.

sudo systemctl restart opendmarc

Paso 2:Integrar OpenDMARC con el servidor SMTP de Postfix

Si usa OpenDKIM

Edite el archivo de configuración principal de Postfix.

sudo nano /etc/postfix/main.cf

Si siguió mi tutorial de DKIM en CentOS 8/RHEL 8, entonces debería tener líneas en este archivo como se muestra a continuación. OpenDKIM está escuchando en 127.0.0.1:8891 .

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters

Ahora solo necesita agregar el socket OpenDMARC para que Postfix pueda comunicarse con OpenDMARC. (Asegúrese de que esté después del socket OpenDKIM). OpenDMARC escucha en 127.0.0.1:8893 .

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891,inet:127.0.0.1:8893
non_smtpd_milters = $smtpd_milters

Guarde y cierre el archivo. Luego reinicie Postfix para que el cambio surta efecto.

sudo systemctl restart postfix

Si usas Amavis

Si usa Amavis para la firma y verificación DKIM como en iRedMail , entonces OpenDMARC no puede leer los resultados de la verificación DKIM de Amavis. Puede instalar OpenDKIM para verificar la firma DKIM.

Instale OpenDKIM desde el repositorio EPEL (Extra Packages for Enterprise Linux).

sudo dnf install epel-release

sudo dnf install opendkim

Por defecto, el opendkim El paquete en CentOS/RHEL se ejecuta solo en modo de verificación. No agregará firmas DKIM a los correos electrónicos salientes. Esto es lo que queremos porque Amavis agregará firmas DKIM. Edite el archivo de configuración de OpenDKIM.

sudo nano /etc/opendkim.conf

Busque la siguiente línea.

KeyFile   /etc/opendkim/keys/default.private

Como no queremos que OpenDKIM firme los correos electrónicos salientes, debemos comentar esta línea, luego guardar y cerrar el archivo.

Edite el archivo de configuración principal de Postfix.

sudo nano /etc/postfix/main.cf

Agregue las siguientes líneas al final de este archivo, para que Postfix pueda llamar a OpenDKIM a través del protocolo milter. Tenga en cuenta que debe usar 127.0.0.1 como la dirección. No use localhost .

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891,inet:127.0.0.1:8893
non_smtpd_milters = $smtpd_milters

Guarde y cierre el archivo. Luego agregue postfix usuario a opendkim grupo.

sudo gpasswd -a postfix opendkim

Reiniciar postfix servicio.

sudo systemctl restart postfix

Ahora podemos iniciar el servicio opendkim.

sudo systemctl start opendkim

Y habilite el inicio automático en el momento del arranque.

sudo systemctl enable opendkim

Paso 3:Probar la verificación de OpenDMARC

Ahora envíe un correo electrónico desde su otra dirección de correo electrónico a su dirección de dominio. Después de eso, revisa los encabezados de los correos electrónicos. Si OpenDMARC funciona correctamente, puede ver los resultados de verificación de DMARC como se muestra a continuación.

Authentication-Results: OpenDMARC; dmarc=pass (p=none dis=none) header.from=gmail.com

Envié un correo electrónico desde mi cuenta de Gmail a la dirección de correo electrónico de mi dominio y pasó la verificación DMARC. Si no ve este encabezado de correo electrónico, verifique sus registros de correo.

sudo nano /var/log/maillog

Verá algo como a continuación, lo que significa que OpenDMARC está funcionando.

opendmarc[26495]: 61DAA3EA44: gmail.com pass

Si ve el siguiente mensaje.

ignoring Authentication-Results at 1 from mail.linuxbabe.com

significa que OpenDMARC está ignorando los resultados de verificación de SPF y DKIM, por lo que OpenDMARC no está funcionando. Debe agregar la siguiente línea en /etc/opendmarc.conf archivo, luego reinicie OpenDMARC.

TrustedAuthservIDs mail.yourdomain.com

Si cambia el Postfix myhostname parámetro, recuerde agregar el nuevo nombre de host a TrustedAuthservIDs. Puede agregar varios nombres de host, separados por comas.

TrustedAuthservIDs mail.yourdomain.com,mail2.yourdomain.com

Prueba de OpenDMARC con Telnet

Puede utilizar telnet para falsificar otro nombre de dominio, como paypal.com. Primero, ejecute el siguiente comando para conectarse al puerto 25 de su servidor de correo.

telnet mail.yourdomain.com 25

Luego, siga los siguientes pasos para enviar un correo electrónico falso. (Usted escribe los textos en negrita.)

HELO mail.paypal.com
250 mail.yourdomain.com
MAIL FROM:<[email protected]>
250 2.1.0 Ok
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From:     [email protected]
To:       [email protected]
Subject:  Please update your password.

Click this link to update your password.
.
550 5.7.1 rejected by DMARC policy for paypal.com
quit

Como puede ver, mi servidor de correo rechazó este correo electrónico porque no pasó la verificación de DMARC y Paypal implementó un p=reject política.

Nota: Si la política DMARC de un dominio está establecida en p=quarantine , OpenDMARC milter colocará el correo electrónico falsificado en la cola de espera de Postifx. indefinidamente. El postmaster puede listar todos los mensajes en la cola con postqueue -p comando y use el postsuper utilidad de línea de comandos para liberar mensajes en cola de espera.

(Opcional) Integrar Amavis con Postfix a través de Milter

Como se explica en la sección de requisitos previos, recomiendo cambiar de Amavis a OpenDKIM, pero si no desea cambiar, debe integrar Amavis con Postfix a través de la interfaz milter, para que OpenDMARC pueda leer el resultado de la verificación DKIM de Amavis.

Instala el amavisd-milter paquete en CentOS/RHEL.

sudo dnf install amavisd-milter

Inicie el servicio.

sudo systemctl start amavisd-milter

Habilite el inicio automático en el momento del arranque.

sudo systemctl enable amavisd-milter

Amavisd-milter escucha en un socket Unix en /run/amavisd/amavisd-milter.sock . Edite el archivo de configuración principal de Postfix.

sudo nano /etc/postfix/main.cf

Agregue las siguientes líneas al final del archivo. Tenga en cuenta que debe colocar el zócalo Unix amavisd-milter antes del zócalo TCP OpenDMARC.

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:/run/amavisd/amavisd-milter.sock,inet:127.0.0.1:8893
non_smtpd_milters = $smtpd_milters

También comente la siguiente línea, para que Postfix no pase los correos electrónicos entrantes a Amavis dos veces.

content_filter = smtp-amavis:[127.0.0.1]:10024

Guarde y cierre el archivo. Luego agregue postfix al amavis grupo, por lo que Postfix podrá acceder al socket Amavis Unix.

sudo gpasswd -a postfix amavis

Los correos electrónicos salientes enviados por usuarios autenticados no deben pasarse a Amavis a través de la interfaz milter, porque Amavis no agregará la firma DKIM. Deberían usar 127.0.0.1:10026 como de costumbre, para que se agregue la firma DKIM. Edite el archivo Postfix master.cf.

sudo nano /etc/postfix/master.cf

Encuentra el submission componente. Debería tener el siguiente aspecto si siguió mi tutorial de Amavis en CentOS/RHEL.

submission     inet     n    -    y   -    -    smtpd
 -o syslog_name=postfix/submission
 -o smtpd_tls_security_level=encrypt
 -o smtpd_tls_wrappermode=no
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
 -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
 -o smtpd_sasl_type=dovecot
 -o smtpd_sasl_path=private/auth
 -o content_filter=smtp-amavis:[127.0.0.1]:10026

Ahora agregue la siguiente opción al final.

-o smtpd_milters=

Así:

submission     inet     n    -    y   -    -    smtpd
 -o syslog_name=postfix/submission
 -o smtpd_tls_security_level=encrypt
 -o smtpd_tls_wrappermode=no
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
 -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
 -o smtpd_sasl_type=dovecot
 -o smtpd_sasl_path=private/auth
 -o content_filter=smtp-amavis:[127.0.0.1]:10026
 -o smtpd_milters=

Esto hará que el servicio de envío de Postfix no use milter en absoluto, por lo que los correos electrónicos enviados por usuarios autenticados no se pasarán a Amavis a través de la interfaz milter. Tenga en cuenta que no debe agregar ningún espacio antes del signo igual (=).

También debe agregar esta línea a smtps componente.

smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o content_filter=smtp-amavis:[127.0.0.1]:10026
  -o smtpd_milters=

Guarde y cierre el archivo. Reinicie Postfix para que los cambios surtan efecto.

sudo systemctl restart postfix

Ahora OpenDMARC podrá leer el resultado de la verificación DKIM de Amavis, y Amavis continuará agregando la firma DKIM para los usuarios autenticados.


Cent OS
  1. Cómo instalar el servidor de correo postfix en RHEL 8 / CentOS 8

  2. RHEL 8/CentOS 8 puerto FTP abierto 21 con firewalld

  3. Cómo configurar o cambiar el nombre de host en CentOS 7 / RHEL 7

  4. Cómo instalar e integrar DKIM con OpenDKIM y Postfix en un CentOS 6 VPS

  5. Cómo establecer un nombre de interfaz personalizado con NetworkManager en CentOS/RHEL 7

Cómo configurar fácilmente un servidor de correo con todas las funciones en CentOS 7 con iRedMail

Cómo configurar fácilmente un servidor de correo con todas las funciones en CentOS 8 con iRedMail

Configure SpamAssassin en CentOS/RHEL para bloquear el spam de correo electrónico

7 consejos efectivos para bloquear el spam de correo electrónico con Postfix en CentOS/RHEL

Parte 4:configurar SPF y DKIM con Postfix en el servidor de correo CentOS 8/RHEL 8

Cómo configurar una VPN basada en IPsec con Strongswan en CentOS/RHEL 8

    • bankofamerica.com
    • yahoo.com
    • chase.com
    • wellsfargo.com
    • facebook.com
    • google.com
    • youtube.com
    • twitter.com
    • reddit.com
    • instagram.com
    • linkedin.com
    • medio.com
    • pinterest.com
    • dropbox.com
    • microsoft.com
    • whatsapp.com