Postfix mit SMTP Auth zum Mailrelay

Gelegentlich kommt der Wunsch auf, eine Email von einem beliebigen Linuxsystem in die Welt zu versenden, z.B. vom Kontaktformular des Webservers, einem Monitoring System wie Nagios oder aber auch kritische Meldungen im syslog Deamon.

Gelegentlich kommt der Wunsch auf, eine Email von einem beliebigen Linuxsystem in die Welt zu versenden, z.B. vom Kontaktformular des Webservers, einem Monitoring System wie Nagios oder aber auch kritische Meldungen im syslog Deamon.

Dumm nur, wenn der Server dank Firewall selbst nicht direkt ins Netz kommt oder die E-Mails als Spam klassifiziert werden, weil der Server versucht E-Mails von einer Dail-In IP Adresse eines DSL Providers zu versenden.

Um dieses Problem zu lösen, bietet es sich an, die E-Mails einen offiziellen E-Mailserver mit MX Eintrag zu relayen. Hier wird aber fast immer eine SMTP Authentifizierung benötigt.

Wie man den Postfix nun dazu bringt, mittels SMTP Auth über einen weiteren E-Mailserver zu relayen zeigen wir nun.

Öffnen Sie zunächst die Konfigruationsdatei des Postfix Servers mit einem Editor Ihrer Wahl:

/etc/postfix/main.cf

Suchen Sie die Zeile:

relayhost = XXXX

und passen XXXX auf Ihren Server an, der die E-Mails relayen soll. Hier können Sie die IP Adresse oder den Servernamen eintragen.

Fügen Sie nun noch folgende Zeilen ein

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_authen
smtp_sasl_security_options = noanonymous

Die erste Zeile aktiviert die SALS Authentifizierung.
Die zweite Zeile gibt die Datei an, in der die Zugangsdaten für den Relayhost hinterlegt sind.
Die dritte Zeile gibt an, dass keine anonyme Anmeldung verwendet werden soll.

Speichern Sie nun die Konfigurationsdatei main.cf ab.

Legen Sie nun die Datei

/etc/postfix/smtp_authen

mit folgendem Inhalt an:

RELAYHOST USERNAME:PASSWORD

Wobei RELAYHOST dem in der main.cf konfigurierten Relayhost enstpricht.
USERNAME dem SMTP Benutzernamen.
Und PASSWORD dem SMTP Passwort des Benutzers.

Speichern Sie die Datei smtp_authen ab.
Um diese zu “aktivieren” muss diese zunächst noch als binäre Datei umgewandelt werden.
Dies erreichen Sie mit dem Befehl:

postmap hash:/etc/postfix/smtp_authen

Ein Neustart des Postfix Servers ist in der Regel nicht nötig, sollte die Konfigration jedoch nicht ziehen, erreichen Sie dies mit dem Befehl:

/etc/init.d/postfix restart

Spätestens ab diesem Zeitpunkt sollte Ihr E-Mailserver über den Relayhost die E-Mails versenden und eine SMTP Authentifizierung verwenden.