[Postfixbuch-users] Absenderabhängige IP-Adresse (Mail loops back to myself) ...

Peer Heinlein p.heinlein at heinlein-support.de
Fr Okt 17 19:02:03 CEST 2008


> ich benötige für den Mailversand (von mx1.server.de) eine
> absenderabhängige bzw. kundenspezifische IP-Adresse für ausgehende
> Mails (smtp_bind_address).

Hi Michael!

Folgende Idee kam mir gestern zwischen Tür und Angel -- habe ich aber noch 
nicht verifiziert.

Eigentlich dachte ich, es würde ggf. folgendes gehen:

a) in der master.cf pro Kunde einen smtp-Transport anlegen (smtp-kund1, 
smtp-kunde2, smtp-kunde3) und jeden dieser Transports mittels 
smtp_bind_address mit "seiner" IP versorgen.

b) In die smtpd_recipient_restrictions sehr spät eine 
check_sender_access-Map einbauen.

c) In dieser access-Map dann je nach Kunde dann seine Transportmethode 
definieren:

kunde1domain.de	smtp-kunde1:
kunde2domain.de	smtp-kunde2:
kunde3domain.de	smtp-kunde3:

Ich habe es eben getestet -- es geht leider NICHT, da Postfix dann 
smtp-kunde1:$myhostname annimmt und nicht den MX-Record des eigentlichen 
Ziels beibehält.

Bleiben aber zwei Workarounds, die Ihr dann selbst ausbasteln dürft:

a) Für jeden Absender eine eigene Restriction-Class setzen, in die er 
anhand seines Absenders einsortiert wird,
b) in jeder Restriction-Classe gibt es dann eine 
check_recipient_access-Map (!) die aus einem Regexp-Lookup besteht und 
die sinngemäß

/(.+)@(.+)/	FILTER smtp-kunde1:\1

beinhaltet (RegExp-Syntax dürft Ihr basteln). D.h.: JEder Empfänger wird 
auf die Kundentransportmethode gemappt, gleichzeitig wird der Filter aber 
auf $zieldomain verweisen, also smtp-kunde1:zieldomain -- und damit 
routet Postfix dann nicht mehr an $myhostname, sondern an die Mailserver 
der Zieldomain -- so wie immer, aber nun eben über smtp-kunde1.

Skaliert aber sehr schlecht, da jeder Kunde eine eigene 
check_recipient_access und eine eigene Restriction-Klasse braucht.

Plan B daher: Mal kurz einen Policy-Dämon zusammenhacken, der alles 
vereinfacht: Lookup nach dem Absender => setzt die Transportmethode und 
dann gibt der Policy-Dämon eben seinerseits "FILTER 
smtp-kunde1:zieldomain" zurück. Und schon skaliert das ganze wunderbar. 
Es muß dann nur noch für jeden Kunden ein Einrag in der master.cf gemacht 
werden, aber da kommt man denke ich nie drumherum.

Nachteil: content_filter geht dann nicht mehr, aber das werdet Ihr in 
Eurem Setup wohl nicht mehr brauchen. Oder man würde das ganze eben 
sowieso erst auf localhost:10025 einbinden, dann geht wieder alles.

(Letzteres alles nicht getestet, glaube aber nicht, daß ich einen 
Denkfehler habe.)

Lieben Gruß aus Köln,

Peer


-- 
Heinlein Professional Linux Support GmbH
Linux: Akademie - Support - Hosting

http://www.heinlein-support.de

Zwangsangaben lt. §35a GmbHG:
HRB 93818 B / Amtsgericht Berlin-Charlottenburg, 
Geschäftsführer: Peer Heinlein  -- Sitz: Berlin



Mehr Informationen über die Mailingliste Postfixbuch-users