DNS-Recursor fuer rspamd + Bayes-Trainingsskript
Rspamds DNS-Blocklisten waren wirkungslos: Spamhaus beantwortete keine Anfragen, weil sie ueber Dockers eingebautes DNS von einem als oeffentlich eingestuften Resolver kamen (DBL_BLOCKED_OPENRESOLVER im Log, fuer rDNS, Message-ID und URLs gleichermassen). ENABLE_UNBOUND=1 hat daran nichts geaendert - die Variable existiert in DMS nicht und war ein No-Op. - dns-recursor (PowerDNS Recursor 5.3.10) als eigener Service, der selbst rekursiv aufloest, in einem separaten Netz dms_dns mit fester IP, weil Dockers dns:-Option nur IPs akzeptiert - ENABLE_UNBOUND entfernt - train_bayes.sh: einmaliges Anlernen des Bayes-Klassifikators aus den vorhandenen Postfaechern (Junk -> Spam, INBOX -> Ham). Bisher feuerte kein einziges BAYES_-Symbol, weil die noetigen 200 Lernvorgaenge je Klasse fehlten. Default ist ein Trockenlauf, gelernt wird nur mit --apply. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -91,7 +91,10 @@ services:
|
||||
|
||||
# Sicherheit
|
||||
- ENABLE_FAIL2BAN=1
|
||||
- ENABLE_UNBOUND=1
|
||||
# ENABLE_UNBOUND entfernt: die Variable existiert in DMS nicht (mehr) und
|
||||
# war wirkungslos - rspamd hat ueber Dockers eingebautes DNS (127.0.0.11)
|
||||
# aufgeloest und bekam von Spamhaus nur DBL_BLOCKED_OPENRESOLVER zurueck.
|
||||
# Ersetzt durch den dns-recursor-Service weiter unten.
|
||||
|
||||
# Sonstige
|
||||
- ENABLE_MANAGESIEVE=0
|
||||
@@ -130,11 +133,47 @@ services:
|
||||
- NET_ADMIN
|
||||
- SYS_PTRACE
|
||||
restart: unless-stopped
|
||||
|
||||
# -------------------------------------------------------
|
||||
# DNS: rspamd fragt DNS-Blocklisten (Spamhaus DBL/ZEN, SURBL) ab. Diese
|
||||
# Dienste beantworten keine Anfragen, die ueber oeffentliche Resolver
|
||||
# kommen - man bekommt DBL_BLOCKED_OPENRESOLVER statt eines Ergebnisses.
|
||||
# Deshalb ein eigener rekursiver Resolver, siehe Service dns-recursor.
|
||||
#
|
||||
# ACHTUNG: Damit ersetzt der Recursor Dockers eingebautes DNS (127.0.0.11)
|
||||
# fuer DIESEN Container. Der mailserver kann dann keine Container-Namen
|
||||
# mehr aufloesen (roundcube-db, email-worker-ts, ...). Das ist hier
|
||||
# unkritisch, weil er von sich aus nur nach aussen verbindet (SES-Relay).
|
||||
# Faellt der Recursor aus, hat der mailserver kein DNS mehr - deshalb
|
||||
# restart: always beim Recursor.
|
||||
# -------------------------------------------------------
|
||||
dns:
|
||||
- 10.99.0.53
|
||||
depends_on:
|
||||
- dns-recursor
|
||||
|
||||
networks:
|
||||
mail_network:
|
||||
aliases:
|
||||
- mailserver
|
||||
- ${NODE_HOSTNAME}
|
||||
dns_network:
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Rekursiver DNS-Resolver ausschliesslich fuer den mailserver.
|
||||
# Er fragt die Root-Server selbst ab, statt an einen Upstream-Resolver
|
||||
# weiterzuleiten - nur so akzeptiert Spamhaus die Anfragen.
|
||||
# Braucht keine Konfiguration: das Image laeuft per Default als Recursor
|
||||
# und erlaubt Anfragen aus den RFC1918-Netzen (10.99.0.0/24 liegt darin).
|
||||
# ---------------------------------------------------------
|
||||
dns-recursor:
|
||||
image: powerdns/pdns-recursor-53:5.3.10
|
||||
container_name: dns-recursor
|
||||
restart: always
|
||||
stop_grace_period: 0s
|
||||
networks:
|
||||
dns_network:
|
||||
ipv4_address: 10.99.0.53
|
||||
|
||||
roundcube:
|
||||
image: roundcube/roundcubemail:latest
|
||||
@@ -190,3 +229,16 @@ services:
|
||||
networks:
|
||||
mail_network:
|
||||
external: true
|
||||
|
||||
# Eigenes Netz nur fuer mailserver <-> dns-recursor.
|
||||
# Bewusst NICHT im externen mail_network: dort vergibt Docker die Adressen
|
||||
# dynamisch, eine feste IP koennte mit einem anderen Container kollidieren.
|
||||
# Das Subnetz muss fest sein, weil Dockers `dns:`-Option nur IPs akzeptiert.
|
||||
# Falls 10.99.0.0/24 bei euch schon belegt ist (VPN, AWS-VPC), hier und bei
|
||||
# `dns:` sowie `ipv4_address` oben gemeinsam auf ein freies Netz aendern.
|
||||
dns_network:
|
||||
name: dms_dns
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: 10.99.0.0/24
|
||||
|
||||
Reference in New Issue
Block a user