_| | |
__| __ | __| _ _ | __|
__ | | __|_____| | ( | ( | |__
____/ .__/ _| __|___/ ___/ _|____/
_|
Herramientas simples para mantener los registros SPF TXT ordenados para combatir 10 búsqueda de DNS máximas.
El nombre de dominio SPF-Tools.eu.org se usa para probar ahora.
Las herramientas SPF desde la versión SPF-Tools/SPF-Tools@F4F51F7 no producen simplemente registros ip4
e ip6
, sino que también mantienen ptr
originales y exists
.
Su registro TXT original que causa más de 10 búsqueda de DNS debe guardarse como un registro TXT subdominio no utilizado (por ejemplo, spf-orig.spf-tools.eu.org
).
Crear un archivo de configuración:
cat > ~/.spf-toolsrc <<EOF
DOMAIN=spf-tools.eu.org
ORIG_SPF=spf-orig.spf-tools.eu.org
DESPF_SKIP_DOMAINS=_spf.domain1.com:spf.domain2.org
DNS_TIMEOUT=5
DNS_SERVER=
EOF
Ahora solo llame a cualquiera de los scripts descritos a continuación.
Usage: despf.sh [OPTION]... [DOMAIN]...
Decompose SPF records of a DOMAIN. Optionaly can
sort and unique them.
DOMAIN may be specified in an environment variable.
Available options:
-s DOMAIN[:DOMAIN...] skip domains, i.e. leave include
without decomposition
-t N set DNS timeout to N seconds
-h display this help and exit
despf.sh
es una herramienta que resuelve todos los bloques ip4
e ip6
que se encuentran en cualquier subdominio SPF incluido. Imprime todos estos bloques sort(1)
ed y uniq(1)
ed a stdout, uno por línea. Otra salida ( Getting ...
) está en Stderr.
Ejemplo:
./despf.sh google.com
Getting _spf.google.com
Getting _netblocks.google.com
Getting _netblocks2.google.com
Getting _netblocks3.google.com
ip4:173.194.0.0/16
ip4:74.125.0.0/16
...
ip6:2a00:1450:4000::/36
ip6:2c0f:fb50:4000::/36
La variable de configuración DNS_TIMEOUT
establece un número de segundos para el comando host -W SECS
(lo mismo que opción -t
, ver ayuda).
La herramienta mkblocks.sh
está destinada a analizar una lista de bloques producidos por despegf.sh y preparar contenido de registros txt que se ajustan a un paquete UDP, dividiéndose en más registros de TXT si es necesario.
Un registro txt por línea de salida estándar.
./despf.sh | ./normalize.sh | ./simplify.sh | ./mkblocks.sh
Los registros SPF actuales se pueden verificar ejecutando compare.sh
. Si los registros TXT necesitan una actualización, ejecutará automáticamente las otras herramientas para imprimir o copiar en PasteBuffer los nuevos registros TXT en orden inverso.
La mejor práctica es poner esas líneas en DNS comenzando con la última. Es por eso que xsel.sh
invierte la entrada recopilada de mkblocks.sh
.
El último registro que actualiza es el registro de Root Domain que solo contiene una inclusión. Siempre debe actualizarse como el último y el prefijo alternó entre los prefijos spf
y _spf
al cambiar los registros, por lo que todos los registros son consistentes hasta que se cambia la raíz.
Para semiautomicar la tarea de actualizar los registros, aborde la salida de mkblocks.sh
a xsel.sh
Este script se encarga de los rangos CIDR correctos. Por el momento solo IPv4.
Ejemplo:
$ ./normalize.sh <<EOF
> ip4:207.68.169.173/30
> ip4:207.68.169.175/30
> ip4:65.55.238.129/26
> EOF
ip4:207.68.169.172/30
ip4:207.68.169.172/30
ip4:65.55.238.128/26
Este script elimina las direcciones IPv4 individuales que ya están contenidas en los rangos de CIDR.
$ ./simplify.sh <<EOF
> ip4:192.168.0.1
> ip4:192.168.0.0/24
> EOF
ip4:192.168.0.0/24
Dependencias: JQ, AWK, SED, GREP
Script para actualizar los registros TXT preexistentes de TXT para un dominio de acuerdo con la entrada en formato de zona DNS utilizando la API de CloudFlare.
Para usar este script, el archivo .spf-toolsrc
en $HOME
Directory debe contener una definición de variable TOKEN
que luego se usa para conectarse a la API de CloudFlare. El archivo también debe contener variables DOMAIN
y ORIG_SPF
que representen el dominio SPF objetivo (por ejemplo, spf-tools.eu.org
) y el registro SPF original con incluye ( spf-orig.spf-tools.eu.org
. Ej. runspftools.sh
sin modificar el script.
El script está escrito contra V4 de https://api.cloudflare.com/
Los únicos permisos necesarios para un token API personalizado son:
Uso:
./despf.sh | ./normalize.sh | ./simplify.sh | ./iprange.sh | ./cloudflare.sh
Dependencias: JQ, AWS, AWK, SED, GREP
Usage: route53.sh [OPTION]... [HOSTED_ZONE_ID]
Script to update pre-existing TXT SPF records for
a domain according to the input in DNS zone format.
Available options:
-t TTL set Time To Live for DNS records
-a TXT RECORD set aditional TXT record to domain (can be used multiple times)
Default values:
TTL = 300
Script para actualizar los registros de TXT preexistentes de TXT para un dominio de acuerdo con la entrada en formato de zona DNS.
La AWS CLI se puede configurar usando ~/.aws/credentials
o usando variables de entorno: AWS_ACCESS_KEY_ID
y AWS_SECRET_ACCESS_KEY
(encuentre más detalles en la configuración de la documentación de AWS CLI.
Ejemplo:
./despf.sh | ./simplify.sh | ./mkblocks.sh |
./route53.sh -a "google-site-verification=deadbeef" DEADBEEF
Dependencias adicionales: iPrange
Este script optimiza la salida del bloque de direcciones IPv4 (similar a, pero más que simplify.sh
porque puede unir varias redes en una más grande).
Uso:
./despf.sh | ./iprange.sh
Ejemplo:
$ ./despf.sh cont.spf-tools.eu.org
ip4:13.111.0.0/24
ip4:13.111.1.0/24
ip4:13.111.2.0/24
ip4:13.111.3.0/24
$ ./despf.sh cont.spf-tools.eu.org | ./iprange.sh
ip4:13.111.0.0/22
./despf.sh | ./normalize.sh | ./simplify.sh | ./iprange.sh
| ./mkblocks.sh | ./xsel.sh
Como estamos utilizando con éxito un dominio EU.org gratuito, estamos orgullosos de difundir la palabra: dominios gratuitos: http://www.eu.org/
Copyright 2015-2019 spf-tools team (see AUTHORS)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.