Está en la página 1de 7

Instalar y Configurar DKIM con Postfix en Debian Wheezy

Instalar y Configurar DKIM con


Postfix en Debian Wheezy

Julio - 2016
Instalar y Configurar DKIM con Postfix en Debian Wheezy

CONTENIDO

1. Definicin de DKIM
2. Instalar OpenDKIM
3. Configurar OpenDKIM
4. Genere las llaves pblicas y privadas
5. Aade la public key en los records de Dominio DNS

* Nota: Informacin obtenida en http://www.dkim.org/, https://www.digitalocean.com


Instalar y Configurar DKIM con Postfix en Debian Wheezy

1. Definicin de DKIM

DKIM es un estndar de Internet que permite a una persona u organizacin asociar un nombre de
dominio con un mensaje de correo electrnico. Esto, en efecto , sirve como un mtodo de reclamar la
responsabilidad de un mensaje. En esencia , DKIM es alimentado por la criptografa asimtrica. El envio
Mail Transfer Agent (MTA) firma cada mensaje saliente con una clave privada . El receptor recupera la
clave pblica de los registros DNS del remitente y verifica si el cuerpo del mensaje y algunos de los
campos de cabecera no fueron alterados desde la firma de mensajes se llev a cabo .

2. Instalar OpenDKIM

Antes de Instalar, se recomienda una actualizacin del sistema:

#sudo apt-get update


#sudo apt-get dist-upgrade

Instalar OpenDKIM y sus dependencias:

#sudo apt-get install opendkim opendkim-tools

Paquetes adicionales sern listados como dependencias, tipee yes y presione Enter para continuar.

3. Configurar OpenDKIM

Algunos archivos sern creados y editados en orden de configurar OpenDKIM.

#sudo nano /etc/opendkim.conf

Aade las siguientes lneas al final del archivo conf (cada parmetro se explica ms adelante).
Opcionalmente, se puede elegir un nmero de puerto personalizado para el Socket. Asegrese de que
no est siendo utilizado por una aplicacin diferente.

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
Instalar y Configurar DKIM con Postfix en Debian Wheezy

AutoRestart: Reinicio automtico del filtro en los fracasos


AutoRestartRate: especifica la tasa mxima reinicio del filtro, si se reinicia comienzan a suceder
ms rpido que esta velocidad, el filtro se terminar; 10 / 1h - 10 se reinicia / hora se permiten
como mximo
UMask: brinda todos los permisos de acceso para el grupo de usuarios definidos por el UserID y
permite a otros usuarios el leer y ejecutar los archivos, en este caso permitir la creacin y
modificacin de un archivo Pid
Syslog, SyslogSuccess, *LogWhy: estos parmetros permiten detalles de logging a travs de
llamadas hacia el syslog
Canonicalization: define los mtodos cannicos utilizados en la firma de mensajes, el sencillo
mtodo permite casi ninguna modificacin mientras que el relajado tolera cambios de menor
importancia tales como el reemplazo de los espacios en blanco; simple/relajado - la cabecera del
mensaje se procesa con el algoritmo relajado y el cuerpo con el sencillo
ExternalIgnoreList: Especifica los hosts externos que pueden ser enviados a travs del servidor
como uno de los dominios firmantes sin credenciales
InternalHosts: Define una lista de hosts internos cuyos correos deben ser firmados y no
verificados
KeyTable: asocia nombres claves para claves de firma
SigningTable: Enlista las asignaturas a aplicar al mensaje basados en las direcciones
encontradas en el From: header field
Mode: declara los modos de operacin, en este caso los actos milter como un firmante (s, por
signer) y un verificador (v, verifier)
PidFile: el camino hacia el archivo Pid que contiene el nmero de identificacin de proceso
SignatureAlgorithm: selecciona el algoritmo de firma a ser utilizado cuando se crean las firmas
UserID: el proceso de opendkim corre sobre este usuario y grupo
Socket: el milter sern listados en el socket especificado aqu, Postfix enviar mensajes hacia
opedkim por la firma y verificacin a travs de este socket: 12301@localhost define el socket
TCP que escucha en el localhost, puerto 12301

Esta simple configuracin permite la firma de mensajes para uno o ms dominios.

Conecte el milter con el Postfix:

#sudo nano /etc/default/opendkim

Agrege la siguiente lnea, edite el nmero de puerto solamente si est siendo utilizado:

SOCKET="inet:12301@localhost"

Configure el postfix para usar este milter:

#sudo nano /etc/postfix/main.cf

Asegrese que estas 2 lneas se encuentren presente en el config file del Postfix no se encuentren
comentadas:

milter_protocol = 2
milter_default_action = accept

Es probable que un filtro (SpamAssasin, Clamav etc.) ya es utilizado por Postfix; si los siguientes
parmetros estn presentes, simplemente aadir el milter opendkim a ellos (los milters estn separados
por una coma), el nmero de puerto debe ser el mismo que en opendkim.conf:
Instalar y Configurar DKIM con Postfix en Debian Wheezy

smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301


non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301

Si los paametros estn perdidos, definirse entonces como sigue:

smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

Crear una estructura de directorio que contendr los hosts confiables, las tablas de claves, la firma de las
tablas y los cryptokeys:

#sudo mkdir /etc/opendkim


#sudo mkdir /etc/opendkim/keys

Especifique los hosts confiables:

#sudo nano /etc/opendkim/TrustedHosts

Se usar este archivo para definir ambos ExternalIgnoreList y InternalHosts, los mensajes sern
originados desde estos hosts, los dominios y las direcciones IP ser confiables y firmados.

Debido a que la configuracin del archivo main declara TrustedHosts como un archivo de expresin
regular (refile, regular expression file), se pueden utilizar un wildcard patters, *.example.com, esto
significa que el mensaje vienen desde los sub- dominios example.com tambien sern confiables, no solo
aquellos enviados desde el dominio root. Personalize y aada las siguiente lneas al archive recin
creado, Multiples dominios pueden ser especificados, no edite las tres primeras lneas:

127.0.0.1
localhost
192.168.0.1/24

*.example.com

#*.example.net
#*.example.org

Cree una tabla key:

#sudo nano /etc/opendkim/KeyTable

Una tabla key contiene cada par selector/domain y el camino hacia su llave privada (private key).
Cualquier string alfanumrico puede ser usado como un selector. En este ejemplo mail es usado y no es
necesario cambiarlo.

mail._domainkey.example.com
example.com:mail:/etc/opendkim/keys/example.com/mail.private

#mail._domainkey.example.net
example.net:mail:/etc/opendkim/keys/example.net/mail.private
#mail._domainkey.example.org
example.org:mail:/etc/opendkim/keys/example.org/mail.private
Instalar y Configurar DKIM con Postfix en Debian Wheezy

Cree una tabla de firmas:

#sudo nano /etc/opendkim/SigningTable

Este archivo es usado para declarar las direcciones domains/email y sus selectores.

*@example.com mail._domainkey.example.com

#*@example.net mail._domainkey.example.net
#*@example.org mail._domainkey.example.org

4. Genere las llaves pblicas y privadas.

Cambie los directorios key

#cd /etc/opendkim/keys

Crear una carpeta separada para el dominio para tener las llaves:

#sudo mkdir example.com


#cd example.com

Generar las llaves:

#sudo opendkim-genkey -s mail -d example.com

-s especifica el selector y -d de domain, este comando crea dos archivos, mail.private es la private key y
el mail.txt contiene la public key.

Cambie el propietario de la private key hacia el opendkim:

#sudo chown opendkim:opendkim mail.private

5. Aade la public key en los records de Dominio DNS

Abra el mail.txt:

#sudo nano -$ mail.txt

La clave pblica se define en el parmetro p. No utilice la clave siguiente ejemplo, que es slo una
ilustracin y no funcionar en su servidor.

mail._domainkey IN TXT "v=DKIM1; k=rsa;


p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGYcKBPpo8HHbc
FfCIIV10Hwo4PhCoGZSaKVHOjDm4yefKXhQjM7iKzEPuBatE7O47hAx1CJpNuIdLxhILSbEmbMxJrJA
G0HZVn8z6EAoOHZNaPHmK2h4UUrjOG8zA5BHfzJf7tGwI+K619fFUwIDAQAB" ; ----- DKIM key
mail for example.com

Copiar esa clave y aadir un registro TXT a la entrada DNS del dominio:
Instalar y Configurar DKIM con Postfix en Debian Wheezy

Name: mail._domainkey.example.com.

Text: "v=DKIM1; k=rsa;


p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGYcKBPpo8HHbc
FfCIIV10Hwo4PhCoGZSaKVHOjDm4yefKXhQjM7iKzEPuBatE7O47hAx1CJpNuIdLxhILSbEmbMxJrJA
G0HZVn8z6EAoOHZNaPHmK2h4UUrjOG8zA5BHfzJf7tGwI+K619fFUwIDAQAB"

Tenga en cuenta que los cambios de DNS pueden tardar un par de horas en propagarse.

Reinicie Postfix y OpenDKIM:

#sudo service postfix restart


#sudo service opendkim restart

En este punto se ha configurado correctamente DKIM para su servidor de correo.

La configuracin se puede probar mediante el envo de un correo en blanco a


check-auth@verifier.port25.com y una respuesta ser recibida. Si todo funciona correctamente debera
ver una verificacin DKIM: pasar por debajo Resumen de los resultados.

==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham

Como alternativa, puede enviar un mensaje a una direccin de Gmail que usted controle, vea los
encabezados del correo electrnico recibido en su bandeja de entrada de Gmail, dkim=pass debe estar
presente en el campo de cabecera de autenticacin en los resultados.