Deployment
Unterstützung des Proxy Protocols für korrekte Quell-IP-Adressen in Postfix
Motivation
Für die Spambekämpfung setzt openDesk auf die Integration von Postfix und rspamd über das Milter-Protokoll. Dabei übermittelt Postfix unter anderem die Quell-IP-Adresse eingehender Verbindungen an rspamd, damit Prüfungen wie DKIM-, rDNS- und SPF-Checks zuverlässig durchgeführt werden können.
In klassischen Deployments entspricht diese Quell-IP der tatsächlichen Client-IP. In Kubernetes-Umgebungen werden Anwendungen jedoch üblicherweise nicht direkt exponiert, sondern hinter einem LoadBalancer oder Proxy betrieben. Ohne Unterstützung des Proxy Protocols sieht Postfix dadurch lediglich die IP-Adresse des vorgeschalteten LoadBalancers statt der tatsächlichen Client-IP.
Dies führt dazu, dass rspamd keine korrekten Informationen für die Spam-Erkennung erhält und Prüfungen unter Umständen fehlschlagen oder an Aussagekraft verlieren. Ein typisches Beispiel hierfür ist die Nutzung eines TCP-LoadBalancers mit aktiviertem Proxy Protocol, wie beispielsweise in der STACKIT Kubernetes Engine Dokumentation beschrieben.
Änderung
Mit diesem Release wurde die neue Helmfile-Value technical.postfix.smtpdUpstreamProxyProtocol eingeführt.
Über diese Einstellung kann das HAProxy Proxy Protocol in Postfix aktiviert werden, sodass Postfix die ursprünglichen Quell-IP-Adressen vom vorgeschalteten LoadBalancer übernehmen kann.
Dadurch stehen Postfix und rspamd wieder die korrekten Client-IP-Adressen für die Spam-Erkennung zur Verfügung.
Hinweise für Betreiber
Szenario 1: Externe Spambekämpfung vor openDesk
Wenn die Spambekämpfung bereits vor openDesk erfolgt, sind keine Änderungen oder Migrationsschritte erforderlich.
Szenario 2: Nutzung von rspamd innerhalb von openDesk
Wenn die Helmfile-Values smtp.spamMilter.* verwendet werden um, zum Beispiel rspamd für die Spambekämpfung zu integrieren, wird empfohlen das Proxy Protocol zu aktivieren. Nur so können Postfix und rspamd mit den tatsächlichen Quell-IP-Adressen arbeiten.
Dabei ist wichtig:
Die Konfiguration muss sowohl im Kubernetes-Cluster bzw. LoadBalancer als auch in openDesk identisch gesetzt werden.
Das Proxy Protocol muss auf beiden Seiten entweder aktiviert oder deaktiviert sein.
Eine Fehlkonfiguration führt dazu, dass Postfix eingehende Verbindungen nicht korrekt verarbeitet.