domi65
Goto Top

Exchange - Postfix - Adress-Rewriting

Postfix soll interne Absender-Adresse in eine externe umwandeln

Hi zusammen,

ich versuche seit längerem verzweifelt folgendes zu realisieren... Das ganze hat mit vor dem SP2 für Exchange 2003 m.E. nach bereits funkioniert...

Also: Im LAN steht ein Exchange-Server, der alle nicht lokalen Mails weiterleiten soll an einen Postfix in der DMZ.
die interne Domain lautet bspw. intern.lan

Diese Absenderadressen sollen nun vom Postfix umgeschrieben werden in bspw. extern.de.
Dieses geschieht denke ich mal über die sender_canonical-DB.

Wenn ich mich nun per telnet auf den postfix Port 25 schalte und "mail from: hans@intern.lan" usw. eingebe kommt die mail auch mit hans@extern.de bei dem Empfänger an.
Wenn ich das ganze aus OUtlook heraus mit dem gleichen "hans@intern.lan" versende wird dies vom POstfix nicht erkannt und die Mail taucht beim Empfänger mit der internen Domain auf...

Wie gesagt, es hat schoneinmal funktioniert, ich weiß leider nicht mehr genau, warum es nun nicht mehr funktioniert... face-sad
Und den Benutzern über das ADS die externe Mailadresse zu geben scheidet aus, weil damit der Sinn verfehlt ist...

Wer kann mit BIIITTEEEE helfen???

thx im Voraus
domi

Content-ID: 27327

Url: https://administrator.de/contentid/27327

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

docsam
docsam 03.03.2006 um 19:48:51 Uhr
Goto Top
poste mal die postfix config face-smile
hab das bei uns so ähnlich konfiguriert, nur mit dem unterschied, das ich eine domain mit mehreren mailservern hab - und einen gateway mailserver - darauf wird maskiert.
domi65
domi65 05.03.2006 um 01:45:57 Uhr
Goto Top
Hi und danke für die schnelle Antwort!!!
Hier die main.cf ...
Ich hoffe das hilft weiter face-smile

readme_directory = /usr/share/doc/packages/postfix/README_FILES
program_directory = /usr/lib/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mailq_path = /usr/bin/mailq

virtual_maps = hash:/etc/postfix/virtual
#relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
alias_maps = hash:/etc/aliases
#virtual_alias_maps = hash:/etc/postfix/virtual

relayhost = mail.extern.de
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
sender_canonical_maps = hash:/etc/postfix/sender_canonical
#canonical_maps = hash:/etc/postfix/canonical

#masquerade_exceptions =
masquerade_domains = intern.lan extern.de
masquerade_classes = envelope_sender, header_sender

mydomain = intern.lan
myhostname = hostname.extern.de
mydestination = $myhostname, localhost.$mydomain, $mydomain, extern.de
mynetworks = 192.168.1.1/32, 127.0.0.0/8
#myorigin = $mydomain
myorigin = extern.de

#content_filter = smtp-amavis:[127.0.0.1]:10024

#defer_transport = smtp
disable_dns_lookups = yes

relay_domains = $mydestination
relay_recipient_maps = hash:/etc/postfix/relay_recipients
mailbox_command =
mailbox_transport =

#smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = no
smtpd_helo_restrictions =
#strict_rfc821_envelopes = no

smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
smtpd_sasl_auth_enable = no
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_use_tls = no
smtp_use_tls = no
mailbox_size_limit = 0
sample_directory = /usr/share/doc/packages/postfix/samples
sendmail_path = /usr/sbin/sendmail
html_directory = /usr/share/doc/packages/postfix/html
setgid_group = maildrop
manpage_directory = /usr/share/man
newaliases_path = /usr/bin/newaliases
unknown_local_recipient_reject_code = 450

DANKESCHÖÖÖÖN schonmal für weitere Hilfe!!

domi
docsam
docsam 08.03.2006 um 10:59:14 Uhr
Goto Top
ichhab mal verglichen

allerdings ist meine Konfig auch eine andere.
Ich hab server1.domain.de, server2.domain.de, server3.domain.de

Alle senden Ihre Mail ausgehend über gate.domain.de, der dann die Adressen zu domain.de maskiert. Ich glaub auch nur dafür ist das Feature gedacht.

Dafür hab ich folgende Einträge

mydomain = domain.de
masquerade_domains = $mydomain
myorigin = domain.de

Die Postfix-Doku sagt aus, das die Einträge auf $mydomain gestutzt werden - also solltest Du das

