Introducción
En esta guía, veremos cómo instalar y configurar OpenDKIM, una implementación de código abierto del sistema de autenticación de remitente DomainKeys Identified Mail (DKIM).
DKIM es un estándar de Internet que permite a una persona u organización asociar un nombre de dominio con un mensaje de correo electrónico.
Prerrequisitos
Antes de continuar con la guía, Postfix y Dovecot deben estar instalados y configurados correctamente.
Tutorial de Postfix y Dovecot (incluye configuración FQDN) Tutorial de FQDN
Instalar OpenDKIM
OpenDKIM está disponible en los repositorios predeterminados de Ubuntu, por lo que se puede instalar fácilmente a través de apt:
sudo apt update
sudo apt install opendkim opendkim-tools
Configurar OpenDKIM
Abra el archivo de configuración principal de OpenDKIM:
sudo nano /etc/opendkim.conf
Cambie o agregue las siguientes líneas:
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:12301@localhost
El Milter permite a los administradores agregar filtros de correo para filtrar spam o virus en la cadena de procesamiento de correo.
Conecte el milter con Postfix, abra el siguiente archivo:
sudo nano /etc/default/opendkim
Agregue esta línea, cambie el número de puerto solo si está usando un puerto personalizado:
SOCKET="inet:12301@localhost"
Para configurar Postfix para usar el milter, abra el siguiente archivo:
sudo nano /etc/postfix/main.cf
Agregue o descomente estas líneas:
milter_protocol = 2
milter_default_action = accept
Si utiliza un filtro como SpamAssassin, es probable que los siguientes parámetros ya estén presentes, en esta casa solo agregue el milter OpenDKIM:
smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
Si faltan los parámetros, agregue lo siguiente:
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
Cree las carpetas para TrustedHosts:
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys
Especifique TrustedHosts:
sudo nano /etc/opendkim/TrustedHosts
Usaremos este archivo para definir tanto ExternalIgnoreList como InternalHost, los mensajes de estos hosts, dominios y direcciones IP serán de confianza y estarán firmados.
Personalice y agregue las siguientes líneas al archivo recién creado. Puede especificar varios dominios, no cambie las tres primeras líneas:
127.0.0.1
localhost
192.168.0.1/24
*.esempio.it
#*.esempio.tech
Guarde y cierre el archivo.
Crea un nuevo archivo:
sudo nano /etc/opendkim/KeyTable
Usamos el correo electrónico, no es necesario modificarlo. Agrega estas líneas:
mail._domainkey.esempio.it esempio.it:mail:/etc/opendkim/keys/esempio.it/mail.private
#mail._domainkey.esempio.tech esempio.tech:mail:/etc/opendkim/keys/esempio.tech/mail.private
Guarde y cierre el archivo.
Cree el siguiente archivo, que se utiliza para declarar dominios y direcciones de correo electrónico:
sudo nano /etc/opendkim/SigningTable
Agrega estas líneas:
*@esempio.it mail._domainkey.esempio.it
#*@esempio.tech mail._domainkey.esempio.tech
Genere la clave privada y la clave pública
Cambiar carpeta:
cd /etc/opendkim/keys
Cree y acceda a una nueva carpeta para el dominio:
sudo mkdir esempio.it
cd esempio.it
Genera las claves:
sudo opendkim-genkey -s mail -d esempio.it
Haga que opendkim sea el propietario de la clave privada:
sudo chown opendkim:opendkim mail.private
Clave pública para los registros DNS del dominio
Abra el archivo mail.txt:
sudo nano -$ mail.txt
La clave pública se define en el parámetro p:
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme"
"0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB" ; ----- DKIM key mail for esempio.it
La parte que te interesa es la que está entre las comillas dobles ":
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme"
"0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB"
Une las dos cadenas de código eliminando las comillas dobles ", luego:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB
Este es el valor para agregar en el campo TXT en los registros DNS de su dominio.
ATENCIÓN no copie esta clave pública, es solo ilustrativa, no funcionará en su servidor.
Reinicie Postfix y OpenDKIM:
sudo service postfix restart
sudo service opendkim restart
Configuración e instalación de DKIM en Ubuntu 18.