Inhaltsverzeichnis
OmniMail™ · Die Mailstraße
Stand: 2026-11-04. Status: Golden Master, vom Projektverantwortlichen abgenommen. Geltung: OmniMail für omnisrv.de auf OMNISRV. Die ergänzende technische Systemübersicht bleibt separat.
Vorwort
Im Rahmen des Designs hat der Autor den verschiedenen Bereichen oder Routinen im OmniMail™ umgangssprachliche Namen gegeben, damit man sich ein besseres Bild von den Kommunikationswegen machen kann. In einigen Schaugrafiken sind diese Namen als Codename angegeben. So haben wir z.B. den Mail-Eingangsserver Alois genannt und die interne Vermittlungsstelle Hildegard. Die weiteren Mitspieler sind am Ende dieses Artikels gelistet.
Teil 1 · Die Postreise einfach erklärt
Was ist OmniMail™?
OmniMail ist die Mailstraße für omnisrv.de.
Vorne nimmt ein Postfix-Dienst E-Mails aus dem Internet entgegen. Er fragt nach, ob der Empfänger existiert, und lässt die Nachricht prüfen.
Ein zweiter Postfix-Dienst transportiert angenommene Mail zum Stalwart-Postfach.
Für ausgehende Mail läuft der Weg kontrolliert in die andere Richtung.
Somit ist der interne Stalwart-Mailserver vom Internet entkoppelt.
Wie liest man das Bild?
Das Schema zeigt Arbeitsschritte, keine zusätzliche Netzwerkfreigabe. Eine E-Mail für einen unbekannten Empfänger wird schon im SMTP-Gespräch abgewiesen. Spam- und Virenprüfungen können ebenfalls zur Ablehnung führen. Erst eine angenommene Nachricht gelangt in die Postfix-Queue und danach zur Mailbox.
Teil 2 · Die beteiligten Dienste
SMTP-Eingang und Empfängerprüfung
Postfix (Codename: Alois) im Container ext-qipu ist das öffentliche SMTP-Tor. Vor der Annahme fragt es den Prüfdienst von Postfix (Codename: Hildegard) im Container int-mailgateway. Dieser prüft die Empfängerexistenz bei Stalwart. Die Entscheidung kommt zum ersten SMTP-Dialog zurück.
Codename:
Alois"] Q -->|" Policy 10031 "| H["int-mailgateway
Codename:
Hildegard"] H -->|" SMTP RCPT
TCP 25 "| S["cdf-stalwart
Stalwart Mailserver"] S -->|" RCPT
Ergebnis "| H H -->|" SMTP
Entscheidung "| Q classDef decision stroke:#d8d8d8,stroke-dasharray:4 4 class H decision
Was bedeuten die Begriffe?
- TCP 25: SMTP-Anschlussnummer; kein Fehlercode.
- Policy 10031: interner Prüfanschluss von Alois zu Hildegard.
- RCPT: Empfängerangabe im SMTP-Gespräch.
- Rückpfeile: Antworten zur Annahmeentscheidung, keine direkte Mailzustellung.
Warum dieser Umweg?
- Stalwart kennt die lokalen Konten.
- Alois benötigt nur die Antwort, ob die Adresse zulässig ist.
- Der direkte Mailweg von Alois zu Stalwart bleibt gesperrt.
Spam- und Virenschutz
Rspamd (Codename: Illapa) bewertet die eingehende Nachricht als Milter. Für die Malwareprüfung fragt Rspamd ClamAV (historischer Name: Ix Chel, im Betrieb auch „Ixcel“) ab. Redis (Codename: Itzamná) dient Rspamd als Datenspeicher. Eine Ablehnung erfolgt nach den wirksamen Regeln vor der dauerhaften Queue-Annahme.
Prüfergebnis "| R["int-spamcheck: Rspamd"] R -->|" ClamAV 3310 "| V["int-viruscheck: ClamAV"] R -->|" Cache "| C["int-mailmemcache: Redis"] classDef decision stroke:#d8d8d8,stroke-dasharray:4 4 class R decision
Zustellung und Ausgangspost
Für omnisrv.de führt die aktive Postfix-Transporttabelle von Alois über Hildegard zu Stalwart. Stalwart verwaltet die Postfächer. Authentifizierte, autorisierte Ausgangspost geht von Stalwart über Hildegard und Alois zum externen MX. Postfix ist dabei kein offenes Relay.
Eingangspost
ext-qipu"] -->|" TCP 25 "| E2["Hildegard
int-mailgateway"] E2 -->|" lokale Zustellung "| E3["Stalwart
cdf-stalwart"]
Ausgangspost
cdf-stalwart"] -->|" autorisierter Ausgang "| A2["Hildegard
int-mailgateway"] A2 -->|" Relay "| A3["Alois
ext-qipu"] A3 -->|" SMTP TCP 25 "| A4["externer MX"]
Zwei getrennte DNS-Wege
Alois verwendet für DNS-Abfragen den externen BIND-Dienst; Hildegard nutzt den internen BIND-Dienst. So fragt jeder Postdienst nur die für ihn vorgesehene Namenssicht ab.
Teil 3 · Der Zertifikats-Kurier
Warum braucht OmniMail einen Kurier?
Caddy beschafft und verwaltet die TLS-Zertifikate. Die Maildienste sollen dafür weder Caddys gesamtes Zertifikatslager sehen noch untereinander Schlüssel austauschen. Ein lokaler Selektor legt nur die Pakete für ausdrücklich zugelassene Namen in ein geschütztes Eingangsfach. Von dort verteilt der Zertifikats-Kurier die geprüften Pakete an getrennte Zielfächer. Der Kurier selbst hat keine Netzwerkverbindung.
ACME-Zertifikate"] --> X["exakter
Selektor"] X --> I["geschütztes
Eingangsfach"] I --> K["Zertifikats-Kurier
ohne Netz"] K --> Z["versionierte
Zielfächer"] Z --> W["lokaler Wächter
und TLS-Reload"]
Was prüft und verteilt er?
- Eingang: Der Kurier liest das geschützte Eingangsfach, aber nicht Caddys vollständigen ACME-Speicher.
- Prüfung: Er kontrolliert, ob Zertifikat und privater Schlüssel zusammenpassen, die Zertifikatskette gültig ist, der Name im SAN steht, noch genügend Gültigkeit bleibt und das Ziel in seiner festen Liste freigeschaltet ist.
- Übergabe: Erst danach veröffentlicht er ein vollständiges, versioniertes Paket. Der Wechsel auf die neue Version erfolgt atomar; die bisherige funktionsfähige Version bleibt für eine Rücknahme erhalten.
- Aktivierung: Jeder Dienst sieht nur sein eigenes Zielfach schreibgeschützt. Ein lokaler Wächter bemerkt den Wechsel, lädt das Zertifikat beim Dienst nach und vergleicht anschließend den TLS-Fingerabdruck.
Wer bekommt ein Zertifikat?
| Ziel | Wofür? | Wie wird es aktiv? |
|---|---|---|
| Stalwart | IMAPS, Submission und die interne HTTPS-Verwaltung | Stalwarts lokaler TLS-Reload |
| Alois | STARTTLS am SMTP-Eingang | lokaler Postfix-Reload |
| Privater Konfigurationsdienst | HTTPS für AutoConfig und AutoDiscover | kontrollierter Reload des internen Webdienstes |
Wenn etwas schiefgeht
Ein unvollständiges oder unpassendes Paket wird nicht veröffentlicht. Schlägt das Nachladen fehl, versucht der jeweilige Wächter die vorherige gültige Version wiederherzustellen. Der vorhandene Fünf-Minuten-Zyklus prüft neue Pakete und überspringt unveränderte Versionen. Private Schlüssel gehören ausschließlich in die geschützten Fächer, nicht in diese Seite, ins Git-Repository oder in Protokolle.
Teil 4 · Monitoring und Backup
Wenn die Mailstraße Hilfe braucht
Ein Host-Monitor prüft die beteiligten Dienste und meldet relevante Zustandswechsel per Info-Mail an das hinterlegte Administrator-Konto. Der Alarmdienst versendet seine Nachricht über Stalwart.
Sicherung und Wiederherstellung
Die Mail- und Konfigurationsdateien werden über das in einem separaten Artikel beschriebene OmniBackup™ in regelmäßigem Rhythmus archiviert. Die Sicherung erfolgt derzeit stündlich in mehrere verschlüsselte Borg-Repositories.
Teil 5 · Technische Referenz
Live-Container, Netze und Adressen
| Technischer Dienst | Container / Hostdienst | Netz und IPv4 | Protokoll / Port |
|---|---|---|---|
| Postfix-Eingang und Internet-Relay | ext-qipu | ext-net 10.0.0.10; inbound-mail-checks 10.0.70.10; int-mailforward 10.0.71.10 | SMTP 25; Policy 10.0.71.20:10031; Milter 10.0.70.20:11332 |
| Postfix-Transport und Empfänger-Policy | int-mailgateway | int-mailforward 10.0.71.20; int-net 10.0.50.10 | SMTP 25; Policy 10031; Stalwart-RCPT 10.0.40.10:25 |
| Rspamd | int-spamcheck | inbound-mail-checks 10.0.70.20 | Milter 11332 |
| ClamAV | int-viruscheck | inbound-mail-checks 10.0.70.21 | ClamAV 3310 |
| Redis | int-mailmemcache | inbound-mail-checks 10.0.70.22 | Nur freigegebener Rspamd-Datenpfad |
| Stalwart | cdf-stalwart | cdf-mail-net 10.0.40.10 | SMTP 25; IMAPS 993; TLS-Submission 465; internes HTTPS 443; interner Listener 8080 |
| BIND intern | int-bind-internal | int-net 10.0.50.2 | DNS 53 |
| BIND extern | ext-bind-public | ext-net 10.0.0.2 | DNS 53 |
| Caddy intern | int-caddy | cdf-web-net 10.0.30.10 | HTTPS-Routing gemäß Caddy-Labels |
| Private Autokonfiguration | omnimail-m01-private-autoconfig | int-net 10.0.50.20 | internes HTTPS für Clientkonfiguration |
Diese Adressen stammen aus Docker-Inspect vom 03.11.2026. Die fünf Stalwart-Listener wurden zusätzlich im Container als TCP-Listener geprüft; ein Listener allein ist keine öffentliche Freigabe. Das HTTP-/API-Interface auf 8080 ist kein öffentlicher Admin-Zugang. HOME0 und autorisierte WireGuard-Clients erreichen die ausdrücklich freigegebenen Stalwart-Dienste; die Administration auf 443 bleibt intern.
Konfiguration und Schutzgrenzen
Mailverarbeitung und Postfächer
Postfix-Build und Compose: /opt/omnisrv/omnimail-m01-deploy-001/; aktive Hauptdateien alois-main-m01d008a.cf, hildegard-main-m01d002.cf und Transport-/Empfänger-Maps. Die laufenden Container-Mounts sind für den IST-Stand maßgeblich.
Rspamd: aktive local.d-/override.d-Bindungen aus demselben Deploy-Verzeichnis; DKIM- und Redis-Geheimnisse liegen getrennt unter /opt/omnisrv/secrets.
Stalwart: /mnt/docker-container/cdf-stalwart/config/config.json und persistente Daten; Zertifikate aus geschütztem Kurierziel. Die dynamische Konfiguration wird nicht als Klartext in Git abgebildet.
DNS und Betriebssteuerung
DNS: getrennte int-bind- und ext-bind-Konfigurationen unter /mnt/docker-container/; TSIG und dynamische Journale nicht im Quellrepo.
Start, Netzgrenzen und Überwachung: installierte omnimail-*.service und omnimail-*.timer unter /etc/systemd/system, Skripte im genannten Deploy-Verzeichnis.
Sicherheitsgrenzen
Verbotene direkte Mailwege laut M01-Netzvertrag: Alois → Stalwart, Rspamd → Stalwart und Stalwart → Alois. Hildegard darf DNS nicht über ext-bind beziehen; fremde Clients erhalten keinen offenen Relayzugang.
Betrieb und Wiederherstellung
Bei Zustellproblemen zuerst Monitorstatus, Postfix-Queues, Stalwart-Health und DNS-Antworten aus den jeweils berechtigten Netzen prüfen. Zertifikatswechsel über den vorhandenen Kurier/Watcher und dessen Fingerprint-Readback bewerten. Die isolierte Borg-Recovery aus M01-DEPLOY-015C-B ist ein Teilnachweis, keine vollständige Ersatzhost-Abnahme. Diese Dokumentation beschreibt den geprüften Aufbau; sie ändert keine laufenden Maildienste, DNS-, Firewall- oder Backup-Einstellungen.
Pantheon-Legende™
Die erste Grundordnung ist ein historischer Scaffold-Stand. Sie bestimmt Namen und Rollen, beweist aber für sich keine heutige Containerbelegung. Live-Zuordnungen sind unten ausdrücklich gekennzeichnet.
| Codename | Herkunft | Technische Funktion / Stand | Tatsächliches Ziel |
|---|---|---|---|
| Alois | Ein Urgestein als Postbote … | Aktiver äußerer Postfix-Eingang und Internet-Relay | ext-qipu, 10.0.0.10 |
| Hildegard | Eine nette Mitarbeiterin aus der Postverteilstelle … | Aktiver interner Postfix-Transport und Empfänger-Policy | int-mailgateway, 10.0.71.20 / 10.0.50.10 |
| Kukulkan | Aus dem Maya-Pantheon Die gefiederte Schlange, verehrt als Gottheit des Wissens. | Historische Rollenbezeichnung für Postfix-Transport/Queues; heute auf Alois und Hildegard verteilt | Kein eigener Container; siehe ext-qipu und int-mailgateway |
| Illapa | Aus dem Inka-Pantheon Gott des Blitzes und Donners. | Aktive Rspamd-Spamprüfung | int-spamcheck, 10.0.70.20 |
| Ix Chel / Ixcel | Aus dem Maya-Pantheon Göttin der Schwangerschaft und Heilkunst; „Ixcel“ ist der Betriebsname. | Aktive ClamAV-Malwareprüfung | int-viruscheck, 10.0.70.21 |
| Itzamná | Aus dem Maya-Pantheon Schöpfergott, dem auch die Schrift zugeschrieben wurde. | Aktiver Redis-Datenspeicher für Rspamd | int-mailmemcache, 10.0.70.22 |
| Hermes | Aus dem griechischen Pantheon Götterbote und Schutzherr der Reisenden. | Symbolischer Bote der Ausgangspost; keine zusätzliche Containerpflicht | Kein eigener Container; Transport durch Stalwart, Hildegard und Alois |
| Inti | Aus dem Inka-Pantheon Als Sonnengott verehrt. | Symbolische oberste Prüfungsinstanz im historischen Scaffold | Kein eigener Container oder IP-Ziel |
| QIPU | Aus der Inka-Kultur Knotenschnüre für Aufzeichnungen und Nachrichten; keine Gottheit. | Bezeichnung der Mailgateway-Welt, nicht zusätzlicher Dienst | Unter anderem ext-qipu; kein separates QIPU-Backend |
| Stalli-Maus | Projektinterner Stalwart-Spitzname aus M01-Arbeitsaufträgen | Stalwart-Postfach- und Verwaltungsdienst | cdf-stalwart, 10.0.40.10 |
| Brunhilde, Kunigunde, Jolanthe | Projektinterne Namen synthetischer Testpostfächer | Konten, keine technischen Transportdienste | Stalwart; keine eigenen Container-IPs |
| Julius | Projektinterner Name des externen Testabsenders | Testrolle, kein lokales Mailkonto | Kein OmniMail-Container |
Zeus und weitere Figuren bleiben nach der Grundordnung künstlerische Figuren ohne technische Zuständigkeit.

