DKIM (DomainKeys Identified Mail) es un método para firmar correos electrónicos utilizando una clave pública-privada.
DKIM se utiliza al recibir el servidor de correo para identificar el correo electrónico, que son enviados por servidores de correo autorizados, minimizando la posibilidad de recibir correos electrónicos SPAM.
Con este tutorial voy a explicar como realiziar en centos7 con postfix y opendkim.
Instalamos el software necesario.
yum install postfix opendkim
Ahora creamos la pareja de claves DKIM (publica y privada) utilizando el comando opendkim-genkey proporcionada por el paquete dkim-milter, con el dominio y selector a utilizar.
mkdir -p /etc/opendkim/keys/barrabinbarrabash.es
cd /etc/opendkim/keys/barrabinbarrabash.es
opendkim-genkey -r --domain=barrabinbarrabash.es --selector=barrabinbarrabash
Ahora asignamos los permisos correctos a la pareja de claves.
chown -R opendkim:opendkim /etc/opendkim
chmod go-rw /etc/opendkim/keys
Editamos el archivo de configuración /etc/opendkim.conf y agreguamos / actualizamos las siguientes lineas.
vim /etc/opendkim.conf
Mode sv
Domain barrabinbarrabash.es
#KeyFile /etc/opendkim/keys/default.private
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
Luego edite el archivo de configuración de listas de claves de dominio /etc/opendkim/KeyTable y agregamos el dominio y la clave privada creada.
vim /etc/opendkim/KeyTable
barrabinbarrabash._domainkey.barrabinbarrabash.es barrabinbarrabash.es:barrabinbarrabash:/etc/opendkim/keys/barrabinbarrabash.es/barrabinbarrabash.private
A continuación, editamos el archivo /etc/opendkim/SigningTable añadiendo el dominio a utilizar.
vim /etc/opendkim/SigningTable
*@barrabinbarrabash.es barrabinbarrabash._domainkey.barrabinbarrabash.es
Editamos el archivo /etc/opendkim/TrustedHosts y añadimos el dominio autorizado.
vim /etc/opendkim/TrustedHosts
barrabinbarrabash.es
Ahora edite el archivo de configuración POSTFIX /etc/postfix/main.cf, habilitando el opendkim.
vim /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
Para finalizar la configuración arrancamos el servicio opendkim y reiniciamos postfix.
service opendkim start
postfix restart
Por ultimo solo nos faltaria incluir la entrada de dominio con la clave publica para validar los correos firmados.
cat /etc/opendkim/keys/barrabinbarrabash.es/barrabinbarrabash.txt
barrabinbarrabash._domainkey IN TXT ( "v=DKIM1; k=rsa; s=email; "
"p=dEp+wJKP+VUbhc9GigmK34ZjrSqqdKjIEWr2q9QEBAQUAA4GNADCBiQKBgQCdTtV/L65Gqm/rvBz1d6CCp8A2515DvSVp1H1bZs4t050mMA0GCSqGSIbGNADCBic9GigmK34ZjrSqqdKjIEWrQKBgQCdTtEqM8FqndiFYOderzljMMMqBdEp+wJKP+VUbhc9GigmK34ZjrIAocOD6pKDAQAB" ) ; ----- DKIM key barrabinbarrabash for barrabinbarrabash.es