Postfix als Rewrite Gateway

Hallo Serversupport Community!

Ich melde mich mit meinem ersten Beitrag bei euch sogleich mit einem mächtigen Hammer, da ich in einem Projekt für ein Rewrite Gateway nicht mehr voran komme, völlig feststecke und hoffe, dass unter euch ein paar echte Postfix Spezialisten zu finden sind.

Ziel meines Projekt soll es sein, ein Rewrite Gateway für mehrere Quellorganisationen einzurichten, welches den ausgehenden Mailverkehr hinter einer neuen Domäne maskiert und bei antworten wieder demaskiert. Konkret funktioniert dies ausgehend auch schon, indem meine Quelldomäne "@oldcorp.com" in "@newcorp.com" umgeschrieben wird und der Empfänger nur die neue Domäne sieht. Der Rückweg macht mir allerdings etwas Sorgen, da die Mail dort zwar am Gateway umgeschrieben und richtig geroutet wird, jedoch mit der falschen "To" Adresse am Exchange Server übergeben wird. Da dieser die @newcorp.com nicht kennt, landet die Mail in einem Loop und die Zustellung wird unmöglich. Füge ich die @newcorp.com Domäne zu den akzeptierten Domänen hinzu, kann ich die Mails plötzlich zustellen und im "To" Feld steht die korrekte @oldcorp.com Adresse, im Header als "for" steht jedoch noch die newcorp.com Adresse drin…

Mein Weg konkret:

Erfolgreich versenden
@oldcorp.com (Exchange) => mailgw (CentOS/Postfix) smtpd_generic_map "@newcorp.com" => Internet

Empfang nicht erfolgreich
Internet @newcorp.com => mailgw (CentOS/Postfix) canonical_map "@oldcorp.com" => @newcorp.com (Exchange)

Meine main.cf

Code:

command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $ daemon_directory/$ process_name $ process_id & sleep 5
enable_original_recipient = no
html_directory = no
inet_interfaces = all
inet_protocols = ipv4
local_header_rewrite_clients = permit_inet_interfaces permit_mynetworks
local_recipient_maps =
local_transport = error:local mail delivery is disabled
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination =
myhostname = mail.newcorp.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
recipient_canonical_maps = hash:/etc/postfix/canonical_recipient_map
relay_domains = newcorp.com oldcorp.com
relay_recipient_maps = hash:/etc/postfix/relay_recipients
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_generic_maps = hash:/etc/postfix/generic
smtpd_banner = $ myhostname
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = hash:/etc/postfix/virtual


Meine master.cf

Code:

smtp      inet  n      -      n      -      -      smtpd
#smtp      inet  n      -      n      -      1      postscreen
#smtpd    pass  -      -      n      -      -      smtpd
#submission inet  n      -      n      -      -      smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$ mua_client_restrictions
#  -o smtpd_helo_restrictions=$ mua_helo_restrictions
#  -o smtpd_sender_restrictions=$ mua_sender_restrictions
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps    inet  n      -      n      -      -      smtpd
#  -o syslog_name=postfix/smtps
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$ mua_client_restrictions
#  -o smtpd_helo_restrictions=$ mua_helo_restrictions
#  -o smtpd_sender_restrictions=$ mua_sender_restrictions
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628      inet  n      -      n      -      -      qmqpd
pickup    unix  n      -      n      60      1      pickup
cleanup  unix  n      -      n      -      0      cleanup
qmgr      unix  n      -      n      300    1      qmgr
#qmgr    unix  n      -      n      300    1      oqmgr
tlsmgr    unix  -      -      n      1000?  1      tlsmgr
rewrite  unix  -      -      n      -      -      trivial-rewrite
bounce    unix  -      -      n      -      0      bounce
defer    unix  -      -      n      -      0      bounce
trace    unix  -      -      n      -      0      bounce
verify    unix  -      -      n      -      1      verify
flush    unix  n      -      n      1000?  0      flush
proxymap  unix  -      -      n      -      -      proxymap
proxywrite unix -      -      n      -      1      proxymap
smtp      unix  -      -      n      -      -      smtp
relay    unix  -      -      n      -      -      smtp
#      -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq    unix  n      -      n      -      -      showq
error    unix  -      -      n      -      -      error
retry    unix  -      -      n      -      -      error
discard  unix  -      -      n      -      -      discard
local    unix  -      n      n      -      -      local
virtual  unix  -      n      n      -      -      virtual
lmtp      unix  -      -      n      -      -      lmtp
anvil    unix  -      -      n      -      1      anvil
scache    unix  -      -      n      -      1      scache


Außerdem ist mir soeben aufgefallen, dass das generic Rewrite bei Terminen überhaupt nicht durchgeführt wird. Wäre hier vielleicht header_checks eine Alternative oder versuche ich vielleicht generell etwas umzusetzen, was mit Postfix nicht funktionieren kann…

Für jeden Hinweis der mich in die richtige Richtung führt, wäre ich euch echt dankbar!

Grüße
TooCloudy

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *