117471
06.01.2016
2960
2
0
CentOS 7 und postfix: War das klug?
Ich habe da gerade etwas gebastelt von dem ich mir im nachhinein die Frage stelle, ob das schlau war oder ob ich damit evtl. perspektivisch ein Eigentor schieße. Mir ist es wichtig, möglichst die distributionsabhängige "best practice" einzuhalten, damit meine Kollegen nachvollziehen können, was ich gebastelt habe und damit zukünftige Updates / Upgrades sauber durchlaufen.
Ich habe heute erstmalig seit langem ein CentOS aufgesetzt und beschäftige mich erstmalig mit Postfix; das sieht alles etwas anders aus als Debian mit exim4.
Darüber, dass Hostname, Domainname usw. grundsätzlich stimmen müssen, brauchen wir nicht zu diskutieren. "Irgendwie" habe ich weiterhin gelernt, dass es unklug ist, den Hostnamen an die 127.0.0.1 zu binden. Auch haben hostname und hostname -f beide den FQHN ausgegeben und domainname lediglich ein beherztes (none) zurückgeworfen.
Also habe ich:
Zwischenergebnis: hostname, hostname -f und domainname liefern stimmige Ergebnisse. Ich bin glücklich
Als nächstes viel mir auf, dass sich der Postfix im HELO mit meinserver.localdomain gemeldet hat. Das ist ein knapp 10 Jahre alter Bug, wegen dem sich postfix bei der Interpretation des Hostnames vertut.
Im offiziellen Repository ist Postfix 2.10.1 enthalten, der Bug ist erst in der 2.11 gefixt. Ich möchte auf der Kiste nichts selbstgebautes und schon gar keine inoffiziellen Repositories haben, und habe den Hostnamen in der /etc/postfix/main.cf forciert:
In dem Zusammenhang bzw. beim anschließenden Neustart vom postfix ist mir derselbige um die Ohren geflogen. Der fühlte sich augenscheinlich dadurch gestört, dass er seinen eigenen Hostnamen in der /etc/hosts auf einer IP-Adresse gefunden hat (...auf der 127.0.1.1...), zu der er jedoch kein Interface hat. Diverse Google-Ergebnisse raten, in dem Fall in der master.cf den Eintrag
zu setzen. Das gefällt mir irgendwie auch nicht so richtig, ich wollte da lieber
stehen haben Aus diesem Grund habe daraufhin auf dem Loopback-Device lo einen Alias (lo:0) erstellt, der die IP-Adresse 127.0.1.1 hat.
Ergebnis: Posfix startet und meldet sich im HELO brav mit dem richtigen Hostnamen. Ich bin immer noch glücklich
Den Relay-Host für externe Adressen zu konfigurieren war kein Hexenwerk.
Jetzt nehmen wir uns noch einmal die E-Mail-Adressen vor. Zum testen hat sich bei mir folger Befehl etabliert:
Die interne Zustellung an root@meinserver.unsereoffizielledomain.de funktioniert perfekt.
Ich habe es zwar nicht ausprobiert, aber ich behaupte mal, dass ich das mit einem "Sender domain must exist" quittiert bekomme wenn ich so einen Krempel auf den SmartHost schiebe...
Ergo habe ich kurzerhand eine /etc/postfix/generics etabliert und dort eine Ersetzung konfiguriert:
Die Adresse meinserver@unsereoffizielledomain.de existiert natürlich und wird auch regelmäßig abgerufen - ich schwör 's!
Die externe Zustellung funktioniert somit auch perfekt. Alle Headerdaten sehen "hübsch" aus.
Wie findet Ihr die Lösung? Zuviel Frickelei? Habe ich da total ins Klo gegriffen und übersehe das in meiner Euphorie?
Letztendlich soll das "nur" ein LAMP-Server werden, der ab und zu mal eine E-Mail aus einem bash-Script verschickt (Backupmeldungen usw.). Aber da ich seit Version 4.5 kaum was mit CentOS gemacht habe, bin ich mir irgendwie unsicher, ob das alles wirklich so klug war oder ob ich nicht "zuviel umgebaut" habe.
Ich habe heute erstmalig seit langem ein CentOS aufgesetzt und beschäftige mich erstmalig mit Postfix; das sieht alles etwas anders aus als Debian mit exim4.
Darüber, dass Hostname, Domainname usw. grundsätzlich stimmen müssen, brauchen wir nicht zu diskutieren. "Irgendwie" habe ich weiterhin gelernt, dass es unklug ist, den Hostnamen an die 127.0.0.1 zu binden. Auch haben hostname und hostname -f beide den FQHN ausgegeben und domainname lediglich ein beherztes (none) zurückgeworfen.
Also habe ich:
- Den Hostnamen in /etc/hostname eingetragen
- Den Domainnamen in /etc/domainname eingetragen
- Die /etc/rc.d/rc.local um ein beherztes "domainname -F /etc/domainname" ergänzt
- In der /etc/hosts den Hostnamen und den FQHN für die IP-Adresse 127.0.1.1(!) gesetzt
Zwischenergebnis: hostname, hostname -f und domainname liefern stimmige Ergebnisse. Ich bin glücklich
Als nächstes viel mir auf, dass sich der Postfix im HELO mit meinserver.localdomain gemeldet hat. Das ist ein knapp 10 Jahre alter Bug, wegen dem sich postfix bei der Interpretation des Hostnames vertut.
Im offiziellen Repository ist Postfix 2.10.1 enthalten, der Bug ist erst in der 2.11 gefixt. Ich möchte auf der Kiste nichts selbstgebautes und schon gar keine inoffiziellen Repositories haben, und habe den Hostnamen in der /etc/postfix/main.cf forciert:
myhostname = meinserver.unsereoffizielledomain.de
mydomain = meinserver.unsereoffizielledomain.de
In dem Zusammenhang bzw. beim anschließenden Neustart vom postfix ist mir derselbige um die Ohren geflogen. Der fühlte sich augenscheinlich dadurch gestört, dass er seinen eigenen Hostnamen in der /etc/hosts auf einer IP-Adresse gefunden hat (...auf der 127.0.1.1...), zu der er jedoch kein Interface hat. Diverse Google-Ergebnisse raten, in dem Fall in der master.cf den Eintrag
inet_interfaces = any
inet_interfaces = 127.0.0.1, 127.0.1.1
Ergebnis: Posfix startet und meldet sich im HELO brav mit dem richtigen Hostnamen. Ich bin immer noch glücklich
Den Relay-Host für externe Adressen zu konfigurieren war kein Hexenwerk.
Jetzt nehmen wir uns noch einmal die E-Mail-Adressen vor. Zum testen hat sich bei mir folger Befehl etabliert:
cat /etc/hosts | mail -S "Alle Enten fliegen hoch" testadresse@halt.irgendwo
Die interne Zustellung an root@meinserver.unsereoffizielledomain.de funktioniert perfekt.
Ich habe es zwar nicht ausprobiert, aber ich behaupte mal, dass ich das mit einem "Sender domain must exist" quittiert bekomme wenn ich so einen Krempel auf den SmartHost schiebe...
Ergo habe ich kurzerhand eine /etc/postfix/generics etabliert und dort eine Ersetzung konfiguriert:
root@meinserver.unsereoffizielledomain.de meinserver@unsereoffizielledomain.de
Die Adresse meinserver@unsereoffizielledomain.de existiert natürlich und wird auch regelmäßig abgerufen - ich schwör 's!
Die externe Zustellung funktioniert somit auch perfekt. Alle Headerdaten sehen "hübsch" aus.
Wie findet Ihr die Lösung? Zuviel Frickelei? Habe ich da total ins Klo gegriffen und übersehe das in meiner Euphorie?
Letztendlich soll das "nur" ein LAMP-Server werden, der ab und zu mal eine E-Mail aus einem bash-Script verschickt (Backupmeldungen usw.). Aber da ich seit Version 4.5 kaum was mit CentOS gemacht habe, bin ich mir irgendwie unsicher, ob das alles wirklich so klug war oder ob ich nicht "zuviel umgebaut" habe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 292358
Url: https://administrator.de/forum/centos-7-und-postfix-war-das-klug-292358.html
Ausgedruckt am: 22.12.2024 um 06:12 Uhr
2 Kommentare
Neuester Kommentar
Hallo,
IMHO solltest du sehr gute Gründe haben bevor du irgend etwas an der /etc/hosts änderst, bei meinen > 10 Postfix Installationen war das noch nie notwending. Die /etc/domainname kenn ich gar und die die /etc/hostname sollte von deiner CentOS Installation schon richtig befüllt sein?
Eleganter wäre sicher inet_interfaces = loopback-only und das mapping wird meist über die /etc/aliases erledigt was allerdings historisch bedingt ist. Das setzen von mydomain kannst du dir auch sparen wenn sowieso keine lokale Zustellung erfolgen soll.
Generell solltest du versuchen die Anpassungen auf möglichst wenige Dateien zu beschränken und dies auch dokumentieren.
Gruß
Andi
IMHO solltest du sehr gute Gründe haben bevor du irgend etwas an der /etc/hosts änderst, bei meinen > 10 Postfix Installationen war das noch nie notwending. Die /etc/domainname kenn ich gar und die die /etc/hostname sollte von deiner CentOS Installation schon richtig befüllt sein?
Eleganter wäre sicher inet_interfaces = loopback-only und das mapping wird meist über die /etc/aliases erledigt was allerdings historisch bedingt ist. Das setzen von mydomain kannst du dir auch sparen wenn sowieso keine lokale Zustellung erfolgen soll.
Generell solltest du versuchen die Anpassungen auf möglichst wenige Dateien zu beschränken und dies auch dokumentieren.
Gruß
Andi