_| | |
__| __ | __| _ _ | __|
__ | | __|_____| | ( | ( | |__
____/ .__/ _| __|___/ ___/ _|____/
_|
Ferramentas simples para manter os registros SPF TXT arrumados para combater 10 pesquisas máximas de DNS.
Nome de domínio spf--ools.eu.org é usado para testar agora.
SPF-Tools desde a versão SPF-Tools/SPF-Tools@f4f51f7 não produzem apenas registros ip4
e ip6
, mas também mantêm os ptr
original e exists
.
Seu registro original do TXT, que causa mais de 10 pesquisas de DNS, deve ser salvo como um registro de txt subdomínio não utilizado (por exemplo, spf-orig.spf-tools.eu.org
).
Crie um arquivo de configuração:
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
Agora basta ligar para qualquer um dos scripts descritos abaixo.
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
é uma ferramenta que resolve todos os blocos ip4
e ip6
encontrados em qualquer subdomínio SPF incluído. Ele imprime todos esses blocos sort(1)
ed e uniq(1)
ed para stdout, um por linha. Outra saída ( Getting ...
) está no stderr.
Exemplo:
./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
A variável de configuração DNS_TIMEOUT
define o número de segundos para o comando host -W SECS
(o mesmo que a opção -t
, consulte Ajuda).
A ferramenta mkblocks.sh
destina -se a analisar uma lista de blocos produzidos pelo despf.sh e preparar o conteúdo dos registros TXT que se encaixam em um pacote UDP, dividindo -se em mais registros TXT, se necessário.
Um registro txt por linha de saída padrão.
./despf.sh | ./normalize.sh | ./simplify.sh | ./mkblocks.sh
Os registros atuais do SPF podem ser verificados pela execução compare.sh
. Se os registros do TXT precisarem de uma atualização, ele executará automaticamente as outras ferramentas para imprimir ou copiar no PasteBuffer, os novos registros TXT em ordem inversa.
A melhor prática é colocar essas linhas em DNS começando com a última. É por isso que xsel.sh
reverte a entrada reunida de mkblocks.sh
.
O último registro a ser atualizado é o registro do ROOT DOMAIN, que apenas contém uma inclusão. Ele sempre deve ser atualizado como o último e o prefixo alternou entre os prefixos spf
e _spf
ao alterar registros, para que os registros sejam consistentes até que a raiz seja alterada.
Para semi-automatizar a tarefa de atualizar os registros, faça a saída da saída de mkblocks.sh
para xsel.sh
Este script cuida dos intervalos CIDR corretos. No momento, apenas IPv4.
Exemplo:
$ ./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 retira endereços IPv4 individuais que já estão contidos nas faixas CIDR.
$ ./simplify.sh <<EOF
> ip4:192.168.0.1
> ip4:192.168.0.0/24
> EOF
ip4:192.168.0.0/24
Dependências: JQ, Awk, Sed, Grep
Script para atualizar registros TXT SPF pré-existentes para um domínio de acordo com a entrada no formato da zona DNS usando a API do CloudFlare.
Para usar esse script, o arquivo .spf-toolsrc
no diretório $HOME
deve conter uma definição de variável TOKEN
que é usada para conectar-se à API Cloudflare. O arquivo também deve conter variáveis DOMAIN
e ORIG_SPF
que representam o domínio SPF de destino (por exemplo, spf-tools.eu.org
) e registro original do SPF com (por exemplo, spf-orig.spf-tools.eu.org
) para usar runspftools.sh
sem modificar o script.
O script está escrito contra v4 de https://api.cloudflare.com/
As únicas permissões necessárias para um token de API personalizado são:
Uso:
./despf.sh | ./normalize.sh | ./simplify.sh | ./iprange.sh | ./cloudflare.sh
Dependências: 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 atualizar registros TXT SPF pré-existentes para um domínio de acordo com a entrada no formato da zona DNS.
A AWS CLI pode ser configurada usando ~/.aws/credentials
ou usando variáveis de ambiente: AWS_ACCESS_KEY_ID
e AWS_SECRET_ACCESS_KEY
(encontre mais detalhes na configuração da documentação da AWS CLI.
Exemplo:
./despf.sh | ./simplify.sh | ./mkblocks.sh |
./route53.sh -a "google-site-verification=deadbeef" DEADBEEF
Dependências extras: iPrange
Esse script otimiza a saída do bloco de endereço IPv4 (semelhante a, mas mais que simplify.sh
porque pode entrar em várias redes em uma maior).
Uso:
./despf.sh | ./iprange.sh
Exemplo:
$ ./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 usando com sucesso um domínio gratuito do eu.org, estamos orgulhosos de espalhar a palavra: domínios livres: 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.