1
0
mirror of https://github.com/jschauma/spf.git synced 2024-05-09 09:54:51 +00:00
jschauma-spf/README.md

108 lines
2.7 KiB
Markdown
Raw Normal View History

Initial import of the 'spf' utility. See https://www.netmeister.org/blog/spf.html for a longer discussion. NAME spf - report on the given domain's use of SPF SYNOPSIS spf [-Vhjv] [-r address] domain DESCRIPTION The spf tool allows you to inspect the Sender Policy Framework DNS records for the given domain. OPTIONS The following options are supported by spf: -V Print version information and exit. -h Display help and exit. -j Generate output in json format. -r address Explicitly query this resolver. -v Be verbose. Can be specified multiple times. DETAILS The Sender Policy Framework (SPF) defined in RFC7208 specifies the format for the SPF DNS entries a domain may choose to apply. These entries can range from the straight forward to the complex, harboring certain surprises or unintenionally obscuring important information, such as when one domain includes the SPF records of another domain. spf can be used to report on the comprehensive ruleset derived from the DNS record. It does that by counting CIDRs, resolving e.g., MX records, and recursively looking up SPF records of any included domains. EXAMPLES The following examples illustrate common usage of this tool. To report on the SPF records for the domain netmeister.org: spf netmeister.org To query Quad9's public resolver for the same SPF records and report the results in json format: spf -r 2620:fe::fe -j netmeister.org EXIT STATUS The spf utility exits 0 on success, and >0 if an error occurs. SEE ALSO dig(1) HISTORY spf was originally written by Jan Schaumann <jschauma@netmeister.org> in July 2022. BUGS Please file bugs and feature requests by emailing the author.
2022-08-30 18:25:43 -04:00
# spf -- expand and report on a given domain's SPF policy
The syntax for the Sender Policy Framework (SPF)
definition via a DNS TXT record is complex and
expansion and inspection of the final ruleset requires
possibly multiple DNS lookups.
The `spf` utility can be used to easily expand a
domain's policy and report on its definition from the
command-line.
For a longer discussion of SPF, please see this blog
post:
https://www.netmeister.org/blog/spf.html
Requirements
============
`spf(1)` is written in Perl, and you will need
the following modules installed:
* JSON
* Net::DNS
* Net::Netmask
2022-08-30 17:14:55 -08:00
On Debian and related systems, you may be able to
install these dependencies with:
`sudo apt install libjson-perl libnet-dns-perl libnet-netmask-perl`
Initial import of the 'spf' utility. See https://www.netmeister.org/blog/spf.html for a longer discussion. NAME spf - report on the given domain's use of SPF SYNOPSIS spf [-Vhjv] [-r address] domain DESCRIPTION The spf tool allows you to inspect the Sender Policy Framework DNS records for the given domain. OPTIONS The following options are supported by spf: -V Print version information and exit. -h Display help and exit. -j Generate output in json format. -r address Explicitly query this resolver. -v Be verbose. Can be specified multiple times. DETAILS The Sender Policy Framework (SPF) defined in RFC7208 specifies the format for the SPF DNS entries a domain may choose to apply. These entries can range from the straight forward to the complex, harboring certain surprises or unintenionally obscuring important information, such as when one domain includes the SPF records of another domain. spf can be used to report on the comprehensive ruleset derived from the DNS record. It does that by counting CIDRs, resolving e.g., MX records, and recursively looking up SPF records of any included domains. EXAMPLES The following examples illustrate common usage of this tool. To report on the SPF records for the domain netmeister.org: spf netmeister.org To query Quad9's public resolver for the same SPF records and report the results in json format: spf -r 2620:fe::fe -j netmeister.org EXIT STATUS The spf utility exits 0 on success, and >0 if an error occurs. SEE ALSO dig(1) HISTORY spf was originally written by Jan Schaumann <jschauma@netmeister.org> in July 2022. BUGS Please file bugs and feature requests by emailing the author.
2022-08-30 18:25:43 -04:00
Installation
============
To install the command and manual page somewhere
convenient, run `make install`; the Makefile defaults
to '/usr/local' but you can change the PREFIX:
```
$ make PREFIX=~ install
```
Documentation
=============
Please see the manual page for all details:
```
NAME
spf - report on the given domain's use of SPF
SYNOPSIS
spf [-Vhjv] [-r address] domain
DESCRIPTION
The spf tool allows you to inspect the Sender Policy Framework DNS records
for the given domain.
OPTIONS
The following options are supported by spf:
-V Print version information and exit.
-h Display help and exit.
-j Generate output in json format.
-r address Explicitly query this resolver.
-v Be verbose. Can be specified multiple times.
DETAILS
The Sender Policy Framework (SPF) defined in RFC7208 specifies the format
for the SPF DNS entries a domain may choose to apply. These entries can
range from the straight forward to the complex, harboring certain surprises
or unintenionally obscuring important information, such as when one domain
includes the SPF records of another domain.
spf can be used to report on the comprehensive ruleset derived from the DNS
record. It does that by counting CIDRs, resolving e.g., MX records, and
recursively looking up SPF records of any included domains.
EXAMPLES
The following examples illustrate common usage of this tool.
To report on the SPF records for the domain netmeister.org:
spf netmeister.org
To query Quad9's public resolver for the same SPF records and report the
results in json format:
spf -r 2620:fe::fe -j netmeister.org
EXIT STATUS
The spf utility exits 0 on success, and >0 if an error occurs.
SEE ALSO
dig(1)
HISTORY
spf was originally written by Jan Schaumann <jschauma@netmeister.org> in
July 2022.
BUGS
Please file bugs and feature requests by emailing the author.
```