Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
fortgeschrittene:postfix-rspamd [2025/03/15 12:44] ingo_wichmann [DKIM & DMARC] |
fortgeschrittene:postfix-rspamd [2025/08/31 12:06] (aktuell) ingo_wichmann [DKIM & DMARC] |
||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
* [[postfix]] | * [[postfix]] | ||
* [[dovecot-imapd]] | * [[dovecot-imapd]] | ||
- | * [[redis]] lokal ereichbar | + | * [[valkey]] oder [[redis]] lokal ereichbar |
==== redis ==== | ==== redis ==== | ||
Zeile 60: | Zeile 60: | ||
journalctl -f --facility=mail | journalctl -f --facility=mail | ||
-> ''milter-header-warning'' | -> ''milter-header-warning'' | ||
+ | |||
milter_header_checks in Produktion wieder aus machen: | milter_header_checks in Produktion wieder aus machen: | ||
postconf -# milter_header_checks | postconf -# milter_header_checks | ||
+ | === Spam-Test Mail schicken === | ||
+ | <file txt GTUBE> | ||
+ | This is the GTUBE, the | ||
+ | Generic | ||
+ | Test for | ||
+ | Unsolicited | ||
+ | Bulk | ||
+ | |||
+ | |||
+ | If your spam filter supports it, the GTUBE provides a test by which you | ||
+ | can verify that the filter is installed correctly and is detecting incoming | ||
+ | spam. You can send yourself a test mail containing the following string of | ||
+ | characters (in upper case and with no white spaces and line breaks): | ||
+ | |||
+ | XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X | ||
+ | |||
+ | You should send this test mail from an account outside of your network. | ||
+ | </file> | ||
+ | |||
+ | swaks -f test@example.com -t ingo@iw-1.lxht.de --body @GTUBE | ||
===== rspamd controller & WebUI ===== | ===== rspamd controller & WebUI ===== | ||
rspamadm configwizard checks controller | rspamadm configwizard checks controller | ||
Zeile 76: | Zeile 97: | ||
rspamadm configwizard checks dkim | rspamadm configwizard checks dkim | ||
+ | * DKIM-Selector z.B. ''dkim2025'' | ||
* "//Use domain from authenticated user for sign//" wählen | * "//Use domain from authenticated user for sign//" wählen | ||
- | * RR in [[bind]] zone eintragen | ||
- | * DMARC RR in [[bind]] zone eintragen: ''_dmarc.example.com TXT "v=DMARC1; p=none; rua=mailto:user1@example.com"'' | ||
- | chown _rspamd /var/lib/rspamd/dkim/iw.lxht.de.dkim.key* | + | chown _rspamd /var/lib/rspamd/dkim/example.com.dkim2025.key |
+ | |||
+ | Public-Key für RR aus Key erzeugen: | ||
+ | openssl ec -in /var/lib/rspamd/dkim/example.com.dkim2025.key -pubout -outform der | openssl base64 -A | fold -w 200 | while read chunk; do echo "\"$chunk\""; done | ||
+ | |||
+ | * RR in [[bind]] zone eintragen: ''dkim2025._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=" "MII..."'' | ||
+ | * DMARC RR in [[bind]] zone eintragen: ''_dmarc.example.com TXT "v=DMARC1; p=none; rua=mailto:user1@example.com"'' | ||
Konfiguration prüfen: | Konfiguration prüfen: | ||
- | rspamadm configdump dkim_signing | + | dig +short dkim2025._domainkey.example.com TXT |
- | dig +short dkim._domainkey.example.com TXT | + | |
dig +short _dmarc.example.com TXT | dig +short _dmarc.example.com TXT | ||
+ | rspamadm configdump dkim_signing | ||
Dienst neu laden: | Dienst neu laden: | ||
Zeile 100: | Zeile 126: | ||
path = "/var/lib/rspamd/dkims/$domain.$selector" | path = "/var/lib/rspamd/dkims/$domain.$selector" | ||
</file> | </file> | ||
+ | ++++ | ||
+ | |||
+ | ++++ dmarc Reports | | ||
+ | mit | ||
+ | redis-cli KEYS '*' | grep dmarc_rpt | ||
+ | kann man nachschauen, ob rspamd schon Berichte für andere Domains hat. In der letzten Spalte steht das Datum, an dem der Eintrag erzeugt wurde, z.B. 20250412 | ||
+ | Mit | ||
+ | redis-cli ZRANGE "dmarc_rpt;lxht.de;mailto:tuxilio@tuxi.lxht.de;20250412" 0 -1 | ||
+ | kann man sich die Werte anschauen, die beim nächsten Bericht an eine Domain verschickt werden. | ||
+ | Mit | ||
+ | rspamadm dmarc_report -n -v 20250412 | ||
+ | kann man sehe, wie rspamd die reports verarbeiten würde. | ||
+ | |||
+ | rspamadm dmarc_report | ||
+ | muss dann ein Mal täglich von cron oder systemd-timer gestartet werden. | ||
++++ | ++++ | ||