Proxmox PVE – SMTP mit Authentifizierung für Notifications einrichten

Du möchtest deine Notifications deiner Proxmox Server mit einem Postfach deines Mailservers oder Mailprovider wie STRATO verschicken? Dann bist du hier genau richtig. Wir zeigen dir Schritt für Schritt, wie du Postfix so konfigurierst, dass die Notifications zukünftig über ein „richtiges“ Postfach versendet werden.

proxmox smtp server postfix configuration

Diese Anleitung wurde unter Proxmox PVE 6.4-13 getestet. NICHT auf Proxmox PBS.

1. Schritt - Postfix (nach-)installieren & config anpassen

Falls Postfix auf deinem Server noch nicht installiert ist, kannst du das Paket mit folgendem Command nach installieren.

sudo apt install postfix -y 

Als erstes müssen wir einige Änderungen an der Postfix main.cf Datei vornehmen. Öffne die Datei mit nano

sudo nano /etc/postfix/main.cf 

und suche folgende Zeile.

relayhost = 

Kommentiere diese mit einem # aus.

#relayhost = 

Springe mit der Tastenkombination Strg + W und Strg + V ans Ende der Datei. Füge den folgenden Code Schnipsel ein.

Passe dann smtp.mailserver.de auf den Hostnamen deines SMTP Mailservers an.

Du kannst auch den Port des Servers angeben. Tausche dazu 587 durch den Port deines Mailservers aus.

relayhost = [smtp.mailserver.de]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes 

Absenderadresse fest einstellen (optional)

Je nachdem kann es Sinn ergeben, die Absenderadresse fest einzustellen. Zum Beispiel, wenn der angegebene SMTP Account nur mit bestimmten Adressen senden darf.

Füge hierzu den folgenden Codeblock noch zusätzlich an das Ende der main.cf Datei von postfix ein.

sender_canonical_classes = envelope_sender, header_sender
sender_canonical_maps =  regexp:/etc/postfix/sender_canonical_maps
smtp_header_checks = regexp:/etc/postfix/header_check 

Schließe die Datei mit

Strg + X

y

Enter

Nun musst du noch folgende Dateien erstellen und anpassen.

 

Öffne / erstelle folgende Datei mit nano

nano /etc/postfix/sender_canonical_maps 

und füge diesen Codeblock ein. Ändere von@adresse.de mit deiner sendenden Adresse ab.

/.+/    von@adresse.de 

Öffne / erstelle nochmals folgende Datei mit nano

/etc/postfix/header_check 

und füge diesen Codeblock ein. Ändere von@adresse.de mit deiner sendenden Adresse ab.

/From:.*/ REPLACE From: von@adresse.de 

2. Schritt - SASL Authentifizierungsdatei erstellen

Um dich an deinem SMTP Server anmelden zu können, erstellen wir nun eine Datei mit den erforderlichen Authentifizierungsdaten an. Vorher müssen wir noch ein Paket installieren, mit dem wir ein gehashtes File erstellen können.

sudo apt install libsasl2-modules -y 

Erstelle und editiere die Authentifizierungsdatei mit nano

sudo nano /etc/postfix/sasl_passwd 

und füge folgende Zeile ein.

Tausche auch hier wieder smtp.mailserver.de durch den Hostname des SMTP Servers aus. Außerdem musst du benutzer  durch den Benutzernamen auf dem Mailserver austauschen, so ebenfalls auch passwort durch das Passwort dieses Benutzers.

Hier kannst du auch den Port des Servers angeben. Tausche dazu 587 durch den Port deines Mailservers aus.

[smtp.mailserver.de]:587 benutzer:passwort 

Erstelle nun mit dem folgenden Befehl eine gehashte Datenbank Datei.

sudo postmap /etc/postfix/sasl_passwd 

Passe anschließend noch die Rechte an, damit nur root Zugriff auf diese Datei hat.

sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db 
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db 

3. Schritt - für Postfix allgemeines snakeoil Zertifikat zuweisen

Da viele Mailserver nur mit TLS oder SSL verschlüsselte Mails empfangen können, müssen wir Postfix noch ein Zertifikat mitgeben, damit die Proxmox Mails auch von solchen Mailservern empfangen werden.

cat /etc/ssl/certs/ssl-cert-snakeoil.pem | sudo tee -a /etc/postfix/cacert.pem 

4. Schritt - über die Proxmox GUI Absenderadresse festlegen & Postfix neustarten

Als letzten Schritt vor dem Testen der Einstellungen legen wir nun noch fest, mit welche Mailadresse Proxmox die Notifications zu Backups, etc. versenden soll.

Die kann einfach über die Proxmox GUI unter Datacenter -> Options -> Email from adress geändert werden.

Gebe hier die Mailadresse an, auf die der angegebene Benutzer im 2. Schritt auch Berechtigungen hat.

Um alle Änderungen an Postfix jetzt wirksam zu machen, musst du noch folgenden Befehl abschicken.

postfix reload 

Letzter Schritt - Konfiguration testen

Nun testen wir noch, ob die Konfiguration richtig ist. Schicke dazu folgenden Command ab und passe von@adresse.de mit der Absenderadresse an. Der in Schritt 2 angegebene Benutzer muss Zugriff auf diese Adresse haben. an@adresse.de ist die Empfängeradresse.

echo "Proxmox SMTP Test" | mail -s "SMTP Test" an@adresse.de -r von@adresse.de 

Fertig!

Zufrieden? Dann schreib gerne einen Kommentar.

Diesen Beitrag teilen:

