30.
August
2010
Schon vor einigen Jahren hatte ich bei mir daheim einen kleinen Mailserver mit Squirrelmail als Webmailer eingerichtet. Der Server lief damals passenderweise in meinem »Briefkastenmod«. Nachdem die DSL-Verbindung gekappt wurde, war dieser jedoch logischerweise nicht mehr in der Lage als Mailserver zu agieren. Die Installation ist noch immer auf der alten Platte, aber sie nun wieder zu aktivieren macht relativ wenig Sinn. Schließlich habe ich meine Mails nun wieder auf meinem Hauptrechner und benötige keinen Zugriff über HTTP und einem Webmailer.
Dennoch ist gerade jetzt für mich wieder eine Lösung mit IMAP und Maildir sehr interessant. Anlass dafür ist der Umstand, dass ich in den letzten Monaten zwei Mal Probleme mit gigantischen Maildatei von Thunderbird hatte. Zwar konnte ich noch immer an meine Mails ran, aber wirklich sicher und stabil sieht meiner Meinung nach anders aus.
Ganz nebenbei bin ich inzwischen eigentlich ausschließlich unter Linux am Arbeiten. Windows ist zwar auch auf dem Rechner installiert, aber wirklich nur noch für ein paar Spiele zwischendurch. Produktiv setze ich Windows nicht mehr ein.
Genug mit der Vorgeschichte, schreiten wir zur Installation von Postfix
, welcher den Versand von E-Mails über einen sogenannten »Samarthost« ermöglicht. Als Smarthost dient der Mailserver (SMTP) des Providers, welcher ansonsten direkt von einem E-Mailprogramm wie Thunderbird oder Outlook angesprochen wird. Weiter unten gehe ich näher auf diese Thematik ein.
Die von mir verwendete Distibution Linux Mint 9 (Isadora) basiert auf Ubuntu. Daher stehen dank Ubuntu und Debian GNU/Linux diverse Anleitungen zum Einrichten von Mailservern im Netz. Primär jedoch in englischer Sprache, daher habe ich mein Vorgehen beim Einrichten der einzelnen Programme festgehalten.
Vor einigen Jahren hatte ich noch »Das Postfix-Buch. Sichere Mailserver mit Linux« von Peer Heinlein im Bücherregal stehen. Inzwischen ist es verkauft, aber die deutschsprachige Anleitung für Postfix im Ubuntu-Wiki hat mir vollauf zum Auffrischen der etwas eingerosteten Kenntnisse genügt.
Die eigentliche Installation läuft wie gewohnt über Synaptic statt. Ich bevorzuge weiterhin die Konsole, daher sind die entsprechenden Aufrufe hier zu finden.
apt-get install postfix
Postfix als MTA (mail transfer agent) wird installiert, mit installiert werden automatisch all jene Pakete, welche für den Betrieb notwendig sind.
Nun kann die eigentliche Konfiguration vorgenommen werden. Sollte nicht automatisch der Konfigurationsdialog erscheinen, kann er auch mit folgendem Aufruf gestartet werden:
sudo dpkg-reconfigure postfix
Im – zumindest auf meinem System – deutschsprachigen Menü ist zunächst die Art des Servers auszuwählen. Wie eingangs bereits erwähnt soll er als Smarthost agieren und ausgehende E-Mails über einen Server im Internet versenden. Daher ist Internet mit Smarthost
auszuwählen.
Die nächste Eingabe erfordert den »E-Mail-Namen«, welcher mit dem Hostnamen des Systems identisch sein sollte. Der ausführliche Text beschreibt die Anforderungen und was eingegeben werden sollte. Im typischen Fall ist bereits der Hostname korrekt eingesetzt.
Der darauffolgende Dialog verlangt nach dem »SMTP-Relay-Server«. Hier ist jener Server anzugeben, über welchen ansonsten über das E-Mailprogramm die Mails verschickt werden.
Systemintern verschickte E-Mails, welche an den postmaster
, root
oder andere Systemkonten geschickt werden, sollten an den tatsächlichen Benutzernamen des Administrators geschickt werden. Daher sollte im dafür vorgesehenen Feld der Name des lokalen Benutzers angegeben werden, welcher diese E-Mails tatsächlich erhalten soll.
Die übrigen Einstellungen des Servers werden durch die Texte ausführlich und klar erklärt. In der Regel sind bereits die Standardwerte einfach zu übernehmen.
Nach der Eingabe der Daten wird der Server automatisch gestartet beziehungsweise neu gestartet:
* Stopping Postfix Mail Transport Agent Postfix [ OK ]
* Starting Postfix Mail Transport Agent Postfix [ OK ]
Der Server läuft, ist so jedoch noch nicht funktionsfähig. Ihm fehlen noch ein paar zusätzliche Angaben zur Konfiguration, welche »per Hand« vorgenommen werden müssen.
Damit E-Mails über einen Server verschickt werden können, müssen in der Regel Benutzername und Passwort mit angegeben werden. In den Zeiten von massivem Spamversand und Missbrauch von E-Mailadressen ist es leider nicht mehr anders möglich.
Damit sich Postfix beim als Smarthost angegebenen Server im Internet einloggen kann muss in der Datei /etc/postfix/sasl_password
die Kombination aus Serveradresse, Benutzername und Passwort im Klartext eingegeben werden.
Dabei erfolgt die Eingabe nach dem Schema mail.server.tld username:passwort
.
Wie auch schon in der Anleitung aus dem Ubuntu-Wiki beschrieben sind nun noch die Zugriffsrechte einzuschränken sowie die Datenbank für Postfix zu generieren. Anschließend muss der Server neu gestartet werden. Die drei Aufrufe hintereinander weg:
sudo chmod 600 /etc/postfix/sasl_password
sudo postmap /etc/postfix/sasl_password
sudo /etc/init.d/postfix restart
Sollte der als Smarthost angegebene Server nur eine verschlüsselte Anmeldung über SSL erlauben, muss Postfix entsprechend dafür konfiguriert werden. In die /etc/postfix/main.cf
müssen noch die folgenden Zeilen hinzugefügt werden:
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous noplaintext
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
Sollte die Anmeldung weiterhin nicht funktionieren kann die Option noplaintext
entfernt werden. Dies ist jedoch nur zu empfehlen, wenn es nicht anders funktionieren sollte.
Damit die verschlüsselte Übertragung möglich ist, muss noch ein weiteres Paket installiert werden:
sudo apt-get install libsasl2-modules
Nach diesen Schritten sollte es möglich sein eine E-Mail über den nun konfigurierten Postfix an den Smarthost weiterzuleiten.
Da der als Smarthost angegebene Server unter Umständen so konfiguriert ist »fremde« E-Mailadressen abzuweisen, muss Postfix nun noch die lokal verwendete E-Mailadresse in eine zum Smarthost passende Adresse umschreiben.
Zunächst muss die Konfigurationsdatei /etc/postfix/main.cf
um einen Eintrag erweitert werden:
sender_canonical_maps = hash:/etc/postfix/sender_canonical
Die nun in der Konfiguration benannte Datei existiert jedoch noch nicht. Sie ist nun mit den Regeln beziehungsweise Zuordnungen zu füllen, welche Postfix beim Umschreiben der lokalen Benutzernamen verwenden soll. Dies könnte beispielsweise wie folgt aussehen:
www-data www@foobar.tld
root root@foobar.tld
ich martin@foobar.tld
Damit Postfix mit den Daten umgehen kann müssen sie entsprechend umgewandelt und der Server anschließend neu gestartet werden:
sudo postmap /etc/postfix/sender_canonical
sudo /etc/init.d/postfix restart
Um den Mailserver von der Konsole aus testen zu können wird noch ein weiteres Paket benötigt:
apt-get install bsd-mailx
In diesem Paket befindet sich das Programm mail
beziehungsweise mailx
. Damit kann von der Kommandozeile aus eine E-Mail über den Server verschickt werden. Sofern dieser natürlich entsprechend konfiguriert wurde und für den Benutzer woe oben beschrieben eine Zuordnung angelegt wurde.
mail -s Betreff emfaenger@foobar.tld
Nachdem der Aufruf bestätigt wurde, wird von der Software die Eingabe des Inhalts der E-Mail erwartet.
Hallo! Ich bin ein Beispieltext mit Zeilenumbruch.
Dieser führt nicht zum Versenden der Mail. Ein einzelner Punkt jedoch schon:
.
Durch einen Zeilenumbruch wird die E-Mail nicht verschickt. Erst wenn man eine Zeile eingibt, welche nur aus einem Punkt besteht und diese mittels einem Druck auf die Enter-Taste abgeschlossen wird. Sieht man in den Header der E-Mail kann man erkennen, dass die E-Mail vom lokalen Server (»martins-mint«) an den Smarthost im Internet weitergeleitet wurde.
[...]
Received: by martins-mint (postfix, from userid 0)
id 952976XXXX; Thu, 30 Aug 2010 17:57:09 +0200 (CEST)
To: [...]
hallo
welt
main.cf
.