Postfix als STMP Relay (E-Mail) via Gmail unter Ubuntu 16.04 LTS (root-Server) einrichten

Kein Kommentar Autor: Jürgen (jdo)

Ich habe mir einen VPS (Virtual Private Server) oder root-Server bei Contabo geholt und langsam mit der Konfiguration angefangen. Nach den ersten Schritten und der Absicherung des Servers sowie einigen Spielchen mit rsync ist nun SMTP dran. Dabei will ich noch keinen eigenen Mail-Server betreiben. Es soll nur die Möglichkeit geben, dass WordPress und andere Services wie Nextcloud E-Mails schreiben können. Dazu nehme ich unter dem bei mir laufendem Ubuntu 16.04 LTS den MTA (Mail Transfer Agent) Postfix und konfiguriere ihn als sogenannten Relay.

Hinweis: Ginge es nur um WordPress, könnte ich auch ein Plugin wie zum Beispiel SMTP Mailer verwenden. Habe ich ausprobiert, das funktioniert. Bei mir sollen aber auch Nextcloud und andere Services oder Scripte auf den Server, von denen ich ab und zu gerne eine E-Mail hätte.

Kurz und simpel erklärt, was damit gemeint ist. Postfix lässt sich in diesem Fall nicht von außen als SMTP-Server erreichen. Das kennst Du vielleicht von Deinem E-Mail-Client, bei dem Du Pop3 / Imap als Eingangs- und SMTP als Ausgangs-Server konfiguriert. Ich kann also über meinen Server mit einem Client von außen keine E-Mails verschicken. Stattdessen verwende ich den MTA im Moment als reine Sende-Komponente. OK, weißt Du den Hostnamen des Servers und einen entsprechenden Anwender, dann würde Postfix sogar Mails annehmen – das lässt sich aber auch deaktivieren. Damit meine Mails auch ausgeliefert werden und nicht wegen eines komischen Hostnamens in einem Spam-Filter hängen bleiben, schicke ich meine Mails vom Server durch den SMTP-Server von Gmail oder Google. Der ist ja bekanntlich mehr oder weniger vertrauenswürdig.

Die nachfolgende Anleitung gilt für eigentlich jedes Debian-System und die anderen Linux-Distributionen unterscheiden sich auch nicht stark. Soweit ich weiß differieren teilweise lediglich die Pfade und Namen der Zertifikate. Sogar einen Raspberry Pi mit Raspbian könntest Du damit das E-Mail-Schicken beibringen!

Postfix installieren

Zunächst einmal müssen wir das entsprechende Paket installieren. Das befindet sich in den Repositories von Ubuntu. Ich installiere außerdem das Paket mailutils mit. Damit kannst Du von der Kommandozeile aus Mails schreiben (und sogar lesen) und der Befehl mail ließe sich in eigene Scripte einbringen:

apt-get install postfix mailutils

Nun meldet sich Postfix und will einige Sachen von Dir wissen, beziehungsweise erklärt Dir die Optionen.

Hinweise

Hinweise

Wir brauchen der Beschreibung zufolge also Internet Site und wählen das auch aus.

Rolle von Postfix

Rolle von Postfix

Hier gibst Du den Domain-Namen ein. Für unser Szenario kannst Du den lassen, wie er eben ist. Wie gesagt verwenden wir Gmail als SMTP Relay und deswegen ist der Name egal.

Name der Domain

Name der Domain

Postfix konfigurieren

Wir editieren die Datei /etc/postfix/main.cf und fügen die nachfolgenden Zeile an oder ersetzen bestehende Parameter entsprechend (gilt bei mir nur für die erste Zeile):

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Vorbereitung bei Gmail / Google

Damit Du diese Methode über den SMTP-Server von Gmail benutzen kannst, musst Du Deinem Konto erlauben, Mails von weniger sicheren Quellen versenden zu lassen. Wie das funktioniert, steht in diesem Google-Dokument und da ist auch gleich der entsprechende Link zu Weniger sichere Apps. Das sieht so aus:

Weniger sichere Apps zulassen, damit Postfix darüber senden kann

Weniger sichere Apps zulassen, damit Postfix darüber senden kann

Schickst Du dann später ein E-Mail von Deinem Server via Google SMTP, bekommst Du die Dir vielleicht bekannte Nachricht Jemand kennt Dein Passwort …

Pass an dieser Stelle auf, dass Google pro Tag nur 500 Relay Mails zulässt. Das sollte für die fünf Nachrichten, die ich von meinem Server pro Woche erhalte, ausreichen.

Die Authentifizierung via GMail einrichten

Erstelle die Datei /etc/postfix/sasl_passwd und füge dort diese Zeile ein:

[smtp.gmail.com]:587    Anwendername@gmail.com:Passwort

Natürlich sind Anwendername und Passwort entsprechend zu ersetzen. Im Anschluss sichern wir die Datei ab, sodass nur root Zugriff darauf hat:

chmod 600 /etc/postfix/sasl_passwd

So eine Maßnahme solltest Du bei allen wichtigen Dateien vornehmen.

Postfix neu starten und Test-Mail schicken

Nach der ganzen Konfigurations-Orgie ist ein Neustart von Postfix notwendig:

service postfix restart

An dieser Stelle sollte alles schon funktionieren. Da wir auch das Paket mailutils installiert haben, können wir nun über die Kommandozeile ein Test-E-Mail schicken:

mail -s "Betreff" nutzer@example.org

Die Zeile Cc: kannst Du mit der Eingabetaste überspringen. Danach gibst Du eine Nachricht ein und quittierst sie auf jeden Fall mit der Eingabetaste. Also Du kannst mehrere Zeilen verwenden, aber das letzte Zeichen, wenn Du fertig bist, ist die Eingabetaste. Die Tastenkombination Strg+D verschickt das E-Mail dann.

Sollte irgendetwas nicht funktionieren, hilft ein Blick in die Log-Datei, die sich unter /var/log/mail.log befindet.

Postfix soll keine E-Mails annehmen

Nun haben wir die Situation, dass das System E-Mails als mein Gmail-Ego verschicken kann. WordPress, Nextcloud und so weiter können also Status-Meldungen, Update-Benachrichtigungen und so weiter schicken. Du kannst Nutzer via E-Mail benachrichtigen, wenn Du ein Konto für sie angelegt hast und so weiter.

Was mir persönlich nicht so gefällt ist, dass im jetzigen Zustand Postfix auch Nachrichten annimmt. Also ein Nutzer ist bekannt und das ist root@servername. Diese blöden Bots finden alles und ich habe keine Lust, zugespammt zu werden. Deswegen bringe ich Postfix bei, E-Mails von außen grundsätzlich abzulehnen. Das ist für meine Situation einfach am besten.

Ändere dafür die Zeile

inet_interfaces = all

in

inet_interfaces = loopback-only

und starte Postfix neu:

service postfix restart

Nun sollte kein Mail mehr von außen eintreffen.

Andere SMTP-Server möglich?

Na klar geht das auch. Du musst eben nur wissen, wie die Einstellungen für SMTP bei Deinem jeweiligen Provider lauten. Ich kann mich noch an das digitale Mittelalter erinnern als mein damaliger Server (ein uraltes Notebook) E-Mails via GMX als Relay versendet hat – ja auch ich hatte ganz ganz früher mal ein Konto bei GMX. 🙂




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.