25 Kommentare

  • Hallo,
    prima Tutorial und bisher das einzige, welches auf Anhieb funktioniert.

    Wie kommt es allerdings, dass ich an alle Adressen Mails versenden kann, nur nicht an die, von der ich sende?

    Viele Grüße

    Antworten
  • Sehr geile Anleitung. Danke dafür. Funktionierte auf Anhieb, hier unter Proxmox 7.4.3 und mit Office 365-Konto
    viele Grüße!
    Erich

    Antworten
  • Sehr geile Anleitung. Danke dafür. Funktionierte auf Anhieb, hier unter Proxmox 7.4.3
    viele Grüße!
    Erich

    Antworten
  • Habe das Ganze genau nach Anleitung mehrfach durch:

    Feb 17 11:55:03 pve postfix/smtp[155888]: BB26680DD7: to=, relay=smtp.web.de[213.165.67.108]:587, delay=0.36, delays=0/0/0.33/0.03, dsn=5.0.0, status=bounced (host smtp.web.de[213.165.67.108] said: 530 Authentication required (in reply to MAIL FROM command))

    könnte es an Sonderzeichen im Passwort liegen?

    Antworten
    • Hallo,

      das sollte kein Problem sein. Ich habe es auch mit Sonderzeichen im Passwort konfiguriert und es hat funktioniert.

      Vielleicht kannst du nochmal das credentials File anschauen, ob auch der user richtig gesetzt ist. Ansonsten fällt mir nur noch ein, dass postfix ggf. ältere Verschlüsselungsmethoden nutzt, die web.de nicht mag. Siehe hier: https://debianforum.de/forum/viewtopic.php?t=183344

      Viele Grüße

      Antworten
    • Hallo Calvin,

      vielen Dank für dein Feedback!

      Viele Grüße

      Johann aus dem HowToDoTech Team

      Antworten
  • Hallo,

    ich hab das ganze nun gefixt. Hier hat der Spamfilter (DNS-Blackhole-Listen) gegriffen. Nun habe ich aber ein weiteres Problem.

    an ein auf dem Serverbefindliches Postfach kann ich schreiben. Aber nehme ich Beispielsweise eine google Adresse erhalte ich folgenden Fehler: 554 5.7.1 Relay access denied (in reply to RCPT TO command)

    Habt Ihr hier noch einen kleinen Tip.

    Antworten
    • Hallo tobasium,

      dieser Fehler könnte ggf. bedeuten, dass das Postfach auf dem Server nicht Berechtigt ist zu senden.

      Wenn du dich mit dem Postfach, das du zum senden nutzt in Outlook oder einem anderen Mail Client anmeldest, kannst du dann an eine Google Adresse senden?

      Viele Grüße
      dein HowToDoTech Team

      Antworten
  • Hi,
    danke für den Guide.
    Ich nutze PVE 7.09 und habe alles wie beschrieben eingerichtet, natürlich mit meinen eigenen Werten an entsprechender Stelle.

    Wenn ich abschließend per Befehl

    echo „Proxmox SMTP Test“ | mail -s „SMTP Test“ an@adresse.de -r von@adresse.de

    testen möchte, passiert einfach nichts. Weder in der CLI, noch kommt eine e-Mail an.

    Hast du hier vielleicht noch einen Tipp?

    Danke und VG
    Stefan

    Antworten
    • Hallo Stefan,

      erst einmal sorry für die späte antwort.

      Kannst du mal bitte die letzten 10-20 Zeilen aus dem Postfix Log, nachdem du den echo „Proxmox SMTP Test“ | mail -s „SMTP Test“ an@adresse.de -r von@adresse.de Command ausgeführt hast, schicken?

      Das Log kannst du dir mit folgendem Befehl anzeigen lassen:

      tail -20 /var/log/mail.log

      Viele Grüße

      dein howtodotech.de Team

      Antworten
  • Feb 15 22:50:36 iss-server3 postfix/master[945]: reload — version 3.5.6, configuration /etc/postfix
    Feb 15 22:56:04 iss-server3 postfix/pickup[56270]: 087D75C0DCB: uid=1000 from=
    Feb 15 22:56:04 iss-server3 postfix/cleanup[57041]: 087D75C0DCB: message-id=
    Feb 15 22:56:04 iss-server3 postfix/qmgr[56269]: 087D75C0DCB: from=, size=433, nrcpt=1 (queue active)
    Feb 15 22:56:04 iss-server3 postfix/smtp[57045]: SMTPS wrappermode (TCP port 465) requires setting „smtp_tls_wrappermode = yes“, and „smtp_tls_security_level = encrypt“ (or stronger)
    Feb 15 23:01:04 iss-server3 postfix/smtp[57045]: 087D75C0DCB: to=, relay=mail.[…][[…]]:465, delay=300, delays=0.1/0.01/300/0, dsn=4.4.2, status=deferred (conversation with mail.[…][[…]] timed out while receiving the initial server greetin
    g)

    Die letzt Zeile zeigt die Fehlermeldung. Leider kann ich damit nicht sehr viel anfangen.

    Admin Kommentar: Domains und IPs in diesem Kommentar wurden nachträglich mit […] ersetzt.

    Antworten
    • Hallo Dirk,

      kannst du mal versuchen, die zwei folgenden Zeilen noch am Ende der main.cf Datei (/etc/postfix/main.cf) einzufügen:

      smtp_tls_wrappermode = yes
      smtp_tls_security_level = encrypt

      Dann den Postfix Server mit postfix reload neu starten und nochmal versuchen, die Test-Mail zu senden.

      Die Log-Nachricht weist darauf hin, dass der Mail Server eine höhere Verschlüsselung verlangt.

      Viele Grüße
      dein howtodotech.de Team

      Antworten
      • Ich hatte das gleich Problem und mit der Ergänzung werden jetzt Mails versendet. Danke

        Antworten
  • Danke für die Anleitung. Leider funktioniert dies bei mir nicht unmittelbar. Im Log könnte ich keinen unmittelbaren Fehler finde.

    Antworten
    • Hallo Dirk,

      ist die Test-Mail (bei Letzter Schritt – Konfiguration testen) durchgekommen?

      Viele Grüße
      dein howtodotech.de Team

      Antworten
      • Vielen Dank für die gute Anleitung und den Kommentaren darunter. Ich habe es mit Strato zunächst nicht hin bekommen. Auf der eigenen Webseite steht Port 465
        und es wollte überhaupt nicht. Auch mit den Hinweisen
        smtp_tls_wrappermode = yes
        smtp_tls_security_level = encrypt
        bin ich nicht weiter gekommen.

        Also einfach mal mit Port 587 getestet.
        Siehe da läuft super.

        Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben