_| | |
__| __ | __| _ _ | __|
__ | | __|_____| | ( | ( | |__
____/ .__/ _| __|___/ ___/ _|____/
_|
保持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.