Cómo configurar DKIM en una máquina con postfix.

por | 5 diciembre, 2018

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy

 

Compartir    

Paso 1. En primer lugar, debemos instalar opendkim.

Cada distribución tendrá una forma de hacerlo. Por lo general, con:

yum install opendkim

o bien

apt-get install opendkim

Una vez instalado, tendremos que editar el archivo /etc/opendkim.conf y dejar una configuración similar a esta:

Canonicalization relaxed/relaxed
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyFile /etc/opendkim/keys/default.private
KeyTable refile:/etc/opendkim/KeyTable
LogWhy yes
MinimumKeyBits 1024
Mode sv
OversignHeaders From
PidFile /var/run/opendkim/opendkim.pid
Selector default
SendReports yes
SignatureAlgorithm rsa-sha256
SigningTable refile:/etc/opendkim/SigningTable
Socket inet:[email protected]
SoftwareHeader yes
SyslogSuccess yes
Syslog yes
Umask 022
UserID opendkim:opendkim

 

Paso 2. Tendremos que crear los directorios en los que guardaremos las claves privadas para la encriptación DKIM, crear las claves y asignarle permisos.

mkdir /etc/opendkim/keys/dominiodejemplo.com/
opendkim-genkey -s 201601 -d dominiodejemplo.com -D /etc/opendkim/keys/dominiodejemplo.com/
chown -R opendkim:opendkim dominiodejemplo.com/

-Nótese que el identificador “201601” de la clave corresponde al año seguido del mes en el que se establece. Puede utilizarse cualquier identificador, pero se recomienda hacerlo así.

Luego, tendremos que editar el archivo que relaciona Registro DNS para DKIM, con el servidor de correo correspondiente y con su clave privada:

vi /etc/opendkim/KeyTable
201601._domainkey.dominiodejemplo.com dominiodejemplo.com:201601:/etc/opendkim/keys/dominiodejemplo.com/201601.private

Luego, editamos el archivo que indica a postfix qué cuentas de correo deben encriptarse con dkim:

vi /etc/opendkim/SigningTable
*@dominiodejemplo.com 201601._domainkey.dominiodejemplo.com

Además, tenemos que autorizar los equipos y dominios que pueden utilizar opendkim:

vi /etc/opendkim/TrustedHosts
127.0.0.1
::1
XXX.XXX.XXX.XXX (Aquí hay que poner la IP del servidor)
servidorXXXX.comalis.net (Aquí el nombre que ha asignado comalis)
dominiodejemplo.com (A partir de aquí los dominios a configurar)

En /etc/postfix/main.cf hay que añadir al final:

milter_default_action = accept
milter_protocol = 6
smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768
non_smtpd_milters = , inet:127.0.0.1:12768, inet:127.0.0.1:8891
mydestination = $myhostname, $mydomain, mail.$mydomain, localhost.$mydomain, localhost, localhost.localdomain

Y comentar las antiguas líneas que aparecen más arriba en el archivo /etc/postfix/main.cf añadiendo el caracter “#” delante de ellas, ejemplo:
# mydestination =
# smtpd_milters =
# non_smtpd_milters =

 

Paso 3. Una vez esté creada esta configuración, ejecutamos el siguiente comando para saber qué configuración DNS hay que realizar:

cat /etc/opendkim/keys/dominiodejemplo.com/201601.txt

obteniendo algo similar a:

201601._domainkey IN TXT ( “v=DKIM1; k=rsa; “
“p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyxcETy3QZ+QJQaW+rDt1Ch1h376UioxcK7xIhs+YC5tRLSnMscWoDsjsNrh6OslhBJzGcB4Q
gBpQtAXRHUx91ipiRnwTSVHYQPyAmbi/iqTWaHFY0EZby3XIDDUm3PO88YIdI64rMDxi+hoKH2b86qcFaShSKf5U/Yj0xAMyHIwIDAQAB” ) ; —– DKIM key 201601 for dominiodejemplo.com

Este texto nos indica que hay que crear una entrada TXT en la configuración DNS del dominio, llamada 2016._domainkey con el contenido que aparece entre comillas, eliminando las comillas centrales.

Esto en plesk quedaría así:

201601._domainkey.dominiodejemplo.com TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyxcETy3QZ+QJQaW+rDt1Ch1h376UioxcK7xIhs+YC5tRLSnMscWoDsjsNrh6OslhBJzGcB4Q
gBpQtAXRHUx91ipiRnwTSVHYQPyAmbi/iqTWaHFY0EZby3XIDDUm3PO88YIdI64rMDxi+hoKH2b86qcFaShSKf5U/Yj0xAMyHIwIDAQAB

Y por último,

service opendkim restart
service postfix restart