[Postfixbuch-users] Absender-abhängige smtp_bind_address
Sandy Drobic
postfixbuch-users at japantest.homelinux.com
Mo Apr 7 12:13:30 CEST 2008
Rainer Frey wrote:
> Hallo zusammen,
>
> ich hab grad folgendes Problem: wegen eines Sender-Zertifizierungsprogramms
> muss ich auf einem Server die Verwendung einer ausgehenden IP-Adresse pro
> Kunde (sprich: pro Absende-Adresse) implementieren.
Bist du dir sicher, dass dies der richtige Weg ist?
> Geht das mit Postfix, und wenn ja, wie? (Version kann gern 2.5 mit allen
> möglichen Features sein, der Server ist noch nicht aufgesetzt).
>
> Die Absender lassen sich problemlos so konfigurieren, dass sie, wenn das nötig
> ist, auch direkt auf dieser Adresse einliefern, es wird auch hostnames für
> die IPs, und evtl. MX-Einträge geben.
>
> Mein erster Gedankenansatz wäre: wird vielleicht bei einer Maschine mit
> mehreren IP-Adressen sowieso die Adresse genommen, über die die Mail auch
> reingekommen ist? In dem Fall würde ja inet_interfaces=all und
> smtp_bind_address=(leer) bereits reichen, um das umzusetzen. Allerdings hab
> ich in der Doku keine definitive Information gefunden, was in diesem Fall
> passiert.
Nein, die IP, welche der smtp Client verwendet, hängt allein vom Kernel ab,
der das Routing übernimmt. Steuern lässt sich dies nur über smtp_bind_address.
>
> Die zweite Idee: sender_dependent_relayhost_maps. Man kann ja pro zu
> verwendender IP-Adresse einen smtp-Transport konfigurieren (mit -o
> smtp_bind_address=...). Allerdings verstehe ich die Doku so, dass in
> sender_dependent_relayhost_maps ein nexthop stehen muss, und nicht ein
> transport (die nexthop-Auflösung wäre ja der Default anhand der
> Empfängeraddresse). Oder täusche ich mich da, und ich kann einen
> Transport-Namen angeben?
relayhost ist in der Tat der nächste Hop, also nicht geeignet.
> Dritte Idee: per transport_maps auf eben diese spezifischen smtp-Transports
> verweisen. Da ich keine Verbindung zwischen Kunde und Empfängeradresse habe,
> muss die Verknüpfung zum richtigen transport-Eintrag anders erfolgen. Ich
> kann ja auch einen 'smtpd' pro zu verwendender IP einrichten, um die
> Konfiguration anzupassen. Nur wird transport_maps ja von trivial-rewrite und
> nicht von smtpd ausgewertet. Gibt es irgendweine Möglichkeit, vom smtpd
> Informationen/Optionen an trivial-rewrite zu übergeben, die das routing
> beeinflussen?
Du kannst hier über Kopien von smtp spezielle Transporte mit smtp_bind_address
verwenden. Der Transport müsste dann über check_sender_access mit der Aktion
FILTER auf diesen Transport verweisen. Aus Sicherheitsgründen sollte dann
natürlich auch eine Authentifizierung nicht fehlen und eine Einschränkung,
dass nur authentifizierte Clients diese Absenderadrese benutzen dürfen.
> Dann wäre noch die Frage der Skalierbarkeit. Es kann durchaus im Lauf der Zeit
> in den dreistelligen Bereich an Absender-Adressen geben. Zumindest die Anzahl
> an smtpd-Prozessen is irgendwann am Limit.
smtpd ist nicht entscheidend, hier ist smtp gefragt. Im dreistelligen Bereich
könntest du inzwischen aber echte Probleme bekommen, so viele IP-Adressen zu
bekommen. Ich halte dieses Modell nicht für skalierbar.
> Aber auch die Lösung mit nur einer smtpd-Instanz, die sich an alle Interfaces
> bindet, stelle ich mir nicht ganz ohne vor Gibt es auch Probleme bei der
> Anzahl an IP-Adressen? Macht es Schwierigkeiten, wenn ein Prozess auf
> duzenden bis hunderten IP-Adressen (Aliase auf ein oder zwei physikalische
> Interfaces) hören muss? Betriebssystem wird Linux sein, entweder Debian oder
> Redhat Enterprise.
Mehrere IP-Adressen macht keine Probleme (wie bereits angeführt: smtpd ist für
Empfang, smtp für das Senden verantwortlich) beim Empfang, beim Senden kann
natürlich nur eine IP mit smtp_bind_address verwendet werden, sonst wählt
Postfix die vom Kernel-Routing vorgegebene Adresse für smtp, was sinnvoll ist.
--
Sandy
Antworten bitte nur in die Mailingliste!
PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Mehr Informationen über die Mailingliste Postfixbuch-users