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

Instale y configure OpenDKIM en el servidor de correo CentOS 8/RHEL 8

Anteriormente le mostré cómo configurar SPF y DKIM en el servidor de correo CentOS/RHEL. Dos piezas comunes de software que pueden realizar la firma y verificación de DKIM en Linux son OpenDKIM y Amavis. En ese tutorial usé Amavis, porque en ese momento OpenDKIM no estaba incluido en ningún repositorio de CentOS 8/RHEL 8. A partir de ahora, OpenDKIM está incluido en el repositorio de EPEL. Algunas personas prefieren usar OpenDKIM, así que les mostraré cómo hacerlo en este tutorial.

¿Qué es DKIM?

DKIM (DomainKeys Identified Mail) es un tipo de registros TXT en DNS que puede ayudar a prevenir la suplantación de correo electrónico y hacer que los correos electrónicos legítimos se entreguen en la bandeja de entrada del destinatario en lugar de en la carpeta de correo no deseado. DKIM usa una clave privada para agregar una firma a los correos electrónicos enviados desde su dominio . Los servidores SMTP receptores verifican la firma utilizando la clave pública correspondiente, que se publica en los registros DNS de su dominio.

Deshabilitar DKIM en Amavis

Si siguió mi tutorial anterior de Amavis, pero ahora quiere usar OpenDKIM, debe deshabilitar DKIM en Amavis. Edite el archivo de configuración principal.

sudo nano /etc/amavisd/amavisd.conf

Encuentra las siguientes líneas.

$enable_dkim_verification = 1;  # enable DKIM signatures verification
$enable_dkim_signing = 1;       # load DKIM signing code, keys defined by dkim_key

Agrega un # carácter al principio de cada línea para comentarlas.

#$enable_dkim_verification = 1;  # enable DKIM signatures verification
#$enable_dkim_signing = 1;       # load DKIM signing code, keys defined by dkim_key

Guarde y cierre el archivo. Luego reinicie Amavis.

sudo systemctl restart amavisd

Paso 1:Instalar y configurar OpenDKIM en CentOS 8/RHEL8

Primero habilite el repositorio EPEL (paquetes adicionales para Enterprise Linux) e instale OpenDKIM.

sudo dnf install epel-release

sudo dnf install opendkim

Edite el archivo de configuración principal de OpenDKIM.

sudo nano /etc/opendkim.conf

Busque la siguiente línea.

Mode     v

De forma predeterminada, OpenDKIM se ejecuta en modo de verificación (v), que verificará la firma DKIM de los mensajes de correo electrónico entrantes. Necesitamos firmar los correos electrónicos salientes, así que cambie esta línea a la siguiente para habilitar el modo de firma.

Mode           sv

Luego busque las siguientes líneas.

## Specifies whether or not the filter should generate report mail back
## to senders when verification fails and an address for such a purpose
## is provided. See opendkim.conf(5) for details.
SendReports yes

## Specifies the sending address to be used on From: headers of outgoing
## failure reports. By default, the e-mail address of the user executing
## the filter is used ([email protected]).
# ReportAddress "Example.com Postmaster" <[email protected]>

Cuando la verificación de una firma falla y la firma incluye una solicitud de informe ("r=y") y el dominio que firma anuncia una dirección de informe (es decir, ra=usuario) en un registro de informe en el DNS, OpenDKIM enviará un informe estructurado a esa dirección. que contiene los detalles necesarios para reproducir el problema. Es posible que desee utilizar una dirección de correo electrónico particular para enviar el informe. Descomente la ReportAddress parámetro y cambiar la dirección de correo electrónico. Tenga en cuenta que esto no creará el problema de retrodispersión, porque los correos electrónicos de informes se enviarán a una dirección de correo electrónico especificada en el registro DNS del dominio del remitente.

Busque la siguiente línea y coméntelo, porque usaremos claves separadas para cada nombre de dominio.

KeyFile   /etc/opendkim/keys/default.private

A continuación, busque las siguientes 4 líneas y elimínelas.

# KeyTable            /etc/opendkim/KeyTable

# SigningTable        refile:/etc/opendkim/SigningTable

# ExternalIgnoreList  refile:/etc/opendkim/TrustedHosts

# InternalHosts       refile:/etc/opendkim/TrustedHosts

Guarde y cierre el archivo.

Paso 2:crear la tabla de firmas, la tabla de claves y el archivo de hosts de confianza

Edite la tabla de firmas archivo.

sudo nano /etc/opendkim/SigningTable

Agregue la siguiente línea al final de este archivo. Esto le dice a OpenDKIM que si un remitente en su servidor está usando un @your-domain.com dirección, entonces debe firmarse con la clave privada identificada por 20200308._domainkey.your-domain.com .

*@your-domain.com    20200308._domainkey.your-domain.com

20200308 es el selector DKIM. Un nombre de dominio puede tener varias claves DKIM. El selector DKIM le permite elegir una clave DKIM en particular. Puede usar cualquier nombre para el selector DKIM, pero me pareció conveniente usar la fecha actual (8 de marzo de 2020) como selector DKIM. Guarde y cierre el archivo. Luego edite la tabla de claves archivo.

sudo nano /etc/opendkim/KeyTable

Agregue la siguiente línea, que especifica la ubicación de la clave privada DKIM.

20200308._domainkey.your-domain.com     your-domain.com:20200308:/etc/opendkim/keys/your-domain.com/20200308.private

Guarde y cierre el archivo. A continuación, edite el archivo de hosts de confianza.

sudo nano /etc/opendkim/TrustedHosts

127.0.0.0.1 y ::1 se incluyen en este archivo de forma predeterminada. Ahora agregue la siguiente línea. Esto le dice a OpenDKIM que si un correo electrónico proviene de su propio nombre de dominio, entonces OpenDKIM no debe realizar la verificación DKIM en el correo electrónico.

*.your-domain.com

Guarde y cierre el archivo.

Paso 3:generar un par de claves pública/privada

Dado que DKIM se usa para firmar mensajes salientes y verificar mensajes entrantes, necesitamos generar una clave privada para firmar y una clave pública para el verificador remoto. La clave pública se publicará en DNS.

Cree una carpeta separada para el dominio.

sudo mkdir /etc/opendkim/keys/your-domain.com

Genere claves usando opendkim-genkey herramienta.

sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s 20200308 -v

El comando anterior creará claves de 2048 bits. -d (domain) especifica el dominio. -D (directory) especifica el directorio donde se almacenarán las claves. Yo uso 20200308 como el selector DKIM. Una vez que se ejecuta el comando, la clave privada se escribirá en 20200308.private y la clave pública se escribirá en 20200308.txt archivo.

De forma predeterminada, solo la raíz puede leer y escribir en los archivos clave. Hacer opendkim como propietario de la clave privada.

sudo chown opendkim:opendkim /etc/opendkim/keys/ -R

Paso 4:Publique su clave pública en registros DNS

Mostrar la clave pública

sudo cat /etc/opendkim/keys/your-domain.com/20200308.txt

La cadena después de p el parámetro es la clave pública.

En su administrador de DNS, cree un registro TXT, ingrese 20200308._domainkey en el campo de nombre. (Debe reemplazar 20200308 con su propio selector DKIM). Luego regrese a la ventana de la terminal, copie todo lo que está entre paréntesis y péguelo en el campo de valor del registro DNS. Debe eliminar todas las comillas dobles y los saltos de línea en el campo de valor. Si no los elimina, la prueba de clave en el siguiente paso probablemente fallará.

Paso 5:probar la clave DKIM

Ingrese el siguiente comando en su servidor CentOS 8/RHEL 8 para probar su clave.

sudo opendkim-testkey -d your-domain.com -s 20200308 -vvv

Si todo está bien, verás la key OK mensaje.

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key '20200308._domainkey.linuxbabe.com'
opendkim-testkey: key OK

Tenga en cuenta que su registro DKIM puede necesitar algún tiempo para propagarse a Internet. Según el registrador de dominio que utilice, su registro DNS puede propagarse instantáneamente o puede tardar hasta 24 horas en propagarse. Puede ir a https://www.dmarcanalyzer.com/dkim/dkim-check/, ingrese 20200308 como selector e ingrese su nombre de dominio para verificar la propagación de registros DKIM.

Si ve "Clave no segura", no entre en pánico. Esto se debe a que DNSSEC no está habilitado en su nombre de dominio. DNSSEC es un estándar de seguridad para consultas DNS seguras. La mayoría de los nombres de dominio no han habilitado DNSSEC. Puede continuar siguiendo esta guía.

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

OpenDKIM escucha en 127.0.0.1:8891 .

Paso 6:Conecte Postfix a OpenDKIM

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
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

Paso 7:Verificación de SPF y DKIM

Ahora puede usar su cliente de correo electrónico de escritorio o su cliente de correo web para enviar un correo electrónico de prueba a [email protected] y obtenga un informe de autenticación de correo electrónico gratuito. Este es el informe que obtuve de port25.com.

También puede enviar un correo electrónico de prueba desde su servidor de correo a su cuenta de Gmail para ver si se pasan las comprobaciones de SPF y DKIM. En el lado derecho de un mensaje de correo electrónico abierto en Gmail, si hace clic en show original del menú desplegable, puede ver los resultados de la autenticación.

Si su mensaje no está firmado y la verificación de DKIM falló, es posible que desee verificar el registro de postfix (/var/log/maillog ) para ver qué está mal en su configuración.

Su servidor de correo electrónico también realizará la verificación DKIM en los correos electrónicos entrantes. Puede ver los resultados en los encabezados de los correos electrónicos. La siguiente es la verificación de SPF y DKIM en un remitente que usa Gmail.

Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> 
Authentication-Results: email.linuxbabe.com;
	dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co";
	dkim-atps=neutral

Cómo configurar OpenDKIM para varios dominios

He escrito una guía para alojar varios dominios en el servidor de correo CentOS 8/RHEL 8 con PostfixAdmin. En ese artículo, utilicé Amavis para la firma y verificación de DKIM. Si usa OpenDKIM, entonces debe omitir el paso 3 en ese artículo.

Para configurar OpenDKIM para varios dominios, debe agregar los otros dominios en la tabla de firmas, la tabla de claves y el archivo de hosts de confianza como se muestra a continuación.

Mesa de firmas:

*@domain1.com       20200308._domainkey.domain1.com
*@domain2.com       20200308._domainkey.domain2.com

Tabla clave:

20200308._domainkey.domain1.com     domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private
20200308._domainkey.domain2.com     domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private

Anfitriones de confianza:

127.0.0.1
localhost

*.domain1.com
*.domain2.com

Luego, genere el par de claves pública/privada de DKIM y agregue la clave pública de DKIM en el DNS como se menciona en los pasos 3, 4 y 5 para otros dominios. Reinicia OpenDKIM y listo.

sudo systemctl restart opendkim

Siguiente paso

Espero que este tutorial le haya ayudado a instalar y configurar OpenDKIM en el servidor de correo CentOS 8/RHEL 8. Ahora es posible que desee leer el siguiente tutorial para configurar OpenDMARC para bloquear la suplantación de identidad por correo electrónico.

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

Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín gratuito para obtener más consejos y trucos. Cuídate 🙂


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

  2. Instalar y configurar HAProxy en RHEL 8 / CentOS 8 Linux

  3. Instalar y configurar el servidor FTP en CentOS 7 / RHEL 7 – (vsftpfd)

  4. CentOS / RHEL 7:Cómo instalar y configurar el servidor ftp (vsftpd)

  5. CentOS / RHEL 5:Cómo instalar y configurar el servidor vsftpd

Cómo instalar y configurar el servidor VNC en CentOS 7 / RHEL 7

Instalar y configurar Check_MK Server en CentOS 7

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

Cómo instalar y configurar el servidor OpenVPN en CentOS 8/7

Cómo instalar y configurar el servidor VNC (TigerVNC) en CentOS / RHEL 7

Cómo instalar y configurar el servidor VNC en CentOS/RHEL 8