_| | |
__| __ | __| _ _ | __|
__ | | __|_____| | ( | ( | |__
____/ .__/ _| __|___/ ___/ _|____/
_|
SPF TXT 레코드를 깔끔하게 유지하기위한 간단한 도구.
도메인 이름 spf-tools.eu.org는 지금 테스트에 사용됩니다.
SPF-Tools 버전 SPF-TOOLS/SPF-TOOLS@F4F51F7은 ip4
및 ip6
레코드를 출력하지 않고 원래 ptr
을 유지하고 exists
.
10dns 이상의 조회를 유발하는 원래 TXT 레코드는 사용되지 않은 하위 도메인 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를 줄당 한 줄에 하나씩 인쇄합니다. 다른 출력 ( 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 레코드.
./despf.sh | ./normalize.sh | ./simplify.sh | ./mkblocks.sh
compare.sh
실행하여 현재 SPF 레코드를 확인할 수 있습니다. TXT 레코드에 업데이트가 필요한 경우 다른 도구를 자동으로 실행하여 새 TXT 레코드를 역 순서로 인쇄하거나 복사합니다.
모범 사례는이 라인을 마지막으로 시작하여 DNS에 넣는 것입니다. 그렇기 때문에 xsel.sh
mkblocks.sh
에서 수집 한 입력을 뒤집는 이유입니다.
마지막으로 업데이트하는 레코드는 포함 된 루트 도메인의 레코드입니다. 레코드를 변경할 때 spf
와 _spf
접두사 사이를 번갈아 가면서 항상 마지막으로 업데이트되어야하며, 루트가 변경 될 때까지 레코드가 모두 일관됩니다.
레코드를 업데이트하는 작업을 반자동으로 만들려면 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에 연결하는 데 사용됩니다. 파일에는 대상 SPF 도메인 (예 : spf-tools.eu.org
)과 포함하려면 (예 : spf-orig.spf-tools.eu.org
)의 원본 SPF 레코드를 나타내는 DOMAIN
및 ORIG_SPF
변수도 포함되어야합니다. 스크립트를 수정하지 않고 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
Free eu.org 도메인을 성공적으로 사용함에 따라 : Free Domains : 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.