_| | |
__| __ | __| _ _ | __|
__ | | __|_____| | ( | ( | |__
____/ .__/ _| __|___/ ___/ _|____/
_|
保持SPF TXT记录整洁的简单工具,以与10个最大DNS查找。
域名spf-tools.eu.org现在用于测试。
SPF-Tools由于版本SPF-Tools/spf-tools@f4f51f7不仅输出ip4
和ip6
记录,而且还保留原始ptr
和exists
。
您的原始TXT记录引起了10多个DNS查找的记录,应保存为原本未使用的子域TXT记录(例如spf-orig.spf-tools.eu.org
)。
创建一个配置文件:
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
现在只需调用下面描述的任何脚本即可。
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
是一种解决所有随附的SPF子域中发现的所有ip4
和ip6
块的工具。它打印所有这些块sort(1)
ed和uniq(1)
ed to stdout,每行1。其他输出( Getting ...
)在stderr上。
例子:
./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
DNS_TIMEOUT
配置变量设置了host -W SECS
命令的秒数(与选项-t
相同,请参见帮助)。
mkblocks.sh
工具旨在解析despf.sh生成的块的列表,并准备所有适合一个UDP数据包的TXT记录的内容,并在需要时将更多的TXT记录分为更多TXT记录。
每行标准输出线一个TXT记录。
./despf.sh | ./normalize.sh | ./simplify.sh | ./mkblocks.sh
当前的SPF记录可以通过运行compare.sh
来验证。如果TXT记录需要更新,它将自动运行其他工具,以相反的顺序将新的TXT记录打印或复制到PasteBuffer中。
最好的做法是从最后一条开始将这些行放入DNS中。这就是为什么xsel.sh
逆转从mkblocks.sh
收集的输入的原因。
更新的最后一个记录是根域的记录,它只包含一个。它应始终作为最后一个更新,并且在更改记录时在spf
和_spf
前缀之间交替使用前缀,因此记录都一致,直到Root One更改为止。
为了将更新记录的任务半自动化,请将mkblocks.sh
的输出输送到xsel.sh
该脚本负责正确的CIDR范围。目前仅IPv4。
例子:
$ ./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
该脚本取出已经包含在CIDR范围中的单个IPv4地址。
$ ./simplify.sh <<EOF
> ip4:192.168.0.1
> ip4:192.168.0.0/24
> EOF
ip4:192.168.0.0/24
依赖项:JQ,AWK,SED,GREP
使用CloudFlare的API,根据DNS区域格式的输入来更新域预先存在的TXT SPF记录。
要使用此脚本,请在$HOME
目录中使用file .spf-toolsrc
包含TOKEN
变量定义,然后将其连接到CloudFlare API。该文件还应包含DOMAIN
目标SPF域(例如spf-tools.eu.org
)和原始SPF记录的域和ORIG_SPF
变量,其中包含(例如spf-orig.spf-tools.eu.org
) runspftools.sh
不修改脚本。
该脚本是针对https://api.cloudflare.com/的V4编写的
自定义API令牌的唯一需要的权限是:
用法:
./despf.sh | ./normalize.sh | ./simplify.sh | ./iprange.sh | ./cloudflare.sh
依赖项: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
脚本根据DNS区域格式的输入更新域预先存在的TXT SPF记录。
AWS CLI可以使用~/.aws/credentials
或使用环境变量进行配置: AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
(在配置AWS CLI文档中找到更多详细信息。
例子:
./despf.sh | ./simplify.sh | ./mkblocks.sh |
./route53.sh -a "google-site-verification=deadbeef" DEADBEEF
额外的依赖性:iPrange
该脚本优化了IPv4地址块输出(类似于,但比simplify.sh
的更多,因为它可以将多个网络加入一个更大的网络)。
用法:
./despf.sh | ./iprange.sh
例子:
$ ./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
由于我们成功地使用了一个免费的eu.org域,因此我们很荣幸地传播:免费域: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.