194 lines
5.5 KiB
Markdown
194 lines
5.5 KiB
Markdown
# Selective Sender Rewriting Scheme (SRS)
|
|
|
|
## Projektstatus
|
|
|
|
**Archiviert am 20. Oktober 2026.**
|
|
|
|
Die Entwicklung wurde eingestellt. Diese Implementierung ist nicht
|
|
fuer den produktiven Einsatz freigegeben.
|
|
|
|
Dieses Verzeichnis dient ausschliesslich der Archivierung und
|
|
Dokumentation des bisherigen Entwicklungsstands.
|
|
|
|
Die enthaltenen Installations- und Verwaltungsskripte duerfen
|
|
nicht unveraendert fuer Neuinstallationen verwendet werden.
|
|
|
|
## Urspruengliches Ziel
|
|
|
|
Ziel war eine selektive SRS-Implementierung fuer Postfix.
|
|
|
|
SRS sollte ausschliesslich bei externen Weiterleitungen zum
|
|
Einsatz kommen, die durch lokale virtuelle Mail-Aliase entstehen.
|
|
|
|
Normale eingehende und ausgehende E-Mails sollten dagegen
|
|
unveraendert verarbeitet werden.
|
|
|
|
Die Verwaltung virtueller Aliase erfolgt unter anderem ueber
|
|
PostfixAdmin und PostgreSQL.
|
|
|
|
## Technische Implementierung
|
|
|
|
Entwickelt wurde eine Loesung auf Basis von:
|
|
|
|
- Postfix
|
|
- PostSRSd 2.4.1
|
|
- einer zusaetzlichen Postfix-Instanz
|
|
- eigenen Python-Programmen zur Alias-Entscheidung,
|
|
Weiterleitung und Rueckuebersetzung
|
|
- Shell-Skripten fuer Installation, Aktivierung und
|
|
Deaktivierung
|
|
|
|
Die Implementierung enthielt unter anderem:
|
|
|
|
- selektive SRS-Entscheidungslogik
|
|
- SRS0-/SRS1-Umschreibung
|
|
- Verarbeitung von SRS-Ruecklaeufern
|
|
- persistente Speicherung des vorherigen Postfix-Zustands
|
|
- kontrollierte Aktivierung und Deaktivierung
|
|
- Sicherungs- und Rollback-Funktionen
|
|
- DNS- und SPF-Pruefungen
|
|
- Offline-Tests
|
|
|
|
## Entwicklungs- und Testergebnis
|
|
|
|
Die Implementierung wurde im Oktober 2026 entwickelt und
|
|
auf e.mx.oopen.de getestet.
|
|
|
|
Dabei wurden unter anderem folgende Funktionen erfolgreich
|
|
geprueft:
|
|
|
|
- Aktivierung und Deaktivierung
|
|
- externe Alias-Weiterleitungen mit SRS
|
|
- SPF-Pruefung weitergeleiteter Nachrichten
|
|
- Rueckuebersetzung von SRS-Ruecklaeufern
|
|
- verschiedene Fehler- und Rollback-Szenarien
|
|
|
|
Die vorhandenen Tests belegen keine vollstaendige
|
|
Produktionsreife.
|
|
|
|
Die Loesung wurde zeitweise auch auf mx.warenform.de
|
|
produktiv eingesetzt.
|
|
|
|
## Grund fuer die Einstellung
|
|
|
|
Bei der abschliessenden Architekturpruefung wurden
|
|
grundlegende betriebliche Risiken festgestellt.
|
|
|
|
Insbesondere:
|
|
|
|
1. Die Verwendung von
|
|
|
|
default_transport = srs-forward
|
|
|
|
fuehrte dazu, dass auch regulaere Postfix-Zustellungen
|
|
von der eigenen Python-SRS-Verarbeitung und der
|
|
zusaetzlichen Postfix-Instanz abhaengig waren.
|
|
|
|
2. Die globale Einbindung der SRS-Reverse-Socketmap
|
|
in die Empfaengeradressverarbeitung erzeugte eine
|
|
weitere Abhaengigkeit von einem eigenen Dienst.
|
|
|
|
3. Fehler in der SRS-Entscheidungslogik konnten auch
|
|
Nachrichten beeintraechtigen, fuer die ueberhaupt
|
|
keine SRS-Umschreibung erforderlich war.
|
|
|
|
4. Der Betriebs- und Wartungsaufwand der Gesamtkonstruktion
|
|
war fuer die urspruenglich begrenzte Aufgabenstellung
|
|
zu hoch.
|
|
|
|
Damit wurde die wichtigste betriebliche Anforderung
|
|
nicht erfuellt:
|
|
|
|
Der regulaere Mailbetrieb muss auch bei einem Ausfall
|
|
der optionalen SRS-Verarbeitung unabhaengig weiterlaufen.
|
|
|
|
Eine weitere Ausweitung der eigenen Fehlerbehandlung
|
|
wurde nicht als sinnvoll angesehen.
|
|
|
|
## Entscheidung
|
|
|
|
Am 20. Oktober 2026 wurde entschieden, diese
|
|
SRS-Implementierung nicht weiterzuentwickeln
|
|
und nicht fuer weitere produktive Installationen
|
|
zu verwenden.
|
|
|
|
Stattdessen wurde der bisherige Postfix-Betrieb
|
|
ohne SRS wiederhergestellt.
|
|
|
|
## Rueckbau
|
|
|
|
Die SRS-Integration wurde am 20. Oktober 2026 auf
|
|
folgenden Systemen deaktiviert und entfernt:
|
|
|
|
- e.mx.oopen.de
|
|
- mx.warenform.de
|
|
|
|
Entfernt wurden insbesondere:
|
|
|
|
- SRS-spezifische Postfix-Konfigurationseintraege
|
|
- die zusaetzliche Postfix-Instanz
|
|
- SRS-spezifische systemd-Units
|
|
- PostSRSd und die eigenen SRS-Python-Programme
|
|
- nicht mehr benoetigte SRS-Socket- und PID-Dateien
|
|
|
|
Die Konfiguration und das jeweilige SRS-Secret
|
|
wurden vor der Entfernung lokal gesichert.
|
|
|
|
Diese Sicherungen sind nicht Bestandteil des
|
|
Git-Repositories.
|
|
|
|
## Inhalt des Archivs
|
|
|
|
Die bisherigen Programme, Konfigurationsvorlagen,
|
|
Verwaltungsskripte, Tests und Dokumentationen
|
|
bleiben hier erhalten.
|
|
|
|
Die urspruenglichen README-Dateien beschreiben
|
|
den damaligen Entwicklungsstand und sind als
|
|
historische Dokumentation zu verstehen.
|
|
|
|
Da die Dateien in dieses Archivverzeichnis
|
|
verschoben wurden, stimmen einige relative Pfade
|
|
und Annahmen der Skripte nicht mehr mit der
|
|
urspruenglichen Repository-Struktur ueberein.
|
|
|
|
Die Skripte und Tests sind daher nicht ohne
|
|
weitere Anpassungen ausfuehrbar.
|
|
|
|
## Moegliche spaetere Neubewertung
|
|
|
|
Eine erneute Beschaeftigung mit SRS sollte
|
|
nur erfolgen, wenn eine deutlich einfachere
|
|
und besser isolierte Architektur verfuegbar ist.
|
|
|
|
Dabei muss insbesondere gewaehrleistet sein,
|
|
dass Fehler oder Ausfaelle der SRS-Verarbeitung
|
|
keine Auswirkungen auf den regulaeren
|
|
Postfix-Mailbetrieb haben.
|
|
|
|
Eine unveraenderte Wiederaufnahme der hier
|
|
archivierten Implementierung wird nicht empfohlen.
|
|
|
|
## Zusaetzliche historische Entwicklungsdateien
|
|
|
|
Auf a.mx.oopen.de befanden sich nach der Archivierung
|
|
noch zwei lokale, bisher unversionierte Dateien.
|
|
|
|
Diese wurden ebenfalls in das Archiv uebernommen:
|
|
|
|
- README-DRAFT.md
|
|
Historische Entwicklungsnotizen und Review-Staende
|
|
des SRS-Installers vom Oktober 2026.
|
|
|
|
- tests/test_installer_mock_a-mx.py
|
|
Aeltere Version des Installer-Mock-Tests von
|
|
a.mx.oopen.de. Die spaetere Version
|
|
test_installer_mock.py enthaelt zusaetzliche
|
|
Pruefungen zur Behandlung von Postfix-Warnungen
|
|
und fehlerhaften Konfigurationsparametern.
|
|
|
|
Diese Dateien dienen ausschliesslich der
|
|
historischen Nachvollziehbarkeit und sind
|
|
nicht als aktuelle Installationsanleitung oder
|
|
freigegebene Testsuite zu verstehen.
|