intern.lan aus masquerade_domains erstmal herausnehmen. (nur als vermutung)


Für deine Anwendung, scheint wohl folgendes eher angebracht, bin mir aber nicht ganz sicher:

http://www.postfix.org/ADDRESS_REWRITING_README.html#remote

Generic mapping for outgoing SMTP mail

Some hosts have no valid Internet domain name, and instead use a name such as localdomain.local. This can be a problem when you want to send mail over the Internet, because many mail servers reject mail addresses with invalid domain names.

With the smtp_generic_maps parameter you can specify generic(5) lookup tables that replace local mail addresses by valid Internet addresses when mail leaves the machine via SMTP. The generic(5) mapping replaces envelope and header addresses, and is non-recursive. It does not happen when you send mail between addresses on the local machine.

This feature is available in Postfix version 2.2 and later.

Example:

/etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic

/etc/postfix/generic:
his@localdomain.local hisaccount@hisisp.example
her@localdomain.local heraccount@herisp.example
@localdomain.local hisaccount+local@hisisp.example

When mail is sent to a remote host via SMTP, this replaces his@localdomain.local by his ISP mail address, replaces her@localdomain.local by her ISP mail address, and replaces other local addresses by his ISP account, with an address extension of +local (this example assumes that the ISP supports "+" style address extensions).

Gruß JEns
domi65
domi65 08.03.2006 um 15:38:28 Uhr
Goto Top
Hi Jens,
JAAAA, das ist schonmal sehr gut und funktioniert nun für die ausgehenden Mails richtung Internet.
Allerdings schreibt postfix nun auch die Mails um, die aus dem Internet kommen und diese werden vom Exchange rejected, weil dieser nur intern.lan - Absender akzeptiert face-sad Also klappt es jetzt andersherum nicht... Dachte eigentlich, dass dieses mit dem recipients_canonical zu beheben sei, aber ist nich...

Kannst Du mir hier auch noch weiterhelfen?
Das wäre klasse!!!
1000 DANK!!!
Domi
docsam
docsam 08.03.2006 um 15:47:14 Uhr
Goto Top
wie er macht nen Rewrite der Absender externer Mails, oder kann er die externen Adressen nicht auf die internen Umsetzen?

derzeit behelfe ich mir da über die Aliaseslösung (historisch gewachsen) und da muss ich nocheinmal beigehen.

im aliasesfile steht quasi

usera userb@server.domain.local
userb userc@serverb.domain.local

ist aber immer händisch zu pflegen - bei unserer userzahl mittlerweile auch kein geschenk mehr. Aber es funktioniert - obwohl ich demnächst die Daten aus dem AD holen möchte.

Gruß
Jens
domi65
domi65 08.03.2006 um 16:22:07 Uhr
Goto Top
Er kann die externen nicht auf interne umsetzen... Das log sieht so aus:

Mar 8 16:17:54 dhl01 postfix/pickup[899]: D097A57F9E: uid=0 from=<root>
Mar 8 16:17:54 dhl01 postfix/cleanup[909]: D097A57F9E: message-id=<440EF5A2.mailP519DK4L@dhl01.home.local>
Mar 8 16:17:54 dhl01 postfix/qmgr[900]: D097A57F9E: from=<user@intern.lan>, size=398, nrcpt=1 (queue active)
Mar 8 16:17:54 dhl01 postfix/smtp[911]: warning: database /etc/postfix/generic.db is older than source file /etc/postfix/generic
Mar 8 16:17:54 dhl01 postfix/smtp[911]: warning: 192.168.1.1[192.168.1.1] offered AUTH option multiple times
Mar 8 16:17:55 dhl01 postfix/smtp[911]: D097A57F9E: to=<user@intern.lan>, relay=192.168.1.1[192.168.1.1], delay=1, status=bounced (host 192.168.1.1[192.168.1.1] said: 550 5.7.1 Unable to relay for user@extern.de (in reply to RCPT TO command))
Mar 8 16:17:55 dhl01 postfix/cleanup[909]: 2014657F9F: message-id=<20060308151755.2014657F9F@postfix.server>
Mar 8 16:17:55 dhl01 postfix/qmgr[900]: 2014657F9F: from=<>, size=2203, nrcpt=1 (queue active)
Mar 8 16:17:55 dhl01 postfix/qmgr[900]: D097A57F9E: removed
Mar 8 16:17:55 dhl01 postfix/smtp[911]: warning: 192.168.1.1[192.168.1.1] offered AUTH option multiple times
Mar 8 16:17:55 dhl01 postfix/smtp[911]: 2014657F9F: to=<user@intern.lan>, relay=192.168.1.1[192.168.1.1], delay=0, status=bounced (host 192.168.1.1[192.168.1.1] said: 550 5.7.1 Unable to relay for user@extern.de (in reply to RCPT TO command))
Mar 8 16:17:55 dhl01 postfix/qmgr[900]: 2014657F9F: removed

Der schaufelt den externen empfänger zwar in die interne um, aber irgendwo steht dann, dass doch der externe user der empfänger sei...

Sobald ich das smtp_generic_maps rausnehme, stellt er die Mails wieder zum Exchange durch...
Ick fasteh nix mehr...
docsam
docsam 09.03.2006 um 08:50:12 Uhr
Goto Top
seltsam - obwohl ich meine du hast in der Config alles richtig.

http://www.postfix.org/VIRTUAL_README.html#local

aber als Idee (vorher backup der config;) - er verbietet ja das Relaying, weil er die Domain nicht kennt. Trag doch einfach als $mydomain = extern.de ein.

Auf der Internen Seite darfst du ja eh relayen oder?

Gruß
domi65
domi65 09.03.2006 um 09:59:00 Uhr
Goto Top
Hi!
Also ich habs jetzt glaub ich ganz verwurschtelt face-smile
Ich weiß nicht mehr wer wohin rewritet wird usw.... Bin kurz davor von vorn anzufangen...

Also der Server der die Mails bounced ist der Exchange... Vom Postfix aus werden sie versucht zuzustellen, das klappt nicht.

Kan ja nochmal kurz genau definieren, wie es sein soll:

In der Domäne intern.lan sitzen UserA und UserB.
Diese haben und sollen intern die Adressen usera@intern.lan und userb@intern.lan bekommen.

Alle anderen Mails, die nicht nach intern.lan sollen werden an den Postfix gesandt.

Dieser soll dann die ausgehenden Mails ins Internet so umschreiben, dass usera@intern.lan als Absender- und Antwort-Adresse usera@gmx.de bekommt, userb@intern.lan soll userb@web.de bekommen usw.

Andersherum:
fetchmail holt mails von web.de bzw. gmx.de ab und schreibt diese an usera@gmx.de in usera@intern.lan um und stellt diese an den exchange weiter...

Es lief auch mal, allerdings mit einer älteren Postfix-Version (m.E. irgendwas vor 2.2.x)...

So, im Moment ist es so, dass usera@intern.lan noch zusätzlich von Exchange die Adresse usera@web.de zugewiesen bekommen hat, das soll aber nicht mehr so sein.

Wenn ich nur mit sender- / recipients_canonical_maps arbeite werden zumindest die eingehenden Mails richtig umgeschrieben, d.h. Mails an usera@web.de werden umgeschrieben in usera@intern.lan und können so an den exchange weitergeleitet werden. Ausgehend funktioniert es nicht, sobald ich als Hauptadresse im Exchange usera@intern.lan vergebe, da der Absender beim Empfänger nicht als usera@web.de erscheint sondern als usera@intern.lan . Und da ist der Knackepunkt....

Wenn ich jetzt mit genereic arbeite, klappt es, dass ausgehende Mails komplett richtig umgeschrieben werden, d.h. userb@intern.lan taucht beim Empfänger als userb@gmx.de auf.
Allerdings funktioniert jetzt der eingehende Mailverkehr nicht mehr, da die Mails vom Postfix anscheinend nicht oder nicht richtig umgeschrieben werden, jedenfalls werden sie zum exchange mit der gmx.de-Domain weitergeleitet und dort gebounced...

????????????????

Ratlosigkeit macht sich breit face-sad
docsam
docsam 09.03.2006 um 10:42:00 Uhr
Goto Top
ahso Du holst mit fetchmail ab? ich dachte Du hast ne feste IP und bekommst die Mails per SMTP zugestellt.

Asfair kannst Du das Umschreiben sogar mit fetchmail machen (hatte ich früher irgendwann mal gemacht), aber das ist schon ewig her.

Hast Du viele verschiedene Endungen? also gmx, web, yahoo ?
domi65
domi65 09.03.2006 um 10:52:15 Uhr
Goto Top
Naja, 5 Stück sinds bestimmt...
docsam
docsam 09.03.2006 um 13:07:20 Uhr
Goto Top
wiegesagt, ich würd mal schauen mit fetchmail die eingehenden vorm postfix schon umzuschreiben oder natürlich eleganter - gleich mit festen IP's und eigener Domain arbeiten.