Am Rande der Legalität?

Schön wär's, wenn das alles wäre. Denn ginge es darum, unsere Testmail zu beantworten, so ist deren Absenderadresse (im Beispiel trish@regtest.enitel.net) alles andere als brauchbar; wäre sie so auf einem anderen Rechner angekommen, sogar illegal, denn sie existiert schlichtweg nicht wirklich. Damit fangen unsere Konfigurationsprobleme erst an…

Gerade Privatpersonen haben ihren Rechner selten im DNS eingetragen. So kann sich Postfix bei der Installation keineswegs guten Gewissens den für die Maschine vorkonfigurierten Fully Qualified Domain Name (FQDN) schnappen, um ihn für die Antwortadresse zu verwenden. Jede Mail sollte schließlich so ausgezeichnet werden, dass eine Antwort darauf auch ankommt. Und hier sieht es für nicht im DNS stehende Rechner düster aus.

Zwar lässt sich in guten Mailprogrammen ein Reply-To:-Header festlegen, mit dem man dem Empfänger-Mail-User-Agent erklärt, an welche Adresse er antworten soll. Schlechte Mailprogramme beachten diesen jedoch nicht. Außerdem haben wir damit immer noch keine gültige Absenderadresse und verstoßen so gegen Internetnormen. Vernünftige und nicht zu alte Mailprogramme erlauben es daher, den From:-Absenderheader auf eine gültige Mailadresse zu setzen.

Das würde reichen, wenn wir unsere Mail einfach nur beim Smarthost-SMTP-Server unseres Providers ablieferten. Doch von dem wollen wir ja gerade nicht abhängen, und da stoßen wir auf ein weiteres Problem: Während wir auf den Reply-To:- und den From:-Header ggf. noch mit unserem MUA Einfluss haben, generiert der entgegen nehmende Mailserver, wie wir an der Testmail gesehen haben, eine sogenannte Envelope- ("Briefumschlag")-Adresse. Der Inhalt dieser From-Zeile (ohne Doppelpunkt) wird von einigen Mailservern auf seine Existenz geprüft, da Spam an dieser Stelle oft eine nicht im DNS nachschlagbare Adresse enthält.

Mit einer solchen, nicht auflösbaren Adresse bringen wir uns in arge Schwierigkeiten: Nicht nur, dass wir bei vielen Mailservern gar keine Mail los werden; einige schicken die darüber informierende Fehlermeldung eben an jene nicht wirklich existierende Adresse, sodass wir die Absage nie erhalten. Wenn Mailpartner wiederholt steif und fest behaupten, Mails nie bekommen zu haben, der Absender sich seinerseits nie an abweisende Post vom gegnerischen Mailerdämon erinnern kann, handelt es sich oft um dieses Szenario.

Adressmanipulation

Also nehmen wir uns schweren Herzens die Postfix-Dokumentation zur Hand. Das Herzstück der Konfiguration ist die Datei main.cf, üblicherweise in /etc/postfix zu finden. Auskunft gibt aber auch der Paketmanager mit rpm -ql postfix | main.cf oder dpkg -S main.cf. (Die rpm-Optionen lassen sich mit -q für "query" – nachfragen und -l für "list(e aller im Paket enthaltenen Dateien)" merken, das -S beim Debian-Paketmanager steht – noch einfacher – für "Suche" oder "Search".)

Auch wenn es sich lohnt, die zum Beispiel in http://totem.fix.no/postfix/basic.html beschriebene Grundkonfiguration genauer in Augenschein zu nehmen (besonders dann, wenn das Senden der Testmail nicht gelang – siehe auch den Kasten "Nur noch konfigurieren – die wichtigsten Parameter aus main.cf"), interessiert uns vor Allem der Punkt Adress Manipulation (http://totem.fix.no/postfix/rewrite.html) in der Dokumentation.

Was für ein halbkriminelles Wort – und doch die einzige Möglichkeit, als "Internetkrüppel" ohne feste IP-Adresse und DNS-Eintrag einen unbescholtenen Mailserver zu betreiben.

Nur noch konfigurieren – die wichtigsten Parameter aus

main.cf

Zum Glück stehen fast alle Parameter in Postfixens Hauptkonfigurationsdatei auf sinnvollen Defaultwerten. Zudem sind sie – wenngleich auf Englisch – meist recht aussagekräftig dokumentiert. Dennoch sollte man die Konfiguration durchgehen, halbwegs verstehen und ggf. anpassen, bevor man den Server startet.

Wie so oft dient auch in dieser Datei ein # als Kommentarzeichen, das verhindert, dass Postfix den Rest der Zeile ernst nimmt. Ein $ mit einem Variablennamen dahinter bedeutet, dass Postfix statt dieser Kombination den Wert der Variablen "sieht".

  • Wenn Sie ein für Ihre Distribution gefertigtes rpm- oder deb-Paket einsetzen, werden die verschiedenen Verzeichnisse (queue_directory für die Mailwarteschlange sowie command_directory für die Postfix-Hilfs- bzw. daemon_directory für die nötigen Dienstleistungsprogramme) auf die richtigen Werte gesetzt sein. Im Fehlerfall prüfen Sie, ob diese Verzeichnisse vorhanden und die beiden letzten mit den passenden Programmen gefüllt sind. Wenn Sie jedoch schon an dieser Stelle deutliche Fehlstellen bemerken, die nicht auf bewusste Manipulationen Ihrerseits zurück gehen, sparen Sie sich ggf. eine Menge Ärger, indem Sie mit einem neuen Paket einen neuen Anlauf wagen.
  • mail_owner, die Besitzerin der Mailwarteschlange und der meisten Postfix-Prozesse, sollte keinesfalls auf root, sondern auf einen speziellen User (beispielsweise ganz langweilig postfix) gesetzt werden. Sehen Sie in der /etc/passwd nach, dass es diesen auch gibt. Wenn nein, müssen Sie ihn anlegen und ihm ggf. die Rechte am Mailspool und den diversen Postfixprogrammen übertragen.
  • Bei Abläufen, bei denen Postfix keine speziellen Sonderrechte braucht (wie sie der mail_owner oder in noch stärkerem Maße root besitzen), sollte er diese auch nicht haben. Daher setzt man default_privs auf einen möglichst rechtelosen Benutzer wie den meistens vorkonfigurierten User nobody.
  • Wenn myhostname den FQDN des Rechners enthält, brauchen Sie sich um mydomain (das standardmäßig nur den Domänenbestandteil von myhostname enthält) und myorigin (normalerweise dasselbe wie myhostname) nicht weiter kümmern. Den Standardwert erfahren Sie zum Beispiel mit dem Kommando hostname --fqdn. Entspricht dieser Wert nicht Ihren Vorstellungen, ändern Sie den Wert Variablen. Vergessen Sie dabei nicht, das Kommentarzeichen zu entfernen.
  • Vielleicht ist Ihnen aufgefallen, dass jede Mail einen Header namens Message-ID: enthält. Diese Kennung besteht aus einer von Ihrem Mailserver generierten eindeutigen Zeichenfolge, einem @ und dem Wert von myorigin. Da die verschiedenen Mailserver jedoch nichts über die jeweils von anderen generierten Strings wissen, sollte auch myorigin eindeutig für Ihren Rechner stehen, damit keine Dubletten auftreten. Auf den Domainnamen Ihres Providers oder auf localhost setzen Sie myorigin daher bitte nicht.
  • Wenn Sie Ihren Mailserver lediglich zum Versenden von Mail nach außen und für lokale Mail benutzen, nicht aber zum Empfangen von Mail aus dem Netz, beschränken Sie inet_interfaces auf $myhostname, localhost.
  • Endstation (mydestination) für ankommende Mail ist Ihr Mailserver für Mails, die wahlweise an localhost, $myhostname adressiert sind.
  • In der Datei aliases bestimmen Sie, wer die Post bekommt, die an bestimmte lokale Benutzer geht. Wichtig ist zum Beispiel, dass Sie an root gerichtete Mail einem tatsächlich maillesenden und verantwortlichen Benutzer (zum Beispiel sich selbst) unterschieben. Sinnvoller Standardwert ist
alias_maps = hash:/etc/postfix/aliases

wobei Sie /etc/postfix/aliases zumindest dahin gehend ändern sollten, dass die Zeile mit root: auf der linken Seite rechts daneben entweder Ihren lokalen Benutzernamen oder eine Ihrer gültigen Mailadressen enthält. Beispiel (zum Anpassen, nicht zum unreflektierten Abschreiben!):

root:           pjung@linux-user.de

Sollten Sie sich mit Ihrer alten, aus Sendmail-Zeiten stammenden /etc/aliases unendlich viel Mühe gegeben haben, können Sie diese natürlich in alias_maps recyceln. Vergessen Sie jedoch nicht, die Datei mit dem postalias-Kommando ins angegebene hash-Format umzuwandeln.

  • Klassischerweise ist /var/spool/mail das mail_spool_directory unter Linux. Mit home_mailbox können Sie lokale Mail aber auch in einer Datei im Homeverzeichnis der Benutzer/innen unterbringen. Das ist zum Beispiel sinnvoll, wenn diese Netscape oder Kmail benutzen. Zeitgenossen, die statt einer Folder-Datei gern jede Mail einzeln als Datei abspeichern, ist mit home_mailbox beizukommen. Experimentieren Sie hier gern ein wenig, indem Sie Mails an einen lokalen Testbenutzer verschicken (und achten Sie darauf, dass Postfix nach jeder Änderung seine Konfiguration neu einlesen muss). Allen Ihren Nutzer(inne)n Recht tun können Sie es allerdings nicht: Für ein System für alle müssen Sie sich schon entscheiden…

Der Punkt ADDRESS REWRITING in der main.cf hört sich ganz nach dem an, was wir wollen: Absenderadressen umschreiben bzw. maskieren. Ein Blick in die mitgelieferte Beispiel-Konfigurationsdatei sample-canonical.cf (im Postfix-Dokumentationsverzeichnis /usr/doc/postfix-19991216 o.ä.) bestätigt, das wir den richtigen Hebel gefunden haben:

# Der Parameter sender_canonical_maps spezifiziert optionale Tabellen,
# in denen nachgeschlagen werden kann, welche Envelope- und Header-Adresse
# ein bestimmter Absender bekommen soll.
#
# Sie benötigen diese zum Beispiel, wenn Sie die Absenderadresse user@ugly.domain
# zu user@pretty.domain umschreiben wollen, wobei es weiterhin möglich
# sein soll, Mail an die Empfängeradresse user@ugly.domain zu schicken.

Unser Stichwort hier ist Envelope- und Header-Adresse: Mit der "Umschlagsadresse" ist jene doppelpunktlose, oberste From-Zeile im Header einer Mail gemeint, mit "Header-Adresse" die From:-Zeile. Also schreiben wir dem Beispiel in der Dokumentation folgend eine Textdatei namens /etc/postfix/sender_canonical. Darin steht links die Mailadresse, wie sie im aktuellen Zustand automatisch erzeugt wird, wenn eine Benutzerin eine Mail abschickt, rechts, wie die passende gültige Adresse lautet. Die linke Seite können Sie Ihrer Testmail entnehmen. Sie besteht aus dem Benutzernamen auf dem System (also dem Namen, mit dem sich die betreffende Nutzerin einloggt), dem @-Zeichen und dem Inhalt der Konfigurationsvariablen myorigin aus main.cf (siehe Kasten). Ein Beispiel:

trish@regtest.enitel.net pjung@linux-user.de

Damit wird aus der lokalen Benutzerin trish die Absenderin pjung@linux-user.de mit einer gültigen Mailadresse.

Jetzt müssen wir in der main.cf lediglich noch die Variable sender_canonical_maps mit dem Namen unserer Tabellendatei füttern:

sender_canonical_maps = hash:/etc/postfix/sender_canonical

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Sendmail Analyzer 7.0

    Der Berichtsgenerator Sendmail Analyzer ist in Version 7.0 erhältlich.
  • Neues Apache-Modul Mod-Sendmail

    Ein neues Apache-Modul namens Mod_sendmail erlaubt den Mailversand per REST-Schnittstelle.
  • Postfix 2.6.0
    Der Mail Transfer Agent (MTA) Postfix ist in Version 2.6.0 verfügbar. Erstmals ist es möglich, mehrere Instanzen des Open-Source-Mailservers auf dem selben Host zu betreiben.
  • The Answer Girl
    Dass der Computeralltag auch unter Linux des Öfteren für Überraschungen gut ist, ist eher eine Binsenweisheit: Immer wieder funktionieren Dinge nicht oder nicht so, wie eigentlich angenommen. Das Answer-Girl im LinuxUser zeigt, wie man mit solchen Problemchen elegant fertig wird.
  • Verwaltungstool für Postfix

    Ein neues Tool will beim Management virtueller Mail-User auf Postfix- und Dovecot-Servern helfen.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...