Cuando administramos nuestro propio correo es indudable tener que ir hacia un ambiente lo más seguro posible. En este punto es donde entra en juego DMARC SPF y DKIM. En este punto, te vamos a mostrar como Firmar correos con DKIM en Postfix paso a paso.
Estamos utilizando en este tutorial UBuntu 24.04 (si la version de ubuntu es muuuuy vieja probablemente opendkim no te sirva).
Instalamos las herramientas que requerimos para firmar
sudo apt update && sudo apt upgrade -y
sudo apt install opendkim opendkim-tools
Editamos el archivo de configuración:
sudo nano /etc/opendkim.conf
y ponemos en su interior una configuración sencilla:
# Configuración básica
Domain *
KeyFile /etc/opendkim/keys/default.private
Selector default
Socket inet:8891@localhost
# Configuración de firma
Canonicalization relaxed/simple
Mode sv
SubDomains no
# Logging
Syslog yes
SyslogSuccess yes
LogWhy yes
# Configuración de usuario/group
UserID opendkim:opendkim
Configuramos los dominios que firmamos editando Trustedhost
sudo nano /etc/opendkim/TrustedHosts
en su interior:
127.0.0.1
localhost
*.tudominio.com
tudominio.com
Generamos carpetas y claves:
# Crear directorio para las claves
sudo mkdir -p /etc/opendkim/keys/tudominio.com
cd /etc/opendkim/keys/tudominio.com
# Generar par de claves
sudo opendkim-genkey -s default -d tudominio.com
# Cambiar propietario
sudo chown opendkim:opendkim default.private
sudo chmod 600 default.private
Aca una nota importante: Hay generadores web que te permiten generar las claves pero que a su vez te indican «si la generaste con esta web preciona BORRAR ESTA PAGINA» al menos si es una herramienta seria como https://dkimcore.org/tools/keys.html
Hice el ejemplo con tudominio.com y mira:

Editamos postfix:
sudo nano /etc/postfix/main.cf
Al final del archivo:
# Agregar al final del archivo
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
Tenemos el selector y el dominio:
sudo nano /etc/opendkim/SigningTable
vamos a agregar:
*@tudominio.com default._domainkey.tudominio.com
Editamos la tabla de llaves:
sudo nano /etc/opendkim/KeyTable
default._domainkey.tudominio.com tudominio.com:default:/etc/opendkim/keys/tudominio.com/default.private
Reiniciamos los servicios en cuestion:
sudo systemctl restart opendkim
sudo systemctl enable opendkim
sudo systemctl restart postfix
Obtenemos el Registro DNS:
sudo cat /etc/opendkim/keys/tudominio.com/default.txt
el registro debe verse similar a esto:
default._domainkey.tudominio.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."
Si el dns se maneja desde otra plataforma recorda que hay que publicarlo correctamente.
# Verificar que OpenDKIM esté escuchando
sudo netstat -tlnp | grep 8891
# Probar la firma
sudo opendkim-testkey -d tudominio.com -s default -vvv
# Verificar logs
sudo tail -f /var/log/mail.log
Espero poder haber dado una mano con el tema!
