Dieses mal ging´s um ein kleines NAS, dass bei erfolglosem Scriptdurchlauf eine Mail schicken sollte. Wenn so ein Teil aber hinter einem SOHO-Router steht muss Postfix entsprechend konfiguriert sein, damit Mails über einen dritten Mailserver (z.B. GMX oder ähnliche) versendet werden können.
Installation
Zuerst einmal brauchen wir Postfix und Cyrus-Sasl, welchen wir hier mit Yum installieren können. Solltet ihr das Teil selber bauen wollen, dann die entsprechenden Parameter für SASL_AUTH und TLS nicht vergessen.
yum install postfix cyrus-sasl cyrus-sasl-plain mailx
Wenn Sendmail installiert war (wahrscheinlich), sollten wir diesen stoppen und entfernen.
/etc/init.d/sendmail stop chkconfig --del sendmail
Anpassung der Config Dateien
Als nächstes editieren wir die /etc/postfix/main.cf
Hier können wir die Domain und den Host angeben. Z.B. hinter der der Dyndns-Adresse, falls wir eine werwenden.
mydomain = local.domain myhostname = host.local.domain
Der wichtigste Part ist jetzt der Relayhost, in diesem Beispiel versenden wir Plainauth, d.h. der Login ist nicht verschlüsselt. Mit TLS usw. würde die Definition anders aussehen. Man sollte auf jeden Fall prüfen, ob der Provider Port 25 zulässt, ansonsten ist auch 587 eine häufige Alternative.
relayhost = deinISPServername.com:587 smtpd_sasl_auth_enable = yes smtpd_sasl_path = smtpd smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_type = cyrus smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous
’smtp_sasl_security_options‘ ist wichtig fuer PlainAuth wenn die Passwoerter als Plaintext gesendet werden muessen, andernfalls kann es deaktiviert werden.
Anlegen der Zugangsdaten
Da der Mailserver in der Regel ein Passwort haben will, müssen wir dieses Passwort für Postfix hinterlegen, damit Postfix sich dann beim Mailserver anmelden kann, um die zu versendenden Mails loszuwerden.
Dafür editieren wir die Datei (anlegen, falls nicht vorhanden) /etc/postfix/sasl_passwd:
deinISPServername.com:587 deinUsername:deinPasswort
Wobei die Daten für den Server hier mit denen aus der main.cf übereinstimmen müssen. Anschließend erzeugen wir eine Lookuptable für Postfix und setzen die Dateirechte.
postmap hash:/etc/postfix/sasl_passwd chmod 600 /etc/postfix/sasl_passwd chmod 600 /etc/postfix/sasl_passwd.db
Die Lookuptable können wir testen mit:
postmap -q deinISPServername.com:587 /etc/postfix/sasl_passwd
Wobei hier dann der User und das Passwort angezeigt werden sollten, wenn alles klappt.
Nun starten wir den Postfix-Daemon und machen ihn noch bootfest:
/etc/init.d/postfix start chkconfig --add postfix
Ein kleiner Test kann noch laufen mit:
mail -s "Test" empfaenger@domain MeinTestText .
Im Idealfall sollte nun der SMTP-Versand über den dritten Host mit Plaintextauthentifizierung klappen.
xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms
Kleine gesonderte Anmerkung für alle die hier über eine Suchmaschine landen -> Sollte euch dieser Fehler begegnen:
Mar 15 13:34:19 backup1 postfix/smtpd[22254]: warning: xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms
Mar 15 13:34:19 backup1 postfix/smtpd[22254]: fatal: no SASL authentication mechanisms
fehlt vermutlich das Paket „cyrus-sasl-plain“, was wir mit
yum install cyrus-sasl-plain
beheben können.
mail: command not found
Wem das Mail-Kommando in der Konsole fehlt, der kann vermutlich mit der Installation des Pakets mailx einfach abhilfe schaffen:
yum install mailx