Forum: PC-Programmierung Anfänger Postfix


von Martin (Gast)


Lesenswert?

Hallo.

Ich versuche mich gerade an Postfix als eMail Server. Keine Sorge ich 
"spiele" dafür in einem internen Netzwerk.
Im Moment habe ich folgendes Problem:

server1 empfängt doamin1.tld und nutzt server2 als relay bzw dort geht 
alles ins Maildir -> funktioniert

Wenn ich jetzt aber von server2 als domain1.tld emails über server1 
versenden will, bouncen die immer, da server1 diese (ich denke mal weil 
als relay konfiguriert) an server2 zurück schickt und dieser dann sagt 
550 RCPT TO nicht bei mir. Klar weil server2 nur domain1.tld empfangen 
darf.

Kennt sich da jemand etwas besser aus und weiss wieso relayhost nicht 
nur bei relay_domains genutzt wird sondern bei allem was reinkommt?
Danke.


Martin

von Frank L. (florenzen)


Lesenswert?

Hallo Martin,
ich habe nicht wirklich vollständig verstanden was du eigentlich 
erreichen willst.

relay_domains wird angewendet, wenn der Server für den Empfang dieser 
Domain zuständig ist, die Mails aber nicht auf diesem Server 
verbleiben sollen sondern an einen anderen, ebenfalls für diese Domain 
zuständigen Mail-Server(nicht notwendigerweise mit MX-Record für die 
Domain) weitergeleitet werden sollen.

relay_host kommt zur Anwendung wenn der Server für den Empfang dieser 
Domain nicht zuständig ist und setzt vorraus, daß der Server über den 
dort eingetragenen Relay-Server auch weiterleiten darf.

Den relay_host verwendet man dann, wenn der eigene Mailserver das 
Zustellen der nicht für ihn bestimmten Mails nicht via MX-Record an die 
jew. zuständigen Mail-Server ausführen soll, sondern z.B. der Mailserver 
des Internet-Providers genutzt werden soll.

Ich hoffe mit meinem reichlich eingerosteten Postfix-Wissen ein wenig 
weitergeholfen zu haben.

Gruß,
f

von Martin (Gast)


Lesenswert?

Hallo.

Server1 soll in einer DMS stehen und die eMail annehmen. Via relay geht 
es an Server2 der ordentlich Speicher für die Postfächer hat und im LAN 
steht. Jetzt soll Server2 ausgehende eMails nicht direkt sondern über 
Server1 schicken. Aber der sieht in der Config wohl nur relay und 
schickt sie an Server2 zurück. Der sagt natürlich zB @gmx kenne ich 
nicht, bin ich nicht für zuständig und bounced.
Was muss ich an Server1 ändern?
Danke.


Martin

von Frank L. (florenzen)


Lesenswert?

Aha.

Ist auf Server1 "relay_host" definiert und wenn ja auf was?
Ist auf Server1 die IP von Server2 in der main.cf in "mynetworks" 
eingetragen?

Gruß,
f

von Martin (Gast)


Lesenswert?

Hallo Frank.

Danke für deine Bemühungen. Auf Server1 ist als relayhost=[server2] 
eingetragen. Dazu relay_domains=domain1.tld. mynetworks habe ich um die 
IP von Server2 erweitert. Mind das versteht server1 auch da er erst 
danach auch eMails an zB @gmx.de annimmt. Vorher nur relay_domains. Nur 
schickt er immer alles an relayhost. Ich hätte das nur für relay_domains 
erwartet.
Ich habe Beispiele im Netz gefunden für relayhost je nach relay_domain. 
Aber nirgends einen Hinweis war man einstellen muss, damit er 
relay_domains über relayhost sendet und bei dem Rest ganz normal MX 
lookup und eMail dann an MX senden.
Oder ist dafür smtpd_relay_restrictions oder eine der Anderen zuständig?
Danke.


Martin

von Frank L. (florenzen)


Lesenswert?

Hallo Martin,
lass den relay_host in der Konfiguration von Server1 komplett weg. Dann 
sollte er via MX alle Mails wegschicken die in die Weiten des Internet 
sollen.

Gruß,
f

von Frank L. (florenzen)


Lesenswert?

Noch zwei Anmerkungen zu deinem Vorhaben:

Je nachdem in welcher IP-Landschaft du diese Konfiguration später 
einsetzen willst kann es sinnvoll sein, den Server1 nicht direkt via 
MX-Lookup zustellen zu lassen sondern über den Mailserver des Providers 
- sofern dieser das anbietet. Das hat folgenden Hintergrund: Es gibt 
(Genauer: Es gab und gibt evtl. immer noch *1) Mailsserver mit 
Spam-Erkennungs-Konfigurationen, die es Grunsätzlich negativ bewerten 
wenn Mails direkt von Servern aus einem ADSL-Range, einem 
Root-Server-Range, oder ähnlichen IP-Ranges eingeliefert werden. Das 
heißt nicht daß solche Server die Mails von dir nicht annehmen, sie 
geben aber alleine aus diesem Grund schon mal "negative Karma-Punkte", 
was zusammen mit anderen erkannten "Anstößigkeiten" der Mail dazu führt 
daß die Spam-Erkennungs-Schwelle früher erreicht wird.
Du kannst also durch das Nutzen des Provider-Mailservers der 
Falscherkenung von Spam entgegenwirken.
Wenn du das Umsetzen willst, mußt du dich damit befassen, dem smtp 
(nicht smtpd) deines Server1 SMTP-AUTH beizubringen - Stichwort 
sasl-authentication. Im Zuge dessen kann man natürlich auch mal über SSL 
nachdenken....



Dein Server1 erlaubt derzeit das Relayen aufgrund der IP-Adresse des 
Einliefernden. Je nach Sicherheitsbedürfnis und dem Wissen wieviele und 
welche Server sich sonst noch in deiner DMZ tummeln könnte es auch 
erwünscht sein stattdessen zwischen Server2 und Server1 eine 
SSL-gesicherte Sasl-Auth Verbindung einzurichten.
Ob das tatsächlich notwendig ist kann ich dir aber nicht sagen ;-)


*1)  Ich bin schon einige Jahre aus dem Thema raus. So zwischen 5 und 10 
Jahre um genau zu sein. Das ist in der IT-Welt bekanntlich eine 
Ewigkeit. Was die aktuelle Praxisrelevanz des von mir gesagten angeht 
musst du dich also selbst informieren.


Gruß,
f

von Frank L. (florenzen)


Lesenswert?

Martin schrieb:
> Hallo Frank.
>
> Danke für deine Bemühungen. Auf Server1 ist als relayhost=[server2]
> eingetragen. Dazu relay_domains=domain1.tld. mynetworks habe ich um die
> IP von Server2 erweitert. Mind das versteht server1 auch da er erst
> danach auch eMails an zB @gmx.de annimmt. Vorher nur relay_domains. Nur
> schickt er immer alles an relayhost. Ich hätte das nur für relay_domains
> erwartet.
> Ich habe Beispiele im Netz gefunden für relayhost je nach relay_domain.
> Aber nirgends einen Hinweis war man einstellen muss, damit er
> relay_domains über relayhost sendet und bei dem Rest ganz normal MX
> lookup und eMail dann an MX senden.
[...]

Ich habe nochmal drüber nachgedacht und denke ich habe den Fallstrick 
gefunden in den du reingetreten bist.
Du hast auf Server1 mit relay_domains=domain1.tld dafür gesorgt dass er 
die Mails nimmt und mit relayhost=Server2 dass sie an Server2 gehen.
Das macht man in dem Falle nicht so, sondern setzt dafür einen Transport 
auf:
In /etc/postfix/transport:
domain.tld    smtp:server2:25

postmap nicht vergessen.

Dann gehen die Mails für domain.tld an Server2 und was mit allen anderen 
passiert wird mit relayhost festgelegt. relayhost=(leer) stellt via MX 
zu.

Ich war die ganze Zeit der Meinung du hättest einen eigenen Transport zu 
Server2 eingerichtet.

Gruß,
f

: Bearbeitet durch User
von Martin (Gast)


Lesenswert?

Hallo Frank.

Ah so funktioniert es. Jetzt muss ich nur noch DKIM signing von Server2 
auf Server1 verlegen - sonst geht das schief. Auch tls_policy_map 
funktioniert gut.
Danke.


Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.