SPF y DOMAINKEYS en CPANEL

Después de luchar tanto para que los correos lleguen a HOTMAIL y YAHOO sin que estos lleguen a Spam/bulk o que al menos los reconozca como firmados y enviados por la misma entidad (O sea que no sean spam), logré hacerlo funcionar.

A su vez detecté por qué GMAIL no tiene tanto spam y la razón es practicamente sencilla:
Yahoo utiliza “DomainKeys” y hotmail utiliza “SPF” gmail usa los dos y sus propias tecnicas (así como el spamassassin pero propias).
4 servidores fueron actualizados y están corriendo ahora con todos los protocolos, que así estaban instalados y supuestamente funcionando, en la practica era todo lo contrario (Gracias EXIM gracias CPANEL!).

Resultó ser que en la mayoria de los servidores utilizo una IP diferente para el envio de correos, o sea que la SHARED IP, es utilizada sólo para dominios, y ahí el conflicto de intereses.
Exim no estaba firmando con las correctas KEY cada correo saliente, y por ende llegaban a bulk/spam en casí todos los servidores que tuvieran estos como requisitos.

A continuación pasaré a comentar mi forma de instalar esto, (Y lo haré suponiendo que utilizan EXIM en su shared IP, cualquier sitio que tenga IP dedicada, deberá tener asignado un MX record hacia dicha IP)

Lo primero que hice fue actualizar cpanel a la última versión:
Ir a WHM, cambiar la configuaración de update config a: Manual Updates Only (STABLE tree)

Loguearse en SSH: /scripts/upcp

una vez actualizado y sin errores, proceder a hacer actualizaciones de software (En su mayoria innecesarias, ya que se actualizan automaticamente, si la opción está seteada en el firewall)

Esta modificación es óptima y espero la cumplan a RAJATABLA.

pico /usr/local/cpanel/Cpanel/SPF.pm (O cualquier editor que les guste más)

Encontrar y reemplazar:

push @installlist,
{
‘match’ => ‘v=spf’,
‘removematch’ => ( ( $overwrite || !$spf_match ) ? ‘v=spf’ : $spf_match ),
‘domain’ => $domain,
‘record’ => $domain,
‘value’ => ‘v=spf1 a mx’ . $safekeys . ( $is_complete ? ‘-all’ : ‘?all’ )
};
}
Por:

push @installlist,
{
‘match’ => ‘v=spf’,
‘removematch’ => ( ( $overwrite || !$spf_match ) ? ‘v=spf’ : $spf_match ),
‘domain’ => $domain.”.”,
‘record’ => $domain.”.”,
‘value’ => ‘v=spf1 a mx’ . $safekeys . ( $is_complete ? ‘-all’ : ‘?all’ )
};
}
(la idea en principio la saqué de: acá , pero en vista de que esta página no está actualizada, les actualizo los valores)

cuando tengan esto listo en ssh logueados como root ingresan:

/usr/local/cpanel/bin/spf_installer {username}

Reemplazar {username} por el usuario correspondiente.

Van a administración de dns en WHM, ingresan el dominio que pertenece al usuario y se fijan que esté instalado el SPF de forma correcta:

Debería ser algo así: invisionarg.com.ar. 1440 TXT “v=spf1 a mx ?all”

En realidad a invisionarg.com.ar le puse: “v=spf1 a mx ?all” (Enviaban emails con mis dominios, con ? el servidor dice “No estoy seguro” y con – a rajatabla debe ser enviado el email desde el servidor)

Una vez que tienen lista esa primer parte, envian un email a: spf-test@openspf.org

Este sitio les devolverá un email de error, el email de error debe contener LO SIQUIENTE:
SPF Tests: Mail-From Result=”pass”:

Si está bien, ahora no deberían tener problemas para enviar emails a HOTMAIL.

Si tenés algún problema te recomendaría que te fijes en:

  • Que el reverse dns de tu ip sea el mismo que el host (ip: 127.0.0.1 reverse: server1.invisionarg.com)
  • Que el host (ervidor1.invisionarg.com) tenga asignada la ip: 127.0.0.1 como A record en tus DNS

Asumo que cambiarás 127.0.0.1 por tu ip así como el host.

Ok sigamos

una vez que esto funcione :) lo que harás será en SSH:

for i in `ls /var/cpanel/users` ;do /usr/local/cpanel/bin/spf_installer $i ;done

Domainkeys me dió un dolor de cabeza enorme pero al fin logré terminarlo como la gente:

En este caso no tenés que asignar nada de otro mundo, es completamente sencillo, pero RECUERDEN ACTUALIZAR TODO.
Si tienen todo actualizado con sólo correr este comando, está todo dicho:
for i in `ls /var/cpanel/users` ;do /usr/local/cpanel/bin/domain_keys_installer $i ;done

Si necesitan saber como hacerlo funcionar de forma automatica:
Editen las zonas DNS para que estas cumplan con el requisito de SPF.
Editen un archivo en scripts (Esto me lo dió cpanel) para que se ejecute cuando crean una cuenta.

PARA SPF: http://www.cpanelconfig.com/how-to/install-spf-records-on-a-cpanel-server/ ((Pueden leer acá, está completo en ese tema, desactualizado en otro)

Para domainskeys:

pico /scripts/postwwwacct

Pegar adentro:

#!/usr/bin/perl
my %OPTS = @ARGV;
my $user = $OPTS{’user’};
/usr/local/cpanel/bin/domain_keys_installer $user

En fin, espero que les sea de utilidad a los que desconocen, o a los que como a mi, esto nos generó un dolor de cabeza.
Igualmente les digo que sólo desde uno de los servidores, llegaba a spam, desde el resto, llegaba de forma correcta.


bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark
tabs-top

Deja un comentario