Postfix – SMTP-Authentifikation leicht gemacht

Wer jahrelang Sendmail als MTA unter Linux benutzt hat, hat sich über die Zeit sicherlich an die Software gewöhnt, aber bestimmt auch oft mit deren Flexibilität und Komplexität gehadert – manchmal war Sendmail einfach zu umfangreich, manchmal wieder zu starr und strikt, was die (zugegeben hakelige) Grundkonfiguration anging. Aus diesem Grund bin ich vor ein paar Monaten einfach mal ins kalte Wasser gesprungen und habe den Wechsel zu Postfix gewagt. Die reine Konfiguration, um zumindest Mails zu verschicken, war recht schnell gefunden – leider stolperte ich ebenso schnell über die fehlende Möglichkeit, meine Mails über einen anderen Mailserver (hier : all-inkl.com) zu relayen…

Das Problem mußte also gelöst werden, schließlich liegt meine Domain bei all-inkl, warum sollte ich also nicht den dazugehörigen SMTP-Server für meinen Mailversand nutzen? Ganz einfach, fährt all-inkl doch selbstverständlich kein offenes Relay, sondern erfordert eine Benutzerauthentifizierung – in Momenten des Spamzeitalters also das A und O, um sich die eigene Serverlandschaft nicht durch Millionen unnützer Mails lahmzulegen. Wie war also Postfix beizubringen, dieses SMTP-Auth-Feature (wie es im allgemeinen genannt wird) zu nutzen?

Wie so oft stand vor dem glücklichen Ergebnis eine Menge Arbeit und Schweiß, die sich hier durch das Wälzen diverser Dokumentationen und Fallbeispiele ausdrückten – mit einem am Ende mehr als zufriedenstellenden Ergebnis!

Getestet wurden diese Dokumentation auf SuSE-Linux-Systemen der Versionen 9.0 und 9.1, im Großen und Ganzen ist dieses Tutorial aber auch portierbar auf alle anderen Distributionen und Plattformen, auch wenn unter Umständen Pfadangaben etc. ein wenig abweichen können! Selbstverständlich wird auch der Mailserver, über den relayed wird, von User zu User verschieden sein, in dem hier vorliegenden Fall gehen wir immer vom Mailserver Eurer Domain (smtp.<euredomain.tld>) aus!

Um zum Punkt (und dem Grund dieses Tutorials zu kommen), fangen wir an dieser Stelle einfach mal mit der Konfigurationsarbeit an sich an – editiert also mit dem Editor Eurer Wahl die Datei “/etc/postfix/main.cf” und fügt der eigentlichen Konfigurationsdatei die folgenden Zeilen zu :

# SMTP-Authentifikation
# Nutzung von SMTP mit SASL-Authentifikation
smtp_sasl_auth_enable = yes

# Notwendige Paßwörter stehen im unten angegebenen Paßwortfile smtp_auth
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth

# Option : Verweigerung anonymer Anmeldungen
smtp_sasl_security_options = noanonymous

# E-Mail-Host, der als Relay dienen soll
relayhost = smtp.<euredomain.tld>

Speichert die veränderte Datei ab und prüft durch Eingabe der Befehle “postfix check” und “postconf” Eure nun veränderte Konfiguration. Ersterer Befehl sollte keine Fehler melden, dann sind wir an dieser Stelle mit der Hauptkonfigurationsdatei fertig. Nun ist es an der Zeit, das Paßwortfile “smtp_auth” im Verzeichnis “/etc/postfix” zu erstellen. Der Inhalt sollte vom Muster her wie folgt aussehen :

“smtp.<euredomain.tld> username:password”

Relayserver ist hier “smtp.<euredomain.tld>”, “username” der Benutzername eines beliebigen POP3-/IMAP-Benutzers bei Eurem Provider und “password” logischerweise das dazugehörige Kennwort. Speichert nun die Datei und erzeugt die “gehashte” Datei (sprich : Diese Textdatei im oben angegebenen Hash-Format) durch Eingabe von

“postmap smtp_auth”

im Verzeichnis “/etc/postfix”.

Im eigentlichen Sinne haben wir hiermit unser Ziel erreicht. Durch Eingeben des Befehls

“/etc/init.d/postfix restart”

wird der Postfix-Dienst neu gestartet und Ihr könnt von Eurem bevorzugten E-Mail-Programm einmal eine Testmail an eine beliebige Adresse versenden. Um zu überprüfen, ob dies auch brav so geschieht, wie wir das eigentlich erreichen wollten, gibt es in der Datei “/etc/postfix/master.cf” eine Zeile, die wie folgt lautet :

“smtp unix – – – – – smtp”

Setzt bitte hinter das letzte “smtp” einmal den Parameter “-v”, so das die Zeile wie folgt aussieht :

“smtp unix – – – – – smtp -v”

Wird Postfix dann noch neu gestartet und schaut man sich parallel das Logfile an, sollte die E-Mail, die wir eben verschickt haben, hoffentlich mit dem Status “sent” verschickt worden sein. Ist dies nicht der Fall, hat es auf dem Weg hierhin noch irgendein Problem gegeben bzw. ist bis hierhin ein Problem aufgetaucht, was aber – sind keine Tippfehler etc. vorhanden – relativ unwahrscheinlich sein dürfte. Stellt abschließend bitte in der Datei “/etc/postfix/master.cf” in der Zeile

“smtp unix – – – – – smtp -v”

wieder den Ursprungszustand durch das Entfernen des “-v”-Parameters her, bevor das Mail-Logfile ins Unüberschaubare wächst und Ihr Euch irgendwann wundert, warum Eure Festplatte plötzlich voll ist (ja, auch das kann passieren!)!

Unter dem Strich – und um dieses Tutorial an dieser Stelle einmal abzuschließen – sollte sich nun die Möglichkeit des Relayens über den eigenen Internetprovider bieten, allerdings – und das betone ich an dieser Stelle extra noch einmal – über einen unverschlüsselten Mailserver via Port 25 – wer es also verschlüsselt mag, sollte sich einen SSL-Server suchen und parallel noch die Postfix-Dokumentation zu Rate ziehen! Bei Fragen, Anregungen, Erfahrungsberichten oder auch Kritik bezüglich dieser Anleitung bitte ich um eine E-Mail über das entsprechende Mailformular auf dieser Webseite!

Weitere Informationen und allerlei Wissenswertes über Postfix findet Ihr auf der offiziellen Projekthomepage :

http://www.postfix.org !

Kommentar hinterlassen

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

*