Notas sobre la adición de OpenDKIM a Postfix + DMARC
servidor
Lastmod: 2024-08-21
Published: 2022-05-20

Dado que los criterios de detección de spam se han vuelto estrictos en la actualidad, decidí implementar DKIM en mi servidor de correo personal.
Estas son mis notas al respecto.

Para la configuración de DMARC, consulta la adición de noviembre de 2023.

Adición de agosto de 2024

Dejé de usar OpenDKIM y cambié a arcmilter.
He cambiado de OpenDKIM a arcmilter y ahora es compatible con la firma ARC

Entorno

  • Ubuntu 20.04

OpenDKIM

  • Instalación
# apt install opendkim opendkim-tools
  • Creación del directorio para la colocación de claves
# install -d /etc/opendkim/key
# cd !$
  • Generación de claves (para múltiples dominios)
# install -d masa23.jp
# opendkim-genkey -D masa23.jp -d masa23.jp
# install -d example.jp
# opendkim-genkey -D example.jp -d example.jp

Se generarán default.private y default.txt en cada directorio
  • Cambio de propiedad
# chown -R opendkim:opendkim /etc/opendkim/
  • Configuración de OpenDKIM
# vi /etc/opendkim.conf
Socket                  inet:8892@localhost

#Domain
#KeyFile
#Selector
KeyTable refile:/etc/opendkim/key_table
SigningTable refile:/etc/opendkim/signing_table
# cat << _EOF_ > /etc/opendkim/key_table
default._domainkey.masa23.jp masa23.jp:default:/etc/opendkim/key/masa23.jp/default.private
default._domainkey.example.jp example.jp:default:/etc/opendkim/key/example.jp/default.private
_EOF_
# cat << _EOF_ > /etc/opendkim/signing_table
*@masa23.jp default._domainkey.masa23.jp
*@example.jp default._domainkey.example.jp
_EOF_
  • Inicio y configuración para el arranque de opendkim
# systemctl start opendkim
# systemctl enable opendkim

Configuración de Postfix

  • Agregar como milter
# vi /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:8892
non_smtpd_milters = inet:127.0.0.1:8892
  • Verificación de la configuración
# postfix check
  • Recarga de postfix
# systemctl reload postfix

Registro de la clave pública en DNS

  • Verificación de la clave pública
# cat /etc/opendkim/key/masa23.jp/default.txt
default._domainkey      IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5jqnqaMgv8fFl8yQHDfPdU/7j0YvFza2YIMIYivVV/CaItZizlkY6emj9o6MZBK3RU9ni4BPCQ1do64+HhZHUanAPojZd0PsyusCBNBFU1wY6/xpcuoPf+Ru15UvLI2/o+9ElO4vF3l2YoTSOE5ljnBNd2EWihqmUQazEpu3PT1a7BbHZkW/7WdK5ipgU8+u/iyRai0Dnrhgoi"
          "ArzoDjFgm4TRJQGhD+EUOmnwFa3Xz5eQg50IigS7WKyHwF3HSZPzrkEFf5hIXYdoeIr6OqKg5sldONF/hY9voEITHZqtHOnrBlaBH2DTTI6uQH7Uc4JLv12xD6Gh1rlZy5zdMTwQIDAQAB" )  ; ----- Clave DKIM por defecto para masa23.jp

Registra este registro en DNS.

  • También se configurará ADSP
    Esta vez no es necesario que sea tan estricto, así que lo dejaré como unknown.
_adsp._domainkey    IN  TXT "dkim=unknown"

Adición de noviembre de 2023

Parece que ADSP ha sido descontinuado.

Por lo tanto, se asumirá que el registro SPF ya está configurado y se configurará DMARC.

  • Configuración de DMARC
_dmarc  IN  TXT "v=DMARC1; p=quarantine;"

El valor de p puede ser ninguno, cuarentena o rechazo.

qSignificado
noneEl propietario principal no solicita ninguna acción específica con respecto a la entrega del mensaje.
quarantineEl propietario del dominio desea que los correos que no pasen la verificación del mecanismo DMARC sean tratados como sospechosos por el receptor de correo.
rejectEl propietario del dominio desea que los correos que no pasen la verificación del mecanismo DMARC sean rechazados por el receptor de correo.