Buscar este blog

lunes, 24 de febrero de 2014

Instalar DKIM in CentOS 6 con Plesk Panel

Esta semana tuve la oportunidad de asumir el reto de instalar opendkim en centos 6 con plesk para poder firmar nuestros correos y asi llegar a bandeja. Eso es lo que usan ahora las empresas dedicadas al negocio de envio de email como servicio por ejemplo Amazon SES y Mailgun de Rackspace, estos dos son muy buenos ejemplos. Pero ahora la idea es hacer lo mismo en nuestros propios servidores.

http://www.rosehosting.com/blog/how-to-install-and-integrate-opendkim-with-postfix-on-a-centos-6-vps/
http://blog.matoski.com/articles/spf-dk-dkim-plesk-debian/
http://stevejenkins.com/blog/2010/09/how-to-get-dkim-domainkeys-identified-mail-working-on-centos-5-5-and-postfix-using-opendkim/
## wget -P /tmp http://mirror.pnl.gov/epel/6/i386/epel-release-6-8.noarch.rpm
## rpm -Uvh /tmp/epel-release-6-8.noarch.rpm
## rm -f /tmp/epel-release-6-8.noarch.rpm
Install the package using yum:
## yum install opendkim

Despues de haber instalado open dkim hacemos lo siguiente:

si no esta creada la carpeta /etc/opendkim/keys la creamos sino omitimos el primer comando:

mkdir -pv /etc/opendkim/keys chown -Rv opendkim:opendkim /etc/opendkim chmod go-rwx /etc/opendkim/*

Luego creamos una carpeta con el dominio y generamos la firma digital y asignamos permisos

mkdir -p /etc/opendkim/keys/myserverplace.de cd /etc/opendkim/keys/myserverplace.de opendkim-genkey -d myserverplace.de -s mail chown -Rv opendkim:opendkim /etc/opendkim/keys/myserverplace.de chmod -v u=rw,go-rwx *

Luego asignar permisos 644 a Trustedhost,SigninTable y Keytable
Luego asignar permisos 700 a la carpeta y subcarpetas de keys

Luego editar nuestro archivo Trustedhost y poner las ips o dominios permitidos
En el archivo Keytable poner lo siguiente
mail._domainkey.linkwebservices.com linkwebservices.com:mail:/etc/opendkim/keys/linkwebservices.com/mail.private

En el archivo Signingtable poner lo siguiente:
*@linkwebservices.com mail._domainkey.linkwebservices.com

Una vez que hagamos esto ir a la configuracion dns de nuestro dominio y agregar un registro txt llamado _mail.domainkey debe quedar como lo siguiente :
mail._domainkey.linkwebservices.com  TXT  v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7KtU5uKKA5GJsghjQ/FzFcY0ryDsmoUMcICR2uie22gJqZ016gIHxwSWMbMjz/EliHTMrpJPMmMGQ0YU9NnuBlCWbM8XyVSrj7QWFVvbF/tXBp3COatoOWw3qVfzSBZ4NwaZXLVdU/c5jZJiyWpKgJJCxHTxkoXWDvgcXmr4LeQIDAQAB

Pueden testear su registro dns con estas dos herramientas.


Los siguientes pasos son configurar nuestro archivo /etc/opendkim.conf y /etc/postfix/main.cf

El contenido del primer archivo debe quedar asi:

##
## opendkim.conf -- configuration file for OpenDKIM filter
##
Canonicalization        relaxed/relaxed
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
LogWhy                  Yes
MinimumKeyBits          1024
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SigningTable            refile:/etc/opendkim/SigningTable
Socket                  inet:8891@127.0.0.1
Syslog                  Yes
SyslogSuccess           Yes
TemporaryDirectory      /var/tmp
UMask                   022
UserID                  opendkim:opendkim

Y en el segundo archivo añadimos al final lo siguiente:
# OpenDKIM
#milter_protocol = 6
smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

Comentamos la linea del protocolo porque no me funciono a pesar de que en el blog de matoski de donde obtuve información decia que si le funcionó sin nigun problema. Igual pueden probar de las dos formas, ya lo dejo a criterio de ustedes.

Finalmente reiniciamos opendkim y postfix
service opendkim restart
service postfix restart

con hacer esto deberia de terminar todo, pero no es asi, por alguna razon, cuando reiniciamos opendlim, genera un certificado por defecto el cual resetea los permisos de nuestra carpeta keys, hay que cerciorarnos de que la carpeta keys tenga los permisos correspondientes que señalamos arriba

chown -R 700 keys/
 chown -R opendkim:opendkim keys/

volvemos a reiniciar los servicios

service opendkim restart
service postfix restart

ahora si ya esta todo configurado correctamente :D

no olvidar setear opendkim como servicio de inicio para que se inicie cuando bootee el sistema:
chkconfig opendkim on

Con eso deberia poder estar firmando sus correos, y mas un spf valido deberian estar llegando a bandeja de entrada en gmail y outlook y otros servicios que usen DKIM, ojo el ip tambien debe estar limpio, no tener requisitorias de haber sido usado para enviar spam, porque por ejemplo yahoo bloquea ips que han tenido un historial malo, y asi usen dkim, los seguira rechazando, ojo con eso.
Este tutorial se puede aplicar a aquellas direcciones ips que sabiendo que estan limpias, no llegan a bandeja de entrada y lo envian a la carpeta de spam. Con esto deberian los emails llegar a bandeja. Al menos yo lo comprobe con el dominio que hice las pruebas y todo fue exitoso. 
Pueden enviar un email a estas direcciones para obtener un reporte de spf, domainkeys y DKIM
  • check-auth@verifier.port25.com
  • AAAA3QcKCQwA@appmaildev.com

Saludos.



1 comentario:

  1. interesante, lo he realizado y a esperas de la propagacion de las dns todo creo que ok

    un apunte, donde pones ip 127.0.0.1, yo lo he sustituido por 127.0.0.0 o de lo contrario me tiraba un error smpt al enviar el mail de verificacion

    saludos !

    ResponderEliminar