Configuración DKIM · 5 min read · Oct 14, 2025
Configurar DKIM (DomainKeys Identified Mail) Funcionando Con Postfix En CentOS Usando OpenDKIM
Configurar DKIM (DomainKeys Identified Mail) Funcionando Con Postfix En CentOS Usando OpenDKIM
Versión 1.0
Autor: Eladio Martinez < [email protected] >
http://twitter.com/mafecsllc
Este tutorial muestra cómo hacer que DKIM funcione en una caja CentOS que ejecuta Postfix usando OpenDKIM, también cubriré algunos consejos simples de solución de problemas y recomendaciones para futuras actualizaciones en su instalación de OpenDKIM.
1 Requisitos
Este tutorial asume que tiene una instalación completa y funcional de CentOS que ejecuta los siguientes servicios:
- Postfix 2.3.3 o mejor actualmente funcionando.
- Sendmail está desactivado.
2 Notas preliminares
Estoy ejecutando todos los pasos en este tutorial con privilegios de root, actualmente estoy ejecutando CentOS 6.3 con OpenDKIM versión 2.4.2 y estaré usando example.com como el dominio principal para este tutorial.
3 Descargar e instalar OpenDKIM
También necesitará instalar los paquetes de desarrollo de OpenSSL y Sendmail, porque contienen algunas “bibliotecas” que necesita para hacer funcionar OpenDKIM.
yum install sendmail-devel openssl-devel
Descargue OpenDKIM en el directorio /usr/local/src:
cd /usr/local/src
wget http://sourceforge.net/projects/opendkim/files/opendkim-2.4.2.tar.gz
Extraiga, configure, compile e instale OpenDKIM con:
tar zxvf opendkim-2.4.2.tar.gz
cd opendkim-2.4.2
./configure –sysconfdir=/etc –prefix=/usr/local –localstatedir=/var
make
make install
Tenga en cuenta que el comando ./configure incluye algunas banderas muy importantes, que se pasarán al script de inicio que se crea cuando se ejecuta el comando de configuración. La primera indica al sistema dónde se ubicará el archivo de configuración de OpenDKIM, la segunda establece el prefijo preferido para algunas otras ubicaciones de archivos importantes, y la última controla el directorio donde se almacenará el archivo PID para OpenDKIM.
4 Crear un nuevo usuario
Agregue un nuevo usuario para DKIM llamado opendkim con las siguientes opciones:
useradd -r -U -s /sbin/nologin opendkim
Este comando creará una nueva cuenta de sistema (-r) y grupo (-g) llamado opendkim y asignará acceso sin shell a este usuario (-s).
5 Crear directorios de trabajo
Cree algunos nuevos directorios para OpenDKIM y asígnele la propiedad y permisos adecuados con:
mkdir -p /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod -R go-wrx /etc/opendkim/keys
6 Copiar el script de inicio a /etc/init.d/
El paquete fuente de OpenDKIM incluye un directorio contrib que contiene un script de inicio personalizado para ser utilizado con todos los sistemas compatibles con RedHat, incluidos Fedora y CentOS. Puede copiarlo a su directorio /etc/init.d/ para facilitar el inicio, detención, reinicio y recarga de OpenDKIM:
cp /usr/local/src/opendkim-2.4.2/contrib/init/redhat/opendkim /etc/init.d/
Ahora establezca los permisos correctos para el script de inicio:
chmod 755 /etc/init.d/opendkim7 Generar claves para firmar
Necesita generar una clave privada y una clave pública para cada uno de los dominios para los que desea firmar correos. La clave privada se almacena en su servidor, mientras que la clave pública se publica en los registros DNS de su dominio para que los servidores de correo receptores puedan verificar su correo firmado por DKIM.
Necesita decidir ahora cuál será el nombre de su selector. Un selector es una palabra clave única que se asocia con ambas claves (pública y privada), incluida en todas las firmas y publicada en sus registros DNS. Para simplificar, utilizo la palabra default como mi selector predeterminado. Siéntase libre de elegir algo diferente, pero si lo hace, deberá usarlo de manera consistente en toda su configuración. Además, aunque esto debería ser obvio, debe usar su dominio de correo en lugar de example.com en los siguientes pasos.
Cree sus claves:
mkdir /etc/opendkim/keys/example.com
/usr/local/bin/opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
chown -R opendkim:opendkim /etc/opendkim/keys/example.com
mv /etc/opendkim/keys/example.com/default.private /etc/opendkim/keys/example.com/default
En este ejemplo, utilicé la opción -D (directorio), la opción -d (dominio) y las opciones -s (selector). Eso es todo lo que necesita para que esto funcione.
8 Editar archivos de configuración
Necesita crear o editar cuatro archivos:
- 1 /etc/opendkim.conf –- Archivo de configuración principal de OpenDKIM
- 2 /etc/opendkim/KeyTable –- una lista de claves disponibles para firmar
- 3 /etc/opendkim/SigningTable – una lista de dominios y cuentas permitidas para firmar
- 4 /etc/opendkim/TrustedHosts –- una lista de servidores a “confiar” al firmar o verificar
Cree el archivo /etc/opendkim.conf:
vi /etc/opendkim.conf
Asegúrese de que su archivo se vea así:
##
## opendkim.conf -- archivo de configuración para el filtro OpenDKIM
##
AutoRestart Yes
AutoRestartRate 10/1h
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
LogWhy Yes
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
SigningTable refile:/etc/opendkim/SigningTable
Socket inet:8891@localhost
Syslog Yes
SyslogSuccess Yes
TemporaryDirectory /var/tmp
UMask 022
UserID opendkim:opendkimCree el archivo /etc/opendkim/KeyTable:
vi /etc/opendkim/KeyTable
Asegúrese de que su archivo se vea así:
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/defaultEl archivo KeyTable le dice a OpenDKIM dónde encontrar sus claves. Cada entrada en el archivo KeyTable es una sola línea para cada ubicación de clave (por ejemplo, todo el texto en el ejemplo anterior debe estar en una sola línea en su archivo). Si va a usar múltiples claves (para firmar correos para dominios virtuales con diferentes claves), deberá crear una línea separada en el archivo KeyTable para cada dominio.
Cree el archivo /etc/opendkim/SigningTable:
vi /etc/opendkim/SigningTable
Asegúrese de que su archivo se vea así:
*@example.com default._domainkey.example.comEl archivo SigningTable le dice a OpenDKIM cómo usar sus claves, como en qué remitentes deben usar qué selectores para sus firmas. En el ejemplo anterior, estoy diciendo que todos () los que envían correo desde el servidor “example.com” deben usar el selector llamado “default”. Es importante notar que el símbolo comodín solo funcionará si la opción SigningTable usa el prefijo refile: antes del nombre del archivo.
Cree el archivo /etc/opendkim/TrustedHosts:
vi /etc/opendkim/TrustedHosts
Asegúrese de que su archivo se vea así:
127.0.0.1
hostname1.example1.com
example1.com
hostname1.example2.com
example2.comEl archivo TrustedHosts le dice a OpenDKIM quién puede usar sus claves. Debido a que se hace referencia a esta lista en la directiva ExternalIgnoreList en su archivo de configuración, OpenDKIM ignorará esta lista de hosts al verificar el correo entrante y, dado que también se hace referencia a esta lista en la directiva InternalHosts, esta misma lista de hosts se considerará “interna”, y OpenDKIM firmará su correo saliente.
IMPORTANTE: Asegúrese de listar la dirección IP para localhost (127.0.0.1) en el archivo TrustedHosts o OpenDKIM no firmará el correo enviado desde este servidor. Si tiene múltiples servidores en la misma red que reenvían correo a través de este servidor y desea firmar su correo también, deben estar listados en el archivo TrustedHosts. Coloque cada entrada en su propia línea. Una entrada puede ser un nombre de host, un nombre de dominio (por ejemplo, “example.com”), una dirección IP, una dirección IPv6 (incluida una dirección IPv4 mapeada), o una especificación de IP en estilo CIDR (por ejemplo, “192.168.1.0/24?”).
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.