Ich möchte lernen, wie genau Mailserver funktionieren und was DKIM, SPF, DMARC sind und wie das funktioniert und lernen, das richtig einzurichten.
Ich kann Mailserver mit Postfix und Dovecot unter Debian bauen. Kann ich gerne zeigen.
Ich kann Mailserver mit Postfix und Dovecot unter Debian bauen. Kann ich gerne zeigen.
Wenn Ingo das als Experte macht, mach ich den Themenpaten.
@iw Wir sind ja gleich verabredet, dann können wir da kurz didaktisch
drüber reden.
Ich bin Themenpate; @iw Experte.
Wir wollen uns an einem Termin treffen und dann dort den Mailserver aufsetzen (jeder bei sich selbst).
Das Treffen soll über ein BBB stattfinden und wird etwa 3/4 Stunden treffen.
- Samstag, 25.01.
- Samstag, 08.02.
- Sonntag, 09.02
- Samstag, 15.02.
- Sonntag, 16.02.
- Samstag, 22.02.
- Sonntag, 23.02.
Wir wollen uns am Sonntag, den 09.02.2025 ab 10 Uhr (ungefähr 4-5h + Pausen) in einem BBB treffen.
2025-02-09T09:00:00Z→2025-02-09T14:00:00Z
Ich bin da nicht da, kann da jemand die wichtig(st)en Inhalte irgendwie festhalten (also aufschreiben, nicht mit den Händen umklammern oder so)?
Wir schreiben das alles als Sessionbericht auf.
Wer hier mitmacht, sollte idealerweise vorher auch bei Domains, DNS, URLs, (Web-)Server usw. verstehen mitmachen oder die Inhalte von dort verstanden haben.
Mailserver verstehen und einrichten - Session am 09.02.25
Vorraussetzung:
- Ein Server mit Debian
- Ein Client auf dem z.B. Debian läuft
DNS-Einrichtung
sub.domain.tld. A 123.456.78
sub.domain.tld. AAAA 2a01:4f9:c013:5c3::1
Man kann nun auf sub.domain.tld.
gehen und das zeigt dann auf die IP-Adresse (also ssh sub.domain.tld
anstatt 123.456.78.9
)
SMTP
Schauen, ob schon ein Mailserver läuft
# lsof = List open files
# Prüft, ob ein Port geöffnet ist
# Port 25 ist der Standardport für SMTP
lsof -i :25
SMTP - Was ist das?
SMTP = Simple Mail Transport Protocol
Das Protokoll ist sozusagen eine Norm, um Mails zu transportieren.
Es läuft standardmäßig auf Port 25.
SMTP-Software installieren
apt install postfix
# Hier dann immer die Standard-Konfiguration wählen
# Also 'Internet site' wählen und den hostname so lassen
# Prüfen, ob installiert:
lsof -nPi :25
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# master 2359 root 13u IPv4 21807 0t0 TCP *:25 (LISTEN)
# master 2359 root 14u IPv6 21808 0t0 TCP *:25 (LISTEN)
Jetzt wären schon Mails empfangbar!
Testen!
Auf der Clientseite swaks
installieren:
apt install swaks
Client-Software auf dem eigenen Computer - Swaks ist ein Mailclient.
Den installiert man auf seinem eigenen Computer und kann damit dann den neu installierten Postfix-Server testen:
swaks -f mail@meine-mail.de \ # f = from
-t root@domain.tld \ # t = to
-s sub.domain.tld # s = server
# So sieht die Ausgabe dann aus, also die Kommunikation zwischen Server und Client:
=== Trying sub.domain.tld:25...
=== Connected to sub.domain.tld.
<- 220 domain ESMTP Postfix (Debian/GNU)
# Im Moment weiß der Server nur die IP.
# Was kann man damit anfangen?
# - Alle auf Blacklists blockieren
# - Alle über Geoblocks (also z.B. alle aus Russland blockieren)
# 220 = Server bereit und Verbindung angenommen
-> EHLO client-hostname
# Server weiß jetzt den Hostnamen
# Man kann z.B. das DNS auflösen
# Das ist der eigene Hostname, also im eigenen Netz
# Das DNS ist also wahrscheinlich nicht auflösbar
# z.B.: 'dig client-hostname'
# Der Server macht aber normalerweise weiter, weil der Client kann ja später noch Authenitifzierung nachlegen
### Ab hier sagt der Server erstmal, was er alles kann (also z.B. Message size):
<- 250-domain
<- 250-PIPELINING
<- 250-SIZE 10240000
<- 250-VRFY
<- 250-ETRN
<- 250-STARTTLS
<- 250-ENHANCEDSTATUSCODES
<- 250-8BITMIME
<- 250-DSN
<- 250-SMTPUTF8
<- 250 CHUNKING
-> MAIL FROM:<mail@meine-mail.de> # Absenderadresse
# Hier kann der Server das Absender-DNS abfragen.
# Also: 'dig TXT meine-mail.de'
# Was kann man damit machen?
# - z.B. SPF überprüfen
<- 250 2.1.0 Ok
-> RCPT TO:<root@domain.tld> # Empfänger
# Wollen wir die Email überhaupt annehmen?
# Also: Ist der Empfänger-Server überhaupt einer der konfigurierten?
<** 454 4.7.1 <root@domain.tld>: Relay access denied
# Relay = Mail ist nicht für den Server, sondern soll einfach nur weitergesendet werden
# Das lehnt der Server ab
# Die Mail wäre aber für den Server, also muss man hier Postfix konfigurieren
-> QUIT
<- 221 2.0.0 Bye
=== Connection closed with remote host.
Postfix konfigurieren
# Zeigt nur nicht-Default Konfigurationen an
postconf -n
# Kürzer als:
cat /etc/postfix/main.cf
Das erste wichtige wäre:
mydestination = $myhostname, domain, localhost.localdomain, localhost
Hier wird der Hostname des Servers genutzt:
hostname -f
# domain
# Das ist 'domain', nicht 'domain.tld' -> Also nicht der FQDN
Es gibt zwei Möglichkeiten: Entweder wir ändern den Hostnamen des Servers oder wir ändern die Postfix-Konfiguration:
# Hostname in der Postfix-Konfiguration setzen
postconf -e "mydestination = domain.tld, tuxilio-1, local.host.localdomain, localhost"
Postfix sagt bei Änderungen mit postconf
Bescheid und lädt sich automatisch neu.
Jetzt kann man swaks
nochmal testen, die Mail sollte jetzt angenommen werden:
=== Trying sub.domain.tld:25...
=== Connected to sub.domain.tld.
<- 220 domain ESMTP Postfix (Debian/GNU)
-> EHLO client-hostname
<- 250-domain
<- 250-PIPELINING
<- 250-SIZE 10240000
<- 250-VRFY
<- 250-ETRN
<- 250-STARTTLS
<- 250-ENHANCEDSTATUSCODES
<- 250-8BITMIME
<- 250-DSN
<- 250-SMTPUTF8
<- 250 CHUNKING
-> MAIL FROM:<mail@meine-mail.de>
<- 250 2.1.0 Ok
-> RCPT TO:<root@domain.tld>
<- 250 2.1.5 Ok
-> DATA
<- 354 End data with <CR><LF>.<CR><LF>
-> Date: Sun, 09 Feb 2025 11:21:43 +0100
-> To: root@domain.tld
-> From: mail@sub.domain.tld
-> Subject: test Sun, 09 Feb 2025 11:21:43 +0100
-> Message-Id: <20250209112143.016322@ice-pad>
-> X-Mailer: swaks v20240103.0 jetmore.org/john/code/swaks/
->
-> This is a test mailing
->
->
-> .
<- 250 2.0.0 Ok: queued as EE53B414EA # Queue number, die der Server dem Client zurückgibt
-> QUIT
<- 221 2.0.0 Bye
=== Connection closed with remote host.
Was hat Postfix mit der Mail jetzt gemacht?
Auf dem Server kann man die Queue number jetzt nehmen und die Logs dazu ansehen:
journalctl
ist ein Client, um die Log-Datenbank abzufragen.
# journalctl -e = ans Ende springen
# journalcrl -g = grep
journalctl -eg <Queue number>
# Also z.B.:
# journalctl -eg EE53B414EA
# Bzw:
journalctl -e --facility=mail | grep -C1 <Queue number>
# Das -C1 heißt Context, also dass eine Zeile oben drüber und dadrunter angezeigt wird
# Also z.B.:
# journalctl -e --facility=mail | grep -C1 EE53B414EA
# Mit 'journalctl -f' kann man alle neuen Logs ansehen, die nach der Ausführung ankommen
journalctl -f
Zum Schutz vor Sicherheitslücken läuft nur smtpd
(weil man für das Öffnen von Ports kleiner 1024 root-Rechte braucht) und gibt ihn an den Cleanup-Prozess weiter. Der sorgt dafür, dass keine Buffer Overflows und keine nichterlaubten Zeichen im Text sind.
Der Cleanup-Prozess gibt das dann an den Queue-Manager weiter und entscheidet Mail für Mail, was er mit der Mail macht.
Der gibt ihn weiter und local
speichert das in der Mailbox.
Man sieht die Mails mit:
tail /var/mail/root
Gegenprobe: Nimmt der Server jetzt Mails als Relay an?
swaks -f mail@meine-mail.de \ # f = from
-t root@domain-2.tld \ # t = to
-s sub.domain.tld # s = server
Das sollte jetzt ein Relay access denied
geben.
IMAP
Mails relayen
Wir wollen jetzt auch Mails verschicken könne.
swaks -f root@domain.tld \ # f = from
-t mail@meine-mail.de \ # t = to
-s sub.domain.tld # s = server
Das gibt im Moment noch ein Relay access denied
geben - schließlich soll nicht jeder Mails verschicken können.
Dazu nutzen wir Authenifizierung, also melden uns am Server an.
SASL
SASL = Simple Authentication and Security Layer
Die Idee ist, dass Postfix das SASL von Dovecot nutzt. Dovecot ist ein IMAP-Server, der Mails zwischen Client und Server transportiert.
Dovecot
Wichtigste Befehle mit Dovecot - Übersicht: https://wiki.lab.linuxhotel.de/doku.php/lpi2:dovecot-imapd
Erstmal braucht man IMAP:
apt install dovecot-imapd
Prüfen, ob es läuft:
lsof -nPi :imap
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# dovecot 38992 root 34u IPv4 81464 0t0 TCP *:143 (LISTEN)
# dovecot 38992 root 35u IPv6 81465 0t0 TCP *:143 (LISTEN)
Dovecot konfigurieren
doveconf -n
# Listet alle Konfigurationsdateien in /etc/dovecot/ als eine auf
Systembenutzer nutzen
Also legen wir einen neuen Nutzer an:
# Nutzer hinzufügen
useradd -m -s /bin/false USERNAME
passwd USERNAME
# Dovecot testen
doveadm user USERNAME
doveadm auth login USERNAME
Postfix soll Emails an Dovecot weitergeben
Im Moment werden Mails hier gespeichert:
doveconf mail_location
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Man hat also alle Mails, immer in /var/spool/mail/root
.
less /var/spool/mail/root
Um eine Mail zu lesen, muss man also die gesamte Datei öffnen. Je mehr Mails es werden, desto langsamer wird es.
Man will die aber im home
-Verzeichnis des Nutzers speichern.
Wir möchten jetzt ein Maildir nutzen, sodass eine Email = eine Datei ist.
Also schreiben wir die Zeile
mail_location = maildir:~/Maildir
in die Datei /etc/dovecot/local.conf
. Wenn man Dine in diese Datei schreibt, haben die Vorrang zu allen anderen Dateien.
Und überprüfen:
doveconf mail_location
# mail_location = maildir:~/Maildir
Wie können Dovecot und Postfix jetzt miteinander spechen?
Das geht z.B. über sog. Sockets. Das sind dann normalerweise TCP- und UDP-Sockets oder UNIX-Sockets.
Dovecot soll bei uns über Sockets lauschen und Postfix soll die Mails rüberschieben.
Das Protokoll dazu heißt LMTP und ist so ähnlich wie SMTP.
LMTP von Postfix → Dovecot
apt install dovecot-lmtpd
In /etc/dovecot/local.conf
:
auth_username_format = %Ln
(Siehe https://wiki.lab.linuxhotel.de/doku.php/lpi2:postfix-dovecot-imapd)
Postfix läuft aber unter chroot
, also darf nur unter /var/spool/postfix
.
Also sagen wir Dovecot, dass es den Socket unter dem Postfix-Dir ablegen soll:
Also in /etc/dovecot/local.conf
:
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
user = postfix
group = postfix
mode = 0660
}
}
Testen:
systemctl restart dovecot.service
lsof /var/spool/postfix/private/dovecot-lmtp
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# dovecot 39612 root 26u unix 0x000000001bc34063 0t0 86067 /var/spool/postfix/private/dovecot-lmtp type=STREAM (LISTEN)
Jetzt noch Postfix konfigurieren:
postconf mailbox_transport
# mailbox_transport =
postconf -e 'mailbox_transport = lmtp:unix:private/dovecot-lmtp'
postconf mailbox_transport
# mailbox_transport = lmtp:unix:private/dovecot-lmtp
Jetzt nochmal testen (vom Client):
swaks -f mail@meine-mail.de \ # f = from
-t USERNAME@domain.tld \ # t = to
-s sub.domain.tld # s = server
Das sollte wieder eine Queue number geben, die man wieder abrufen kann.
Jetzt testen wir noch die Authentifizierung (vom Server):
curl -v --url imap://localhost:143 --user USERNAME
SASL vom Dovecot auch für Postfix nutzen
In: /etc/dovecot/local.conf
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
# Outlook braucht noch 'login', Standard ist 'plain'
auth_mechanisms = plain login
Testen:
doveconf auth_mechanisms
Jetzt soll Dovecot auch Postfix auth nutzen:
postconf -e 'smtpd_sasl_type = dovecot'
postconf -e 'smtpd_sasl_path = private/auth'
postconf -e 'smtpd_sasl_auth_enable = yes'
Neu laden und testen:
systemctl restart dovecot.service postfix.service
lsof /var/spool/postfix/private/auth
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# dovecot 39940 root 55u unix 0x00000000ccbd44d1 0t0 89249 /var/spool/postfix/private/auth type=STREAM (LISTEN)
Und clientseitig mit swaks
:
swaks -f mail@meine-mail.de \ # f = from
-t USERNAME@domain.tld \ # t = to
-s sub.domain.tld \ # s = server
-a -au USERNAME # Authentifizierung
Dabei sollte im swaks neu nach einem Passwort gefragt werden und dort 250-AUTH PLAIN LOGIN
stehen.
Dann kann man wieder Logs ansehen mit
journalctl -e --facility=mail | grep -C1 <QUEUE ID>
Mails an alle verschicken
DKIM
Mit DKIM wird die Mail vom Server signiert. Es gibt dann jeweils einen Private und einen Public key, wobei der Public key im DNS steht.
rDNS
Es gibt bei der DNS-Auflösung zwei Möglichkeiten:
Vorwärts: Domain Name → IP
Rückwärts (das wäre dann rDNS / reverse DNS): IP → Domain Name
Man kann das abfragen mit:
dig -x 123.456.789.1
MX record
Der ist dafür da, dass Server wissen, an wen sie sich wenden müssen.
Wir wollen an domain.tld senden, aber der Server ist unter sub.domain.tld:
domain.tld. MX 10 sub.domain.tld
Man kann auch mehrere MX Records machen, damit, falls ein Server ausfällt, noch Mails empfangen werden können.
Die Zahl hinter MX sagt, welches der bevorzugte Server ist. Dabei ist die kleinste Nummer der bevorzugste.
Backup-Server konfigurieren
postconf -e 'relay_domains = $mydestination, andere-domain.tld.'
Andere Befehle
postqueue -p
Zeigt die Queue.
sendmail -q
versucht, Mails neu zu senden.
postsuper -d <QUEUE ID>
löscht etwas aus der Queue.
Mailserver sicherer machen
Wenn jemand seinen FQDN nicht sagen kann
KLAPPT LEIDER NOCH NICHT
postconf -e 'smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname'
Mit swaks
sollte es jetzt nicht mehr klappen:
swaks -f mail@meine-mail.de \ # f = from
-t USERNAME@domain.tld \ # t = to
-s sub.domain.tld \ # s = server
-a -au USERNAME # Authentifizierung
-ap 'PASSWORD' # Passwort
Weitere Dinge zum selber porbieren:
- Keine Systemnutzer verwenden: https://wiki.lab.linuxhotel.de/doku.php/lpi2:dovecot-virtual-domains & https://wiki.lab.linuxhotel.de/doku.php/lpi2:postfix-virtual-domains
- DKIM nutzen: PDF in Projektchat Hack’n’Fun
Wir wollen uns am 2025-02-23T12:00:00Z→2025-02-23T14:00:00Z treffen, wo @nik uns rspamd
erklärt.
Das muss leider verschoben werden, da wir fast alle Kick-Offs der neuen AGs auf diesen Tag planen mussten.
Wir wollen uns für 2-3 h treffen, um rspamd erklärt zu bekommen.
- Samstag, 15.03.
- Sonntag, 16.03.
- Samstag, 29.03.
- Sonntag, 29.03.
Ich gehe davon aus, dass Sonntag, 30.3. gemeint war
rspamd einrichten (15.03.25)
Mails schicken
Mail Header
Es gibt erstmal viele Behauptungen in den Mail Headern:
- die Domain, von der die Mail kommt
Prüfen, ob der Absenderserver berechtigt ist, Mails unter der Domain zu verschicken
dig mag-roboter.de TXT
# ; <<>> DiG 9.20.5-1-Debian <<>> mag-roboter.de TXT
# ;; global options: +cmd
# ;; Got answer:
# ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58722
# ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
# ;; OPT PSEUDOSECTION:
# ; EDNS: version: 0, flags:; udp: 1232
# ;; QUESTION SECTION:
# ;mag-roboter.de. IN TXT
# ;; ANSWER SECTION:
# mag-roboter.de. 500 IN TXT "v=spf1 a mx -all"
# mag-roboter.de. 500 IN TXT "google-site-verification=s-sp4E8xucbPaU100PHlM1euFUxii1WvzwrbKzokpHU"
;; Query time: 35 msec
;; SERVER: 176.9.93.198#53(176.9.93.198) (UDP)
;; WHEN: Sat Mar 15 11:45:44 CET 2025
;; MSG SIZE rcvd: 173
Wer darf also alles Mails verschicken?
Wichtig ist hierbei der SPF-Record.
SPF = Sender Policy Framework
v=spf1 a mx -all
Also dürfen der A Record und der MX Record Mails verschicken. (a steht hierbei für IPV4 und IPV6).
Das -all
heißt: Alle anderen dürfen das nicht (-
).
SPF Record setzen
server1.domain.tld. 500 IN TXT "v=spf1 a mx -all"
Das kann man dann ins DNS als TXT record reinschreiben.
rspamd
Envelope Sender
Der Mailserver packt oft die Nachricht in sozusagen einen Briefumschlag und schreibt eine andere Absenderadresse drauf.
Damit werden dann die Header signiert. Der Public key davon liegt im DNS, der Private key auf dem server.
Installieren
apt install rspamd
Was kann rspamd?
Empfängerseite
- Passt der Absender?
- Darf der Server Mails senden?
- Spam filtern
Absenderseite
- Header signieren mittels DKIM
- Kann auch Spam filtern
Prüfen, ob rspamd läuft
systemctl status rspamd
# ● rspamd.service - rapid spam filtering system
# Loaded: loaded (/lib/systemd/system/rspamd.service; enabled; preset: enabled)
# Active: active (running) since Sat 2025-03-15 11:05:34 UTC; 5min ago
# Docs: https://rspamd.com/doc/
# Main PID: 7163 (rspamd)
# Tasks: 4 (limit: 4466)
# Memory: 75.2M
# CPU: 602ms
# CGroup: /system.slice/rspamd.service
# ├─7163 "rspamd: main process"
# ├─7166 "rspamd: rspamd_proxy process (localhost:11332)"
# ├─7167 "rspamd: controller process (localhost:11334)"
# └─7168 "rspamd: normal process (localhost:11333)"
#
# Mar 15 11:05:34 debian-4gb-hel1-6 systemd[1]: Started rspamd.service - rapid spam filtering system.
# Mar 15 11:05:34 debian-4gb-hel1-6 rspamd[7163]: 2025-03-15 11:05:34 #7163(main) <119b1e>; main; main: rspamd 3.4 is loading configuration, build id: release
ss -ntopa | grep rspamd
# LISTEN 0 4096 127.0.0.1:11334 0.0.0.0:* users:(("rspamd",pid=7167,fd=11),("rspamd",pid=7163,fd=11))
# LISTEN 0 4096 127.0.0.1:11332 0.0.0.0:* users:(("rspamd",pid=7166,fd=8),("rspamd",pid=7163,fd=8))
# LISTEN 0 4096 127.0.0.1:11333 0.0.0.0:* users:(("rspamd",pid=7168,fd=15),("rspamd",pid=7163,fd=15))
# LISTEN 0 4096 [::1]:11332 [::]:* users:(("rspamd",pid=7166,fd=9),("rspamd",pid=7163,fd=9))
# LISTEN 0 4096 [::1]:11333 [::]:* users:(("rspamd",pid=7168,fd=17),("rspamd",pid=7163,fd=17))
# LISTEN 0 4096 [::1]:11334 [::]:* users:(("rspamd",pid=7167,fd=13),("rspamd",pid=7163,fd=13))
Postfix sagen, dass es einen Milter nutzen soll
Was ist ein Milter?
Postfix kann damit bei jedem Schritt de Milter fragen “Was hälst du davon”?
Der Milter kann dann sagen:
- Gut
- Weiß ich noch nicht
- Nein
Einbauen
postconf -e "smtpd_milters = inet:localhost:11332"
postconf -e "milter_default_action = accept" # Was soll gemacht werden, wenn das mal nicht läuft?
rspamd Webinterface nutzen
ssh root@server -L 11334:127.0.0.1:11334
Das startet einen Reverse Proxy.
Man kann das Webinterface jetzt auf http://127.0.0.1:11334/ auf dem eigenen Rechner sehen.
Wenn man jetzt eine Testmail schickt, sollte man das im Webinterface sehen.
Mehr Infos sehen in der History
apt install redis
rspamadm configwizard checks redis # immer Enter drücken
systemctl restart rspamd.service
Jetzt sieht man mehr Infos zu den Mails und auch warum eine Mail angenommen / abgelehnt wurde.
Ab eine bestimmten Spampunktezahl wird das dann verschieden gewertet. Je weniger man hat, desto besser.
DKIM einrichten
DKIM signiert Mails und beweist somit, dass die Mail von ihm stammt.
rspamadm configwizard checks dkim
Dabei auswählen:
- Ja, wir möchten DKIM aufsetzen (y)
- Use domain from SMTP envelope from for sign (2)
- Do you want to sign mail from authenticated users? (y)
- Allow data mismatch, e.g. if mime from domain is not equal to authenticated user domain? (y)
- Do you want to use effective domain (e.g. example.com instead of foo.example.com)? (n)
- Enter output directory for the keys [default: /var/lib/rspamd/dkim/]: So lassen
- Enter domain to sign: eigene Domain (z.B.
tuxi.lxht.de
) - Enter selector [default: dkim]: So lassen
Und neu starten:
chown _rspamd:_rspamd /var/lib/rspamd/dkim/<datei>
systemctl restart rspamd.service
DNS
Den vom Wizard ausgegebenen Key packt man dann ins DNS
Was sollen andere Mailserver tun, wenn jemand unseren Mailserver ausnutzt?
Also: Wenn jemand anders ausgibt, unser Mailserver zu sein, das aber nicht ist?
DMARC Policy
Was soll passieren, wenn entweder DKIM oder SPF nicht OK sind?
Wir können z.B. sagen, dass wir immer DKIM signierte Mails schicken.
Das hier ins DNS:
_dmarc.server.domain.tld. TXT "v=DMARC1; p=reject; rua=mailto:mail@domain.tld"
Das heißt:
p=reject
: alle falschen signierten ablehnen. Es gibt auchnone
undquarantine
.rua=
: Mail, die informiert werden soll, wenn jemand versucht, als einer selbst zu verschicken
Leider habe bei der Terminabstimmung für das nächste Treffen einen anderen Termin übersehen, den ich leider nicht verschieben kann. Da ich jetzt schon einen großen Teil der Grundlagen gelernt habe, ist mein Interesse für eine Fortsetzung auch nicht so hoch, dass ich mich hierfür statt des anderen Termin entscheide.
Sessionbericht 12.02.25
Wiederholung, senden, fixen, etc …
Neues:
Email testen
- https://internet.nl/
- https://www.learndmarc.com/
- https://mecsa.jrc.ec.europa.eu/
- https://mxtoolbox.com/SuperTool.aspx
Report-Email versenden
Wenn jemand versucht, einen Server zu faken, eine Mail an den Serverinhaber senden:
In /etc/rspamd/local.d/dmarc.conf
:
reporting {
# Required attributes
enabled = true; # Enable reports in general
email = 'dmarc_reports@example.com'; # Source of DMARC reports
domain = 'example.com'; # Domain to serve
org_name = 'Example organisation'; # Organisation
# Optional parameters
bcc_addrs = ["postmaster@example.com"]; # additional addresses to copy on reports
report_local_controller = false; # Store reports for local/controller scans (for testing only)
helo = 'rspamd.localhost'; # Helo used in SMTP dialog
smtp = '127.0.0.1'; # SMTP server IP
smtp_port = 25; # SMTP server port
from_name = 'Rspamd'; # SMTP FROM
msgid_from = 'rspamd'; # Msgid format
max_entries = 1k; # Maximum amount of entries per domain
keys_expire = 2d; # Expire date for Redis keys
#only_domains = '/path/to/map'; # Only store reports from domains or eSLDs listed in this map
# Available from 3.3
#exclude_domains = '/path/to/map'; # Exclude reports from domains or eSLDs listed in this map
#exclude_domains = ["example.com", "another.com"]; # Alternative, use array to exclude reports from domains or eSLDs
# Available from 3.8
#exclude_recipients = '/path/to/map'; # Exclude reports for recipients listed in this map
#exclude_recipients = ["a@example.com", "b@another.com"]; # Alternative, use array to exclude reports for recipients
}
Zum ansehen:
redis-cli KEYS '*' | grep dmarc_rpt
redis-cli ZRANGE "<einer der keys von oben>" 0 -1
Reports senden mit:
rspamadm dmarc_report 20250412 # <-- datum von morgen
An Google kann man dann sogar auch Mails verschicken!
Damit wäre das Thema (für Martin, Felix und mich) fertig.
Ich habe übrigens das „Run your own mail server“ von Michael W. Lucas als elektronisches Buch hier; falls es euch hilft könnte ich das verleihen.