Firmar correos con DKIM en Postfix

postfix dkim

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:

DELETE THIS PAGE!!

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!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *