| TLSRPT-REPORTD(1) | tlsrpt-reportd | TLSRPT-REPORTD(1) |
NAME
tlsrpt-reportd - A daemon to create and deliver TLSRPT reports according to RFC 8460.
SYNOPSIS
tlsrpt-reportd [OPTION]
DESCRIPTION
The tlsrpt-reportd is the final component in the TLSRPT framework. A MTA (Mail Transfer Agent) reports successful delivery or encountered errors via libtlsrpt to a tlsrpt-collectd which collects and pre-aggregates the data. The tlsrpt-fetcher associated with a tlsrpt-collectd transfers the pre-aggregated data to the tlsrpt-reportd. The tlsrpt-reportd can retrieve data from multiple tlsrpt-fetchers and aggregates the pre-aggregated data into the final reports. Those reports are gzip-compressed and sent out to the destinations as specified in the TLSRPT DNS records of the domains that have received emails from the MTA.
A simple data flow diagram visualizing the interaction of the components looks like this: (MTA) v libtlsrt v tlsrpt-collectd v (storage) v tlsrpt-fetcher v tlsrpt-reportd v (report destination)
OPTIONS
Report creation and configuration options
--contact_info=addr
--organization_name=descr
--sender_address=email
--fetchers=list
--dbname=path
--compression_level=n
--keep_days=n
Report delivery options
--spread_out_delivery=sec
--sendmail_script=path
--sendmail_timeout=sec
--http_script=path
--http_timeout=sec
--max_retries_delivery=n
--min_wait_delivery=sec
--max_wait_delivery=sec
--http_upload_map=path
--mail_destination_map=path
--tlsrpt_record_map=path
Options controlling the interaction with one or more tlsrpt-collectd
--max_collectd_timediff=sec
--max_collectd_timeout=sec
--max_retries_domaindetails=n
--min_wait_domaindetails=sec
--max_wait_domaindetails=sec
--max_retries_domainlist=n
--min_wait_domainlist=sec
--max_wait_domainlist=sec
--interval_main_loop=sec
Debug and development options
--debug_db=n
--debug_send_file_dest=dir
--debug_send_mail_dest=path
--debug_send_http_dest=path
General options
--config_file=filename
--help
--pidfilename=path
Logging options
--logfilename=filename
--log_level=level
ENVIRONMENT
All config options except --help and --config_file can also be set via environment variables. The environment variable for a configuration option is the prefix TLSRPT_REPORTD_ followed by the configuration setting name in all caps. For example the --log_level option can instead by configured using the TLSRPT_REPORTD_LOG_LEVEL environment variable.
DESTINATION MAPPING
The --tlsrpt_record_map, --http_upload_map and --mail_destination_map options allow a mapping of the report destinations retrieved from the TLSRPT record based on the domain the report is created for.
All maps are processed on a "first match wins" manner. No further rules are processed after a rule has matched.
The --tlsrpt_record_map is used first to transform the whole set of destinations. The --http_upload_map and --mail_destination_map options allow for further modifications to report destinations matching the "mailto:" or "https:" URI scheme and they inspect the report destination to determine if the rule applies, not the domain for which the report is created.
Each map line has the format: match action [parameters]
match is of the form "matchtype:pattern". Supported match tyoes are: "domain:" and "regexp:".
The "domain:" prefix can be omitted, i.e. without a match tyoe specified the "domain:" match style is the default. A "domain:" match matches the domain part of a "mailto:" URI in the --mail_destination_map and the domain part of an "https:" URI in the --http_upload_map. A "domain:" match can match a complete domain name or if it starts with a "." it matches all subdomains. A single "." matches every domain name. A trailing "." after a domain name is ignored.
The domain name "many.sub.domains.example.com" would not be matched by "sub.domains.example.com" or "sub.domains.example.com." without a leading dot, but it would be matched by these domain match expressions:
A "regexp:" style match in the --tlsrpt_record_map matches against the domain name the report is created for. A "regexp:" style match in the --http_upload_map and --mail_destination_map maps matches against the whole report destination, not just the extracted domain part.
The action can be on of "ACCEPT", "DISCARD", "APPEND", "REPLACE" and "REGEXP". "ACCEPT" actions just accept the report destinations as they are. "DISCARD" actions return an empty set of report destinations, no report will be sent out. "APPEND" actions supply additional report destinations. "REPLACE" actions replace the report destinations with other destinations. "REGEXP" actions transform each matching report destination according to their two parameters: a matching regexp and a substitution.
"APPEND" and "REPLACE" and "REGEXP" actions can introduce other URI schemes. tlsrpt-reportd understands in addition to the "mailto:" and "https:" URI schemes defined in RFC 8460 the additional URI scheme "directory:" as a directory in the filesystem where reports are to be saved as files to allow inspection and debugging.
Rules in the --mail_destination_map can also introduce "https:" and "directory:" URIs as report destinations. Rules in the --http_upload_map can also introduce "https:" and "directory:" URIs as report destinations. No further processing is done with those destinations, i.e. a "https:" URI introduced in the --mail_destination_map is not put through the transformations from --http_upload_map and vice versa.
The results from --tlsrpt_record_map which is processed first, however, are put through the transformations of --http_upload_map and --mail_destination_map even if --tlsrpt_record_map already had actions modify the report destinations.
EXAMPLES
Retrieve data from a local fetcher with standard configuration and from another local fetcher with a different storage:
tlsrpt-reportd --fetchers "tlsrpt-fetcher, tlsrpt-fetcher --storage sqlite:///tmp/test.sqlite"
Retrieve data from a local fetcher and a remote fetcher:
tlsrpt-reportd --fetchers "tlsrpt-fetcher, ssh user@remote tlsrpt-fetcher"
EXIT STATUS
0
1
SEE ALSO
man:tlsrpt-collectd[1], man:tlsrpt-fetcher[1]
AUTHOR
Boris Lohner
| 2026-09-01 | tlsrpt-reportd |