Cómo añadir una entrada SPF a todos los dominios de un servidor cPanel nueva
Introducción
Cualquiera que tenga la administración de un servidor con cPanel, habrá sufrido en algún momento la dictadura de Microsoft con su patético y cruel sistema de anti-spam, denominado SNDS (Smart Network Data Service).
La entrada de una IP de un servidor de correo en este dichoso sistema, es la antesala de un montón de problemas, comenzando por la poca ética y corresponsabilidad de Microsoft con los administradores de sistemas.
Desde hace años, la mejor salida pasa por tener preparados microservidores con un servidor de correo (recomiendo Postfix) configurados para hacer de smarthost de tal forma que en caso de alcanzar en el punto rojo con el SNDS de Microsoft, podamos sacar el correo a través de dicho smarthost, mientras luchamos contra el gigante y su penoso soporte entre pares.
Despliegue
cPanel tiene esta opción desde hace años integrada en su panel WHM, e incluye una marca (checkbox) para añadir la entrada a las zonas DNS, pero esta nunca me funcionó bien ni es la adecuada a mis necesidades.
Esta actualización es necesaria, ya que de lo contrario cualquier servidor de correo que tenga configurado meridianamente bien su sistema de correo y antispam, rechazará el correo porque las entradas DNS de los dominios, (sobre todo si está DKIM activado) no contendrán respuesta adecuada sobre la IP del smarthost.
Es imperativo añadir la IP o el hostname del servidor smarthost.
Script para añadir la entrada SPF a todos los dominios del servidor
Comando para añadir un FQDN
cat /etc/localdomains | xargs -n 1 /scripts/whoowns | sort | uniq | egrep -v '^$' | xargs -n 1 -I account sh -c 'echo Installing for account...;/usr/local/cpanel/bin/spf_installer account include:_smart.domain.tld echo Done.'
Comando para añadir una IP
cat /etc/localdomains | xargs -n 1 /scripts/whoowns | sort | uniq | egrep -v '^$' | xargs -n 1 -I account sh -c 'echo Installing for account...;
/usr/local/cpanel/bin/spf_installer account +ip4:192.88.99.21; echo Done.'
Enlaces
- Microsoft (Hotmail y otros): como defenderse de sus listas negras con JMRP y SNDS de microsoft
- Hotmail – outlook: error … since part of their network is on our block list
- How to add an SPF entry to all domains on the server
Otro tip para todos las cuentas
How to add an SPF entry to all domains on the server
Añade un hostname
cat /etc/localdomains | xargs -n 1 /scripts/whoowns | sort | uniq | egrep -v '^$' | xargs -n 1 -I account sh -c 'echo Installing for account...; /usr/local/cpanel/bin/spf_installer account include:example.domain.tld; echo Done.'
Añade una ip
cat /etc/localdomains | xargs -n 1 /scripts/whoowns | sort | uniq | egrep -v '^$' | xargs -n 1 -I account sh -c 'echo Installing for account...; /usr/local/cpanel/bin/spf_installer account +ip4:192.88.99.21; echo Done.'
Quieres añadir mas de una ip?
cat /etc/localdomains | xargs -n 1 /scripts/whoowns | sort | uniq | egrep -v '^$' | xargs -n 1 -I account sh -c 'echo Installing for account...; /usr/local/cpanel/bin/spf_installer account '+ip4:192.0.2.0/24,-ip4:203.0.113.5,+ip6:2001:db8:1a34::/64'; echo Done.'
Help del comando
/usr/local/cpanel/bin/spf_installer --help
Usage: /usr/local/cpanel/bin/spf_installer <user> [policy [is-complete [overwrite [preserve]]]]
Installs an SPF policy in TXT records for the given user's domains.
Note: The following will be prepended to the policy: +a +mx +ip4:<main-IP>.
Options:
<user> User whose domains will receive the SPF record.
<policy>
Comma delimited list of SPF mechanisms to include in the
policy, e.g:
'+ip4:192.0.2.0/24,-ip4:203.0.113.5,+ip6:2001:db8:1a34::/64'.
Default: ""
<is-complete>
Indicates whether the policy represents a complete record,
that is, whether it should terminate with "-all". Use "1"
to indicate that it is; otherwise, use "0". Default: "0"
<overwrite>
Indicates whether all SPF records should be overwritten for
the user. If not, only select records will be replaced; see
Overwrite. Use "1" to indicate that it should; otherwise,
use "0". Default: "0"
<preserve>
Indicates that existing mechanisms should be retained from the
current SPF record for the domain. Use "1" to indicate that
they should be kept; otherwise, use "0". Default: "0"
Overwrite
When this script is run, the zone file for the domain is inspected and the
first SPF record that is found (generally, the main domain) is recorded. Any
other subdomains that have an identical SPF record to this one are replaced.
If <overwrite> is "1", then all SPF records, regardless of whether their
content matches the first record, are replaced.
Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris
Si necesitas soporte profesional puedes contratar con Castris soporte profesional.