Wydrukuj tę dokumentację Pokaż jako slajdy
Spis Treści
Uruchomienie MTA-STS oraz raportowania TLS
Sam mechanizm nie jest bardzo świeży, niemniej nie jest mocno rozpowszechniony. Z drugiej strony warto, przynajmniej w komunikacji z Google.
Konfiguracja specjalnej witryny webowej
Przed przystąpieniem do konfiguracji, musi powstać wpis w DNSie o nazwie mta-sts.domena.tld chociażby na potrzeby wystawienia certyfikatu SSL. Jak już będzie, to trzeba wykonać konfigurację:
# --- definicja serwera HTTP -----------------------------------
#
server {
listen 217.182.201.233:80;
listen [2001:41d0:602:4e9::1]:80;
server_name mta-sts.bsdserwis.com;
location ~ ^/(?!.well-known/acme-challenge/) {
return 301 https://$server_name/.well-known/mta-sts.txt;
}
# logowanie
access_log /var/log/nginx/mta-sts.bsdserwis.com/access.log main;
error_log /var/log/nginx/mta-sts.bsdserwis.com/error.log;
include codenix/014-acmele.conf;
include codenix/000-cmsploit.conf;
include codenix/004-dot-ht.conf;
include codenix/004-err-page-404.conf;
include codenix/004-err-page-5xx.conf;
include codenix/004-pillaging-dvcs.conf;
include codenix/005-no-logging.conf;
include codenix/005-x-frame.conf;
include expires.conf;
}
# --- definicja serwera HTTPS ----------------------------------
#
server {
listen 217.182.201.233:443 http2 ssl;
listen [2001:41d0:602:4e9::1]:443 http2 ssl;
server_name mta-sts.bsdserwis.com;
ssl_certificate certs/mta-sts.bsdserwis.com.chained.pem;
ssl_certificate_key certs/mta-sts.bsdserwis.com.key;
include codenix/005-x-robots-tag-all.conf;
include codenix/005-x-headers-security.conf;
# logowanie
access_log /var/log/nginx/mta-sts.bsdserwis.com/access.log main;
error_log /var/log/nginx/mta-sts.bsdserwis.com/error.log;
root /var/www/htdocs/virtuals/mta-sts.bsdserwis.com/data;
index index.html;
location /.well-known/ {}
include codenix/000-mta-sts-txt.conf;
include codenix/000-cmsploit.conf;
include codenix/004-dot-ht.conf;
include codenix/004-err-page-404.conf;
include codenix/004-err-page-5xx.conf;
include codenix/004-pillaging-dvcs.conf;
include codenix/005-no-logging.conf;
include codenix/005-x-frame.conf;
}
Plik tekstowy z polityką
Tryby polityki:
- none
- testing
- enforce
Zaś sama polityka wygląda następująco:
version: STSv1 mode: testing max_age: 86400 mx: mx1.bsdserwis.com mx: mx2.bsdserwis.com mx: mx3.bsdserwis.com
UWAGA!!! Wpis w polityce musi pokrywać się z wpisami z dns-u (rekordy MX). W przeciwnym przypadku raporty będą zawierać, że mta-sts zawiera błędy. Dodatkowo certyfikat samego serwera pocztowego musi zawierać w sobie nazwę, która jest wypisana w polityce. W przeciwnym przypadku ponownie zgłoszony zostanie błąd (niezgodność nazw z certyfikatami). Tak więc w przypadku serwera głównego jest to problem: konieczność zrobienia oddzielnych katalogów (polityk) dla każdej z obsługiwanych domen albo też wpisanie podstawowego serwera mx1.bsdserwis.com jako podstawowego serwera obsługi poczty1.
Reasumując: jest to dobry mechanizm, w przypadku obsługiwania jednej domeny, gdzie nie trzeba się dużo napracować, aby utworzyć całą konfigurację...
Uruchomienie kontroli w MTA (postfix)
Serwer pocztowy może wykonywać kontrolę, jak wysyłać oraz przyjmować pocztę za pomocą STARTTLS. W tym używamy narzędzia mta-sts-resolver.
Zainstalowanie potrzebnych pakietów
Za pomocą własnego repozytorium pakietów należy zainstalować:
pkg install -Uy devel/py-uvloop py38-postfix-mta-sts-resolver-1.1.1
Dogranie certyfikatów
Należy sprawdzać logi serwera, czy coś nie wisi w kolejce z powodu niezaufanych wystawców certyfikatów. Przy pierwszym uruchomieniu okazało się, że trzeba dograć następujące certyfiakty:
fetch http://globalsign.tbs-certificats.com/GlobalSignRoot2028.crt -o /etc/ssl/
fetch http://www.tbs-x509.com/Comodo_AAA_Certificate_Services.crt -o /etc/ssl/
fetch https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem -o /etc/ssl/
c_rehash /etc/ssl
Uruchomienie demona
Należy odpowiednio zmodyfikować plik /etc/rc.conf.d/mta_sts jak również plik konfiguracyjny (domyślnie /usr/local/etc/mta-sts-daemon.yml) a następnie uruchomić demona:
service mta_sts start
Konfiguracja main.cf
W pliku main.cf należy umieścić następującą konfigurację:
smtp_tls_policy_maps = socketmap:inet:127.0.0.1:8461:postfix
a następnie "przeładować" postfix-a.
Konfiguracja DNS
W konfiguracji dla danej domeny muszą powstać 3 rekordy.
mta-sts
Jest rekord odpowiedzialny za wskazanie serwera webowego (połączenie szyfrowane), który przetrzymuje w specjalnym URLu plik z polityką STS. Przyjęto zasadę, że ten rekord wskazuje na podstawowy serwer pocztowy.
mta-sts IN CNAME mx1
_smtp._tls
Jest to rekord odpowiadający na przesyłanie raportów dotyczących mta-sts. W swojej składni bardzo przypomina rekordy DMARC: Jeżeli chcemy przekierować raportowanie na inną domenę, to oczywiście wystarczy rekord CNAME:
_smtp._tls IN CNAME _smtp._tls.bsdserwis.com.
_mta-sts
Jak już zostało wszystko skonfigurowane, to można dodać rekord włączający politykę mta-sts (trzeba zrobić na końcu). Jako wartość ID proponowana jest wartość w postaci daty oraz godziny (YYYYMMDDhhmmss).
_mta-sts 7200 IN TXT "v=STSv1; id=20220101000000"
Analogicznie jak dla rekordu _smtp._tls jest możliwe przekierowanie na inną domenę:
_mta-sts IN CNAME _mta-sts.bsdserwis.com.
Źródła w sieci internet
https://blog.jeanbruenn.info/2021/07/31/howto-setup-mta-sts-and-tlsrpt/
https://gist.github.com/Tugzrida/4206a67bb037e30e0d2c3eb0dc2b1d3c
(c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.
A nie chcę tego robić, aby przy kolejnej migracji serwera mieć zapewnioną elastyczność - rozdzielenie nazw w ramach *.mua.codenix.pl. (1)

Odnośniki do dokumentacji
doc1
doc2
doc3
doc4
Gdy trzeba dołączyć inną (pod)stronę https://moinmo.in/HelpOnMacros/Include https://moinmo.in/HelpOnParsers
Nieprawidłowe argumenty "pagename, heading, level, from="regex", to="regex", sort=ascending|descending, items=n, skipitems=n, titlesonly, editlink"!