PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix als zusätzlicher Mailserver



ComSubVie
15.09.02, 19:16
Hi Leute!

Folgende Situation: Ich hab einen sendmail (uralt) - Server, der demnächst auseinanderfällt oder abgebaut wird. Nur aufgrund es Alters und mangelnder Kenntnisse greift den keiner mehr an, und die User auf einen neuen Server zu kopieren geht auch nicht ganz einfach, weil wir LDAP einführen. Wenn dieser Server die Empfangsadresse des Users nicht kennt meldet er einen "550 User unknown" zurück.

Als neuen Mailserver verwenden wir postfix, der auch brav funktioniert, jedoch nimmt der bei niedrigerem MX-record als der sendmail-server ALLE mails an die Domain an, und nicht nur die deren Aliases er kennt. Wenn wir dem postfix einen hohen MX-record verpassen, so kriegt der keine Mails, da der sendmail sagt "user unknown", aber der zustellende Server nicht beim nächsten MX probiert.

Wie kann ich postfix umkonfigurieren, das der alle Mails an die domain (also nicht nur jene an server.domain) annimmt, die er kennt, und alle anderen an den sendmail-server weiterleitet?

Harry
16.09.02, 00:04
Hallo,

Du kannst Deinem Postfix in der main.cf folgendes mitteilen:


mydestination = server.domain, domain, localhost, $myhostname
relayhost = [Adresse des sendmail-Servers]

Diese beiden Einträge sollten bereits die wesentlichen Funktionalitäten (Annahme von Mails auch für domain und Weiterleitung aller Mails an den Sendmail-Server, die nicht lokal ausgeliefert werden können) gewährleisten.
Falls Dein Postfix dabei Mails von unbekannten Absendern entgegennehmen muß, dann solltest Du auch die access-Table (Feature smtpd_sender_restrictions) anpassen.

Infos zur weiteren Konfiguration findest Du hier: http://www.postfix.org/uce.html#smtpd_sender_restrictions

Harry

ComSubVie
16.09.02, 10:09
ok, wenn ich bei mydestination die domain eintrage, und als relayhost den anderen mailserver angebe, nimmt er alle Mails an, leitet aber keine weiter
status=bounced (host public/lmtp [public/lmtp] said: 550 5.1.1 User unknown)

vielleicht muss ich die domain nicht bei mydestination eintragen sondern bei relay_domain?

Jasper
16.09.02, 13:30
Original geschrieben von ComSubVie
ok, wenn ich bei mydestination die domain eintrage, und als relayhost den anderen mailserver angebe, nimmt er alle Mails an, leitet aber keine weiter
status=bounced (host public/lmtp [public/lmtp] said: 550 5.1.1 User unknown)

vielleicht muss ich die domain nicht bei mydestination eintragen sondern bei relay_domain?

ich glaube nicht, dass du selektiv mails für nicht lokale user weiterleiten kannst. entweder die mail an die domain wird lokal zugestellt oder weitergeleitet.

du könntest alle mails an die domain als lokal annehmen (domain in $mydestination eintragen) und dann in transport eine liste mit allen nicht-lokalen usern anlegen und dort smtp:<sendmailhost> als next hop angeben. damit könntest du eine langame migrierung durchführen.

-j

ComSubVie
16.09.02, 14:11
viel besser wäre es, wenn ich transport sagen könnte, welche user er lokal zustellen kann (weil die stehen im LDAP), und alle anderen soll er per smtp weiterleiten.

ich bin eigentlich davon ausgegangen, das der alle aliases welche in alias_maps (hash:/etc/postfix, ldap:ldapaliases) annimmt und alle anderen an den relayhost weiterschickt.

kann ich dementsprechend auch die transport_maps so machen? alle die er kennt local:, den rest smtp:?

Jasper
16.09.02, 16:26
Original geschrieben von ComSubVie
viel besser wäre es, wenn ich transport sagen könnte, welche user er lokal zustellen kann (weil die stehen im LDAP), und alle anderen soll er per smtp weiterleiten.

ich bin eigentlich davon ausgegangen, das der alle aliases welche in alias_maps (hash:/etc/postfix, ldap:ldapaliases) annimmt und alle anderen an den relayhost weiterschickt.

kann ich dementsprechend auch die transport_maps so machen? alle die er kennt local:, den rest smtp:?

an relayhost werden alle mails verschickt, für die er nicht zuständig ist, bspw. outbound mails. das ganze ist aber pro domain, nicht pro user.

transport kennt auch 'local:'. siehe 'man 5 transport'.

-j

Jasper
17.09.02, 10:12
Original geschrieben von ComSubVie
ich hab da noch 2 interessante dinge entdeckt: luser_relay und fallback_transport. werd mal schauen ob man damit was machen kann. RTFM hab ich eh schon gemacht, aber die spucken irgendwie nicht sonderlich viel aus.

Wenn ich das so nicht hinkriege hätt ich noch eine andere Möglichkeit: ein smtp-relay müsste doch wenn MX1 "user unknown" oder sowas meldet automatische beim MX2 probieren, oder? (ich gebs zu, ich durchblick das ganze SMTP noch nicht ganz)

luser_relay und fallback_transport sehen erfolgverspechend aus. luser_relay = <sendmaihost> sollte alle mail, die normalerweise gebounced werden, an <sendmailhost> weiterleiten. mit fallback_transport ginge es auch: fallback_transport=smtp:<sendmailhost>.

zum zweiten: falls MX1 erreichbar ist und einen permanten fehler (5xx) zurückmeldet, wird nicht MX2 versucht. MX2 tritt nur in aktion, wenn MX1 nicht erreichbar ist. falls MX1 einen temporären fehler (4xx) meldet, wird die mail vom relay requeued und später ein neuer versuch gestartet.

-j

ComSubVie
17.09.02, 11:22
ich hab da noch 2 interessante dinge entdeckt: luser_relay und fallback_transport. werd mal schauen ob man damit was machen kann. RTFM hab ich eh schon gemacht, aber die spucken irgendwie nicht sonderlich viel aus.

Wenn ich das so nicht hinkriege hätt ich noch eine andere Möglichkeit: ein smtp-relay müsste doch wenn MX1 "user unknown" oder sowas meldet automatische beim MX2 probieren, oder? (ich gebs zu, ich durchblick das ganze SMTP noch nicht ganz)