DomainKeys Identified Mail (DKIM) permite firmar digitalmente las cabeceras de los correos enviados por un servidor de correo. La principal ventaja que ofrece el firmado de los correos electrónicos con DKIM es que el receptor se asegura que quien el envía el correo electrónico es quien dice ser. Para realizar este proceso se utilizan una serie de claves criptograficas que permiten disminuir el fraude electrónico y mantener la reputación de un dominio de Internet.

Este sistema ha sido desarrollado y llevado a ser un estandard por Alt-N Technologies, AOL, Brandenburg InternetWorking, Cisco, EarthLink, IBM, Microsoft, PGP Corporation, Sendmail, StrongMail Systems, Tumbleweed, VeriSign y Yahoo! entre otros.

Este tutorial se va a centrar en la instalación y configuración de DKIM en el sistema operativo CentOS 6.3.

Tutorial

RPMfind es un repositorio alternativo a los oficiales de CentOS que tiene multitud de software adicional. Actualmente la ultima versión que existe es dkim-milter-2.8.3-8

Selec All Code:
1
2
wget ftp://fr2.rpmfind.net/linux/epel/6/x86_64/dkim-milter-2.8.3-8.el6.x86_64.rpm
rpm -ivh dkim-milter-2.8.3-8.el6.x86_64.rpm

 

Una vez instalado el paquete, debemos generar las claves para el dominio que necesitamos. Reemplazar linux4dummies.es para el dominio que queramos generar las claves.

Selec All Code:
1
dkim-genkey -r -d linux4dummies.es

 

La salida de este comando nos va a generar dos ficheros.

default.txt -> Este fichero contiene la clave publica que tenemos que publicar en la zona dns de nuestro dominio.
default.private -> Este fichero contiene la clave privada que es la que utiliza el servidor de correo (Postfix) para firmar los mensajes salientes.

Hay que renombrar los ficheros y moverlos a los directorios de claves.

Selec All Code:
1
2
3
4
5
6
7
mv default.private linux4dummies.es_private
mkdir /etc/mail/dkim/keys/linux4dummies.es
mv linux4dummies.es_private /etc/mail/dkim/keys/linux4dummies.es
chmod 600 /etc/mail/dkim/keys/linux4dummies.es/linux4dummies.es_pr
ivate
chown dkim-milt.dkim-milt /etc/mail/dkim/keys/linux4dummies.es/lin
ux4dummies.es_private

 

Lo siguiente que tenemos que hacer es publicar la clave publica en la zona dns de nuestro dominio para que los servidores de correo puedan verificar los correos electrónicos firmados. Debemos copiar el contenido del fichero default.txt al fichero de zona.

Selec All Code:
1
2
3
4
5
dkim._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQE
BAQUAA4GNADCBiQKBgQDB48aQVPDbjmDdwlKw/DdfIis9XZD7sHjzB2HUDMpSGCSil
cA0qFSRyhermfticOAjizIwyhaxfsSt9Hikv4YH2Fw79VrYywIRv150kdHyYqN1TT2
nGUx0pysQOTtG/z/SClxeIInH4j/AWAXTSrh6eZ/pfqGqvQZeidSEHd0iXQIDAQAB"
; ----- DKIM default for linux4dummies.es

 

También hay que añadir en la siguiente linea este código.

Selec All Code:
1
_ssp._domainkey IN TXT "t=y; dkim=unknown"

 

Ahora tenemos que configurar el servicio que va a comprobar y firmar los correos.

Selec All Code:
1
vim /etc/dkim-filter.conf

 

La configuración final debería quedar muy similar a lo siguiente:

Selec All Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
ADSPDiscard yes
ADSPNoSuchDomain yes
AllowSHA1Only no
AlwaysAddARHeader no
AutoRestart yes
AutoRestartRate 10/1h
BaseDirectory /var/run/dkim-milter
Canonicalization simple/simple
Domain linux4dummies.es #add all your domains here and seperate th
em with comma
ExternalIgnoreList /etc/mail/dkim/trusted-hosts
InternalHosts /etc/mail/dkim/trusted-hosts
KeyList /etc/mail/dkim/keylist
LocalADSP /etc/mail/dkim/local-adsp-rules
Mode sv
MTA MSA
On-Default reject
On-BadSignature reject
On-DNSError tempfail
On-InternalError accept
On-NoSignature accept
On-Security discard
PidFile /var/run/dkim-milter/dkim-milter.pid
QueryCache yes
RemoveOldSignatures yes
ReportAddress postmaster@linux4dummies.es
Selector default
SignatureAlgorithm rsa-sha256
Socket inet:20209@localhost
StrictTestMode no
Syslog yes
SyslogSuccess yes
TemporaryDirectory /var/tmp
UMask 022
UserID dkim-milt:dkim-milt
X-Header yes

Ahora debemos editar el fichero de claves para referenciar la que hemos creado previamente.

Selec All Code:
1
vim /etc/mail/dkim/keylist

Debe quedar así.

Selec All Code:
1
2
*@linux4dummies.es:linux4dummies.es:/etc/mail/dkim/keys/linux4dumm
ies.es/linux4dummies.es_private

En este punto hemos terminado de configurar el servicio de DKIM y hemos generado las claves publicas y privadas del dominio, si quisiéramos añadir mas dominios, debemos repetir todos los pasos hasta ahora escritos para todos los dominios que necesitemos.

Configurar el Servidor de Correo

Necesitamos añadir el milter a la configuración de Postfix para que pueda capturar los correos entrantes y salientes.

Selec All Code:
1
vim /etc/postfix/main.cf
Selec All Code:
1
2
3
4
smtpd_milters = inet:localhost:20209
non_smtpd_milters = inet:localhost:20209
milter_protocol = 2
milter_default_action = accept

Si tuviéramos mas demonios debemos añadirlo en la linea correspondiente.

Selec All Code:
1
2
3
4
5
smtpd_recipient_restrictions =
....
check_policy_service inet:localhost:20209
....
permit

Para finalizar comprobamos que los servicios que hemos configurado arrancan automáticamente y los arrancamos

Selec All Code:
1
2
chkconfig dkim-milter on
chkconfig postfix on
Selec All Code:
1
2
service dkim-milter start
service postfix start

 

 

 

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="">

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.