Skip to content

An application suite to receive TLSRPT datagrams and to generate and deliver TLSRPT reports

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

sys4/tlsrpt-reporter

Repository files navigation

tlsrpt-reporter

tlsrpt-reporter is a TLSRPT reporting service for SMTP TLS Reporting as defined in RFC 8460. It receives TLSRPT datagrams from a MTA, collects them, creates a report in conformance with the TLSRPT Reporting Schema and finally delivers the report either via SMTP, indirectly by submitting it to a local MTA which ultimately will be responsible for delivering the report, or directly via HTTP POST.

Application Architecture

Mail platform architectures range from single all-in one servers to multi-server deployments with different server groups handling dedicated tasks. The TLSRPT reporting service's application architecture consists of three different programs which allow to provide TLSRPT reporting in simple but also in complex mail service architectures.

  • tlsrpt_collectd
    tlsrpt_collectd receives and collects TLSRPT datagrams from a MTA and stores them locally in a sqlite database.
  • tlsrpt_fetcher
    tlsrpt_fetcher fetches TLSRPT datagrams collected by tlsrpt_collectd directly or over the network via SSH and aggregates them into a single database.
  • tlsrpt_reportd
    tlsrpt_reportd generates a TLSRPT report from the data provided by tlsrpt_fetcher and submits the report.

Installation

The following distributions provide packages for the TLSRPT reporting service:

At the moment no distribution provides a package.

Development

How to setup the virtual environment for Python

The TLSRPT Reporting Service has been written in Python. Setup a virtual environment like this:

Clone this repository and chdir into to the root directory of the repository:

git clone https://github.com/sys4/tlsrpt.git
cd tlsrpt

Create the new virtual venv environment using the following command:

python3 -m venv venv

After this initial step there will be a new venv directory within the tlsrpt directory containing all the file required to start and run the virtual environment. Activate the environment by typing this shell command:

source venv/bin/activate

This should change the shell prompt, you should now see a (venv) in front of the shell prompt. It will look like this as long as the venv is active.

Finally you need to install additional software within the virtual environment in order to develop and test:

python -m pip install ".[test]"

This will satisfy the dependencies of the tlsrpt package and it will install testing tools (e.g. tox) required to run automated tests.

Unit Testing

In order to run the unit tests manually on the console, first activate the virtual environment. Then run the tests like this:

$ source venv/bin/activate
(venv) $ python -m unittest discover

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

About the project

The tlsrpt-reporter project is part of a joint effort between the Postfix project, namely Wietse Venema who co-designed and implemented TLSRPT with the help of libtlsrpt into Postfix, and sys4, who sponsored the project and whose team has put love and efforts into tlsrpt-reporter and libtlsrpt to make this happen.

We want secure communications and we want people to feel free to communicate whatever they want to about on the Internet. TLSRPT provides the reporting to create visibilty about issues regarding secure communications. Use it! It's free.

Start a discussion or create a ticket on GitHub if you have specific questions about the software provided by the project and / or join the TLSRPT mailing list for general discussions on TLSRPT but also about this project.

About

An application suite to receive TLSRPT datagrams and to generate and deliver TLSRPT reports

Topics

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published