Archive discontinued selective SRS implementation
This commit is contained in:
@@ -0,0 +1,170 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user