Im Folgenden finden sie eine kurze Beschreibung des Installationsvorgangs für den Postfix Email-Server, der maximale Kennwerte in allen drei Bereichen des Berichts erzielt: Vertrauliche Nachrichtenübertragung, Phishing und Identitätsbetrug und Vertrauenswürdigkeit von Nachrichten. Diese Anleitung wurde auf einer virtuellen Maschine mit Ubuntu 24.04 LTS getestet.
Der einfachste Weg, um DNSSEC zu bekommen, ist einen Service zu nutzen der direkt DNSSEX unterstützt. Als Alternative prüfen wir die Möglichkeit in der Zukunft Hinweise zu veröffentlichen, wie man seinen eigenen DNS-Service mit DNSSEC-Support installieren kann. Vor Beginn muss sichergestellt sein, dass die Domain ein MX-Record hat und dass dieses MX-Record eine IP-Adresse und einen A-record zugewiesen bekommen hat. Unser DNS-Service (entweder lokal oder durch einen dritte Gruppe bereit gestellt) erzeugt einen MX-Record (mindestens einen) für die Domain model.dcslab.eu: 5 mx.model.dcslab.eu. Der erste Wert entspricht der Priorität, der zweite dem Hostname des MTA. Für jeden erzeugten MX-record, wird auch ein A-record erzeugt, um den MX-Hostname in eine IP-Adresse umzuwandeln, z.B.:
mx.model.dcslab.eu. IN A 139.191.36.5
General type of mail configuration? | Internet Site |
System mail name | model.dcslab.eu |
root and postmaster mail recipients | model (root user) |
destinations to accept mail for (mydestinations) | model.dcslab.eu |
force synchronous updates on mail | yes |
local networks (mynetworks) | 192.168.1.0/24 127.0.0.1 |
Mailbox Size limit (bytes) | 0 (means no limit) |
Local address extension character | (no address extensions) |
Internet Protocols to use | IPv4 |
Wir erstellen Aliases um DMARC-Berichte zu erhalten
Um StartTLS korrekt in die Postfix-Installation einzubinden, wird ein unterschriebenes Zertifikat einer anerkannten „Certification Authority“ (CA) benötigt. Desweiteren müssen eine Reihe von Einstellungen im Postfix-Server vorgenommen werden. Zuerst beginnen wir mit dem Zertifikat einer CA. In unserem Beispiel wenden wir uns für ein kostenloses Zertifikat an Let's Encrypt als CA. Wir folgen der Installationsanleitung für eine Debian-Installation.
Die App um das Zertifikat zu beantragen benötigt freien Zugung zum TCP Port 80. Jede Anwedung, die diesen Port nutzt, muss zuerst geschlossen werden. Sobald wir das Zertifikat erhalten haben, können wir unseren Service wieder aufnehmen. Es ist sehr wichtig, dass im Prozess der Zertifizierung exakt der richtige, zu zertifizierende Domain-Name angegeben wird. In diesem Fall verwenden wir mx.model.dcslab.eu für unseren Email-Server.
Um ein SPF zu konfigurieren, müssen wir einen DNS-Record aufsetzen. so dass anderen Mail Transfer Agents (MTAs) Zugriff darauf haben, wenn Sie Emails von unserer Domain erhalten. Aber, damit unsere Domain SPF richtig nutzen kann um seinerseits Mails zu empfangen, müssen wir eine weitere Anwendung mit dem apt-get Werkzug installieren und richtig konfigurieren.
Wir beginnen, indem wir einige einfache DNS-Record-Regeln aufsetzten, die alle Hosts festlegen, welche über unsere Domain 'model.dcslab.eu' Emails versenden dürfen.
IN TXT "v=spf1 mx -all"
Danach installieren und konfigurieren wir das postfix-policyd-spf-python-Paket:
# SPF /etc/postfix/master.cf configuration
#
policy-spf unix - n n - - spawn
user=nobody argv=/usr/bin/policyd-spf
# SPF /etc/postfix/main.cf configuration
policy-spf_time_limit = 3600s
smtpd_helo_restrictions = reject_invalid_hostname
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination, check_policy_service unix:private/policy-spf
DKIM benötigt 3 Schritte für die Aktivierung:
Sobald wir die Schlüssel erzeugt haben, können wir eine Ausgabe nutzen umd den entsprechenden TXT-Record in unserer Domain zu erzeugen. Die Subdomain, an die es angehängt wird ist <selector>._domainkey.<our_domain>.
modelSelector._domainkey IN TXT ("v=DKIM1; h=sha256; k=rsa; s=email; p=MIGf...QAB")
Nach der Erstellung des Schlüssels und des TXT-records, müssen wir opendkim so konfigurien, dass es mit Postfix funktioniert.
#key_name domain:selector:/path/to/private_key_file
model.dcslab.eu model.dcslab.eu:modelSelector:/etc/opendkim/private_keys/modelSelector.key
#signer_of_the_message key_name
*@model.dcslab.eu model.dcslab.eu
#list-of-hosts (ips and hostnames)
127.0.0.1
model.dcslab.eu
192.168.1.0/24
Syslog yes
SyslogSuccess yes
LogWhy yes
UMask 002
OversignHeaders From,Subject
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
SignatureAlgorithm rsa-sha256
AutoRestart Yes
UserID opendkim:opendkim
SOCKET="local:/var/spool/postfix/var/run/opendkim/opendkim.sock"
# OpenDKIM milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
Die Konfiguration von DMARC ist identisch zu der von DKIM, abgesehen von der Erstellung des Schlüssels.
Im Falle von DMRAC ist der TXT-Record an die Subdomain _dmarc.<our_domain> gebunden. Grundsätzlich beinhalten die DMARC Regeln die Version, die Regeln für die Behandlung von Nachrichten (Akzeptieren, Ablehnen,...) und die Email-Adresse für Berichte.
_dmarc TXT( "v=DMARC1; p=reject; rua=mailto:dmarc_reports@model.dcslab.eu")
Schlussendlich müssen wir noch Postfix and opendmarc zusammen konfigurieren.
AuthservID model.dcslab.eu
Socket inet:8893@localhost
# DMARC /etc/postfix/main.cf configuration
# 8893 is default for opendmarc
smtpd_milters = unix:/var/run/opendkim/opendkim.sock, inet:127.0.0.1:8893
Postfix unterstützt DANE als Option in der TLS-Konfiguration. Diese Optionen wurden normalerweise schon während der Konfiguration von StrtTLS gesetzt.
smtp_tls_security_level = dane
smtp_dns_support_level = dnssec
Postfix benötigt einen rekursiven Nameserver, der in der Lage ist die DNSSEC-Bestätigung um DNSSEC zu validieren. Deswegen müssen wir entweder einen solchen Nameserver lokal installieren und konfigurieren, oder wir stellen unser System so ein, dass es einen externen benutzen kann. Um die TLSA-records aufzusetzen, können wir ein Online-Werkzeug benutzen (z.B. (example)) um die entsprechenden Werte zu erzeugen. Um die PEM-Werte des Zertifikats einzusehen, können wir folgenden Befehl ausführen:
-----BEGIN CERTIFICATE-----
MIIFMjCCBBqgAwIBAgISA/ZiA+nFT1Hd5emwMgI20KtdMA0GCSqGSIb3DQEBCwUA
...
Wq6bzNp36KG7fb86FW5VfJsINeIUdad/6J/gBylPPzaoonQ7vcT0VB6TI4/ic1C1
VuvF9e7YHH42YnWMoBesmOqoNWty+tzyFObvZPp7XLyQCDbS4ZY=
-----END CERTIFICATE-----
Der Anweisung von Postfix documentation folgend, wählen wir die folgenden Parameter aus um die TLSA-recods zu erzeugen:
wir erzeugen einen Record für einen TCP-Service auf Port 25, demnach gilt:
_25._tcp.mx.model.dcslab.eu TLSA 3 1 1 1cf86240705080beee6827b063e52274e545859711d4f63aca3af259210ad6ab