Postfix installieren und konfigurieren

Klassischerweise würde man auf einem Ubuntu-Server sendmail installieren und einrichten. Jedoch ist dieses Paket dermassen komplex geworden, dass es mein Verständnis und mein Wille, mich da einarbeiten zu wollen, übersteigt. Schliesslich möchte ich bloss ein paar Mails versenden können, das ist alles. Deswegen habe ich mich für Postfix entschieden. Dieses Paket ist deutlich einfacher einzurichten und bietet in vielen Fällen ausreichend Optionen, um (fast) alle Bedürfnisse zu befriedigen.

Nachrichten-Transport

Postfix ist ein MTA, ein Mail Transfer Agent, der Nachrichten von einem System zu andern transportiert. Damit lassen sich keine Mails abholen oder gar lesen, lediglich der Versand wird damit realisiert. Das ist denn auch mein Anliegen, das ich nachfolgend in der Umsetzung beschreibe.

Smarthosts einsetzen

Das grosse Spamaufkommen der letzten Jahre hat die Hoster und Provider dazu veranlasst, etwas vorsichtiger beim Annehmen von fremden Mails zu sein. Deswegen kann man heute mit einer dynamischen IP kaum mehr Nachrichten in das Internet verschicken. Die meisten MTA nehmen Nachrichten von solchen Mailservern nicht mehr an. Stattdessen sollte man – will man denn Nachrichten nach draussen verschicken und nicht bloss intern – einen so genannten Smarthost nutzen. Das ist ein MTA, zu dem infolge eines Vertrages (Hosting oder Providing) Zugang besteht. Zum Beispiel könnte ich den SMTP-Server von hispeed.ch nutzen, um meine Nachrichten zu versenden. Denn ich kann mich an jenem Rechner authentifizieren. Oder auch derjenige von meinem Hoster würde funktionieren.

Postfix Installieren

Zunächst braucht es mindestens ein Paket, welches installiert werden muss, nämlich postfix:

sudo apt-get install postfix

Bei der Installation tauchen einige Fragen auf, welche man grundsätzlich mit ENTER übernehmen kann. Lediglich bei der Frage nach der Sendeart habe ich Internet mit Smarthost gewählt.

oha.jpg

Falls man Mails über die Konsole versenden will – das ist beim Einrichten und Testen von Postfix sehr sinnreich – dann braucht es noch das Päckli namens mailx. Und schliesslich möchte man vielleicht einen SmartHost einsetzen, bei dem man sich authentifizieren muss, dann sollte man das Paket libsasl2-modules noch nutzen. Damit ist die Installation bereits abgeschlossen. Nun braucht es noch ein paar wenige Eingriffe in die Eingeweide des MTA und dann kann es losgehen.

Postfix konfigurieren

Die Grundkonfiguration wird in der Datei/etc/postfix/main.cf festgehalten. Wird ein Smarthost eingesetzt, müssen dort noch einige Zeilen ergänzt werden:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noplaintext noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password

Falls das Versenden nur per Klartext-Übermittlung des Kennworts funktioniert, muss das Wort noplaintext aus der zweiten Zeile entfernt werden.

Die Datei sasl_password exisitiert noch nicht, sie muss angelegt werden. Man kann sie in einem normalen Editor erstellen und dann nach /etc/postfix/ hochladen. In ihr müssen folgende Werte für das Authentifizieren am Smarthost vorkommen:

Name des SMTP-Servers, der Benutzername, normalerweise die E-Mail-Adresse, das Kennwort. Das sieht dann etwa so aus und muss mit diesem Syntax hinterlegt sein:

mail.server.ch sepp@fritz.ch:Kennwort

Anschliessend muss die Datenbank erzeugt oder erneuert werden. Sie nennt sich sasl_password.db und wird mit folgendem Befehl erzeugt:

sudo postmap /etc/postfix/sasl_password

Achtung: Oft passiert es, dass der Dienst die Datenbank sasl_password.db nicht oder fehlerhaft erstellt. Deswegen rate ich dazu, zunächst den Postfix-Dienst neu zu starten und erst dann die Datenbank zu erstellen.

sudo /etc/init.d/postfix restart
sudo postmap /etc/postfix/sasl_password

Mittlerweile verlangen Teile der Hoster und Provider nicht nur, dass sich ein “mailsendewilliger Agent” per Benutzername und Kennwort authentifiziert, viele Anbieter verlangen ausserdem, dass die Absender-Adesse korrekt angegeben wird. GMX ist beispielsweise ein solcher Dienst, es gibt noch weitere. Das erreicht man, in dem man Postfix mitteilt, welcher lokale Benutzer über welche E-Mail-Adresse verfügt. Die teilt man ihm mit der Datenbank sender_canonical.db mit, welche im Verzeichnis /etc/postfix/ liegt. Jene Datenbank wird mit der Datei sender_canonical erstellt, hochgeladen und dann per Befehl generiert.

In der Datei stehen lediglich pro Zeile jeweils zwei Werte: Benutzer und die E-Mail-Adresse. Die Datei darf natürlich mehrere solche Paare aufweisen. Sie muss daher etwa so aussehen:

roman yoda@yoda.ch
elife elife@yoda.ch
ruben ruben@schwammkopf.de

Danach lädt man die Datei nach /etc/postfix/ hoch und erstellt daraus mit folgendem Befehl eine Datenbank:

sudo postmap /etc/postfix/sender_canonical

Nun braucht es noch eine Zeile in der main.cf unter /etc/postfix/:

sender_canonical_maps = hash:/etc/postfix/sender_canonical

Danach nicht vergessen, Postfix neu zu starten und das war es dann eigentlich schon.

Postfix testen

Schlussendlich sollte man noch testen, ob man tatsächlich Mails versenden kann. Ist das Paket mailx installliert, geht das ganz einfach. Per Terminal ein Mail versenden:

mail -s "Betreff: Testmail, bitte ankommen!" fritzli@seppli.ch

Nach der Eingabe dieser Zeile bleibt der Prompt stehen, da der Text (Body) für das Mail erwartet wird. Den schreibt man ganz einfach in das Terminal. Ist der Text fertig, braucht es eine eigenen Zeile, in der bloss ein Punkt steht. Damit weiss Postfix, dass der Text nun fertig ist und fragt nun noch nach einem BBC-Empfänger. Falls es keinen braucht, einfach ENTER drücken. Damit geht die Nachricht weg.

Jetzt sollte man das Log prüfen und sehen, ob die Nachricht wirklich verschickt worden ist. Das Logfile befindet sich hier:

/var/log/mail.log

Ähnliche Artikel

Schlagwörter:, , , , ,

5 Kommentare to “Postfix installieren und konfigurieren”

  1. tatooshNo Gravatar schrieb:

    Danke, mit deiner Anleitung habe ich unter Centos den postfix zum Leben erweckt ;)

    Ein Schönheitsfehler habe ich noch.
    Der Empfänger sieht als Absender immer meinen Linux Usernamen -> root.

    Kann ich das irgendwo noch editieren?

  2. Dirk DeimekeNo Gravatar schrieb:

    Wertvolle Tipps können auch in diesen Tutorials – http://workaround.org/ispmail – gefunden werden, danach habe ich meinen root-Server eingerichtet. Für das reine versenden von einer Workstation ist nullmailer sehr gut geeignet.

  3. Roman HanhartNo Gravatar schrieb:

    @tatoosh: Womit versendest Du die Mails?

    @Dirk: Danke für den Link!

  4. Matthias Bauer-PfundsteinNo Gravatar schrieb:

    Danke! Einfache und nützliche Anleitung.
    Nach zahlreichen Fehlversuchen ging nichts mehr. Hatte schon angst meine IP ist durch die Fehlversuchen in einer Blacklist gelandet. Heute, mit dieser Anleitung lief alles wie geschmiert.

  5. DanielNo Gravatar schrieb:

    Sehr schöne, klare Anleitung ! Vielen Dank. Installiere es gerade auf meinem Notebook. Gruß Daniel

Hinterlasse einen Kommentar

blogoscoop Blogverzeichnis - Blog Verzeichnis bloggerei.de