[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