docs: add documentation for ki1 mail archiving and bounce bypass
This commit is contained in:
parent
ab811f9495
commit
f0fba311fd
39
mail-archivierung-ki1.md
Normal file
39
mail-archivierung-ki1.md
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# Mail-Archivierung und Filter-Bypass (mail.ki1.it & mail.consoro.eu)
|
||||||
|
|
||||||
|
Diese Dokumentation beschreibt das Setup zur vollständigen und unsichtbaren Archivierung aller ein- und ausgehenden E-Mails, ohne das Sende- oder Empfangsverhalten (insbesondere durch unerwünschte Bounces) zu beeinflussen.
|
||||||
|
|
||||||
|
## 1. Das Archiv-Postfach auf mail.ki1.it (Mailcow)
|
||||||
|
|
||||||
|
Der Server `mail.ki1.it` nutzt Mailcow. Hier ist das Postfach `archiv@ki1.it` eingerichtet.
|
||||||
|
|
||||||
|
- **Besonderheit Speicherplatz**:
|
||||||
|
Die Domains `ki1.it`, `go-ki.eu` und `go2ki.eu` haben **unlimitierten Speicherplatz** (`0` in Mailcow).
|
||||||
|
Das Postfach `archiv@ki1.it` hat ebenfalls unlimitierten Speicherplatz (`Quota = 0`).
|
||||||
|
- **Passwort-Bypass**:
|
||||||
|
Da einfache Passwörter von der Mailcow-API (Complexity-Check) blockiert werden, wurde das Passwort für das Archiv-Postfach direkt über einen generierten BLF-CRYPT-Hash in die MySQL-Datenbank (`mysql-mailcow`, Tabellen `mailbox` und `alias`) injiziert.
|
||||||
|
- **Speicher-Architektur (mergerfs)**:
|
||||||
|
Die E-Mails auf `mail.ki1.it` werden hybrid gespeichert. Die lokale schnelle Festplatte und eine riesige Hetzner Storage Box sind via `mergerfs` zu `/mnt/vmail-hybrid` zusammengefasst. E-Mail-Clients sehen alle Mails nahtlos im Posteingang. Ältere Mails liegen auf der Storage Box und laden beim Anklicken minimal langsamer, sind aber sofort verfügbar.
|
||||||
|
|
||||||
|
## 2. Der unsichtbare Mail-Filter auf mail.consoro.eu (Postfix)
|
||||||
|
|
||||||
|
Um **jede** Mail vor dem Verlassen oder direkt beim Eintreffen auf `mail.consoro.eu` zu kopieren, wird die native Postfix-Funktion `always_bcc` genutzt.
|
||||||
|
|
||||||
|
**WICHTIG:** Ein normales `always_bcc` birgt die extreme Gefahr, dass bei einem Ausfall des Archiv-Servers ein "Undelivered Mail"-Bounce an den *ursprünglichen Absender* geschickt wird. Das wurde durch folgendes Setup zu 100% verhindert:
|
||||||
|
|
||||||
|
### A) Whitelisting auf dem Archiv-Server (Mailcow)
|
||||||
|
Die IP des Hauptservers (`157.90.24.227`) wurde in der Mailcow-Datenbank (`mail.ki1.it`) in die Tabelle `forwarding_hosts` mit `filter_spam = 0` eingetragen.
|
||||||
|
**Effekt:** Mailcow prüft keine SPF-, DKIM- oder DMARC-Records für Mails von dieser IP. Die BCC-Kopien (die oft externe Absender-Domains haben) werden niemals als Spam abgewiesen.
|
||||||
|
|
||||||
|
### B) Blackhole-Routing für Bounces (Postfix auf mail.consoro.eu)
|
||||||
|
Falls der Archiv-Server doch offline ist, fängt Postfix den Bounce ab und vernichtet ihn lautlos:
|
||||||
|
1. **`always_bcc = archiv@ki1.it`** (in `/etc/postfix/main.cf`)
|
||||||
|
2. **Custom Transport** (in `/etc/postfix/transport`):
|
||||||
|
`archiv@ki1.it archive-smtp:`
|
||||||
|
3. **Envelope-Rewrite** (in `/etc/postfix/master.cf`):
|
||||||
|
Der `archive-smtp` Transport nutzt `smtp_generic_maps = regexp:/etc/postfix/archive_generic`.
|
||||||
|
4. **Generic Map** (in `/etc/postfix/archive_generic`):
|
||||||
|
Schreibt den Envelope Sender (für die Fehler-Rückläufer) per `/(.*)/` auf `noreply-archive@mail.consoro.eu` um.
|
||||||
|
5. **Das schwarze Loch** (in `/etc/aliases`):
|
||||||
|
`noreply-archive: /dev/null`
|
||||||
|
|
||||||
|
**Ergebnis:** Jeder Bounce, der vom BCC generiert wird, geht an `noreply-archive@mail.consoro.eu` und landet sofort im Nirvana (`/dev/null`). Der originale Absender und Empfänger der E-Mail merken von der Archivierung absolut nichts. Keine Fehler, keine Verzögerungen.
|
||||||
Loading…
Reference in a new issue