[[Getestet(general)]] {{{#!Wissen * [1]: [:Pakete installieren: Installation von Programmen] * [2]: [:Terminal: Ein Terminal öffnen] * [3]: [:Editor: Einen Editor öffnen] }}} [[TableOfContents(2)]] = Einleitung = [[Bild(./postfix_logo.gif,,links)]] Damit ein Linux Rechner direkt Emails verschicken kann, muss ein MTA ([http://de.wikipedia.org/wiki/Mail_Transfer_Agent Mail Transfer Agent] {de} ) installiert und konfiguriert sein. Der Klassiker unter den MTA ist sendmail, dieser ist jedoch sehr umständlich zu konfigurieren, deshalb hat sich Postfix zum Standard entwickelt. Im Prinzip könnte man den Postfix-Server aufsetzen und gleich Emails verschicken. Doch leider ist das im Zeitalter von Spam nicht mehr so einfach. Ein SMTP-Server ohne eine feste IP und ohne ordentliche Zertifikate wäre eine ideale Spam-Schleuder. Deshalb akzeptiert eigentlich kein Email-Server Emails von solchen Servern. Man muss daher die eigenen Emails über einen "ordentlichen" SMTP Server wie z.B. den von web.de und Co. leiten. Für ortsgebundene Rechner bietet sich der Server des eigenen Internet Service Providers an, da dieser meistens keine zusätzliche Authentifizierung erfordert. Ein MTA ist aber auch dann erforderlich, wenn lokale Benutzer auf dem System untereinander Emails verschicken wollen. In diesem Fall findet kein Datenaustausch zu einem externen SMTP-Server statt. Lautet der Name des Rechners beispielsweise "ubuntu", so ist "root@ubuntu" eine gültige Emailadresse. Das Versenden von lokalen Emails wird unter Anderem von Diensten wie [:Cron:] verwendet, um den Administrator über mögliche Probleme zu informieren. Die im Folgenden beschriebene Konfiguration ermöglicht sowohl das Versenden von Emails an externe als auch an interne Empfänger. = Installation = Es muss eigentlich nur ein Paket installiert [1] werden * '''postfix''' * '''mailx''' - Optional, um über die Konsole mit dem Befehl '''mail''' Mails verschicken zu können = Grundkonfiguration = Anschließend wird man gleich zur Grundkonfiguration von Postfix geleitet, die aus einer Serie von Fragen besteht. Bei Fragen, auf die hier nicht besonders eingegangen wird, sollte einfach der Standardwert bestätigt werden. Je nachdem, wie man die erste Frage beantwortet, tauchen bestimmte Fragen später vielleicht gar nicht auf. === General type of configuration? === Als erstes wird nach dem allgemeinen Einsatzzweck des Servers gefragt. Zur Auswahl stehen folgende Möglichkeiten: || '''Typ'''||'''Beschreibung'''||'''Einsatzszenarien'''|| ||''Internet Site''||Standard. Mail wird empfangen und verschickt.||Echter Mailserver mit fester IP-Adresse, z.B. Root-Server|| ||''Internet mit Smarthost''||Wie Internet Site, aber Mail wird nicht direkt an den entfernten Server zugestellt, sondern komplett über einen anderen Server (etwa beim ISP) geleitet.||Mailserver mit dynamischer IP-Adresse, die sonst sehr oft als potentielle Spam-/Virenversender geblockt werden.|| ||''Satellite System''||Keine Mail wird empfangen, alle ausgehende Mail über einen Smarthost (s.o.) verschickt.||Mail durch Adminskripte oder Webapplikationen verschicken lassen.|| ||''Local only''||Mail wird lokal auf dem Rechner zugestellt, es wird keine Mail von außen empfangen bzw. nach außen geschickt.||Wie ''Satellite System'', aber die Mail soll direkt auf demselben System gelesen werden.|| === Where should mail for root go? === Hier sollte man den entweder den Benutzernamen des Admins eintragen oder seine gültige Emailadresse. === Mailname === Dies ist der Name des Rechners, der jeder ausgehenden Mail als Absenderdomain hinzugefügt wird. In den meisten Fällen sollte man einfach den Hostnamen als Mailnamen akzeptieren, außer man ist im Besitz eines geeigneteren Domainnamens. === SMTP relay host? === Hier sollte man den Mailserver des Providers eintragen, über den man die Mail verschicken will, z.B. ''smtp.mailanbieter.de''. === Für welche weiteren Rechner möchten Sie Mails akzeptieren? === Wenn man den Mailserver für bestimmte Domains betreibt, die hier noch nicht aufgelistet werden, muss man diese ergänzen. === Local Networks === Hier trägt man ein, welche Maschinen Mail über diesen Server verschicken dürfen. Es ist wichtig, dass man seinen Server hier nicht Unbekannten zur Verfügung stellt, die darüber dann Spam oder Viren verschicken können (''Open Relay''). Als Vorgabe steht dort ''127.0.0.0/8'', was bedeutet, dass man nur vom lokalen Rechner aus Mails versenden darf. Wer seinen Mailserver aus dem ganzen LAN zum Versand nutzen will, sollte hier zusätzlich sein eigenes Netz eintragen: {{{#!Text 127.0.0.0/8, 192.168.178.0/24 }}} Wer seinen Server, bspw. einen Root-Server, über das Internet nutzen will, sollte hier keinen Fall weite Adressbereiche erlauben, sondern für den Versand stattdessen eine [:Postfix/Erweiterte_Konfiguration#sasl_auth: Authentifizierung] verlangen. {{{#!Hinweis Je nach Ubuntu-Version sehen diese Fragen etwas anders aus. Der wichtigste Punkt ist immer der SMTP-Server, wenn man ''Smarthost'' oder ''Satellite'' gewählt hat. Hat man sich in der Konfiguration vertan, kann man diese im Terminal [2] mit '''`sudo dpkg-reconfigure postfix`''' wiederholen, in welchem Fall noch viel mehr Fragen gestellt werden. Ebenso kann man diesen Befehl ausführen, wenn eine wichtige Einstellung, die man verändern wollte (z.B. ''Local Networks''), bei der Installation übergangen wurde. }}} Danach ist die erste Konfiguration von Postfix abgeschlossen. Diese wird in der Datei '''/etc/postfix/main.cf''' hinterlegt. = Postfix Server steuern = Wie alle anderen Dienste bringt auch Postix Start/Stop-Skripte mit. Diese Skripte lassen sich natürlich auch zum Kontrollieren des Servers gebrauchen. {{{#!Befehl # Allgemein sudo /etc/init.d/postfix {start|stop|restart|reload|flush|check|abort|force-reload} # Beispiel sudo /etc/init.d/postfix restart }}} * ''"start"'' - Startet den Dienst * ''"stop"'' - Stoppt den Dienst * ''"restart"'' - Startet den Server neu, bestehende Verbindungen auf den Server werden gekappt * ''"reload"'' - Lädt die Konfigurationsdateien neu, ohne dass Verbindungen getrennt werden * ''"flush"'' - Es wird versucht alle Mails, die in der Warteschlange liegen, zu senden * ''"abort"'' - Stoppt Postix sofort, alle laufenden Postfix Prozesse werden angehalten Mehr dazu im Wiki unter [:Dienste:]. = Besondere Konfigurationen = [[Anchor(smtp_auth)]] == Authentifizierung am Smarthost == Wenn der SMTP-Server auf dem Smarthost zum Versenden der Mail ein Passwort verlangt, muss die eben erstellte Konfiguration '''/etc/postfix/main.cf''' allerdings noch einmal editiert [3] und diese Zeilen eingefügt werden: {{{#!Text smtp_sasl_auth_enable = yes # noplaintext weglassen, wenn Passwörter im Klartext übertragen werden müssen: # (nicht empfohlen, nur wenn's anders nicht funktioniert) smtp_sasl_security_options = noplaintext noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_password }}} Wie in der Config ersichtlich, holt Postfix die Zugangsdaten aus der Datei '''/etc/postfix/sasl_password''' bzw. aus einer Datenbank, die aus der sasl_password generiert wird; diese muss daher in dieser Art erstellt werden {{{#!Text smtp.mailanbieter.de username:ganzgeheimespasswort }}} Jetzt muss noch die Datenbank erzeugt werden. Dazu muss man ein Terminalfenster öffnen [2] und den Befehl {{{#!Befehl sudo postmap /etc/postfix/sasl_password }}} ausführen. Danach muss man postfix neu starten: {{{#!Befehl sudo /etc/init.d/postfix restart }}} [[Anchor(sender_canonical)]] == Korrekten Absender setzen == Viele Email-Anbieter erwarten inzwischen, dass man seine Post mit "richtigen" Absenderadressen verschickt - also nicht ''ich@localhost'' oder ''user@meinrechner''. Einige, wie GMX, gehen sogar so weit, nur die eigene, korrekte Adresse zu akzeptieren. Deshalb muss man Postfix beibringen, die lokalen Adressen durch die gewünschte offizielle zu ersetzen. Folgende Zeile muss man dafür in die Datei '''/etc/postfix/main.cf''' einfügen: {{{#!Text sender_canonical_maps = hash:/etc/postfix/sender_canonical }}} Dann erstellt man in einem Editor mit Root-Rechten [3] die Datei '''/etc/postfix/sender_canonical''' mit beliebig vielen Zuordnungen, z.B.: {{{#!Text benutzer email.adresse@gmx.net www-data beispiel@example.com root email.adresse@gmx.net }}} Zu guter Letzt erstellt man auch aus dieser Datei eine Postfix-Datenbank und lädt die Postfix-Konfiguration im Terminal [2] neu: {{{#!Befehl sudo postmap /etc/postfix/sender_canonical sudo /etc/init.d/postfix restart }}} == Mehr Konfigurationsmöglichkeiten == Weitere Konfigurationsmöglichkeiten bietet der Artikel [:Postfix/Erweiterte_Konfiguration:]: * [:Postfix/Erweiterte_Konfiguration#aliase: Aliase] - Email-Umleitungen, z.B. für ''root'' oder ''postmaster'' * [:Postfix/Erweiterte_Konfiguration#tls: TLS-Verschlüsselung] - Clients Verschlüsselung anbieten * [:Postfix/Erweiterte_Konfiguration#sasl_auth: SASL-Authentifizierung] - Authentifizierung von Clients verlangen = Funktionstest = Jetzt kann man z.B. mit '''mail''' aus dem Paket '''mailx''' eine Email verschicken. Der Befehl dazu sieht im Prinzip so aus: {{{#!Befehl mail -s "testbetreff" email@addresse.de < textdatei.txt }}} Danach sollte man die Datei '''/var/log/mail.log''' durchlesen und überprüfen ob alles geklappt hat. Hoffentlich steht nun am Ende der Datei etwas ähnliches wie das hier: {{{#!Text ...from=... ...to=,... status=sent... Message accepted }}} [[Anchor(Anhang)]] = Anhang: Smarthost-Provider = Die Anti-Spam-Maßnahmen mancher Mail-Provider können einem als Betreiber eines Heim- oder SOHO-Servers schon ein bisschen das Leben schwer machen. Hier werden ein paar davon beschrieben, und wie man über sie korrekt Mail verschicken kann. == AOL == AOL erschwert die Konfiguration zusätzlich, weil unumgängliche Filterungsmaßnahmen durchgeführt werden. Nicht nur wird Mail mit anderen Absendern als der eingeloggten AOL-Kennung aggressiv gefiltert, sie leiten auch alle ausgehende Post auf dem regulären SMTP-Port 25 über einen Zwangsproxy weiter, der wiederum dieselbe Filterung durchführt. Der Einsatz der AOL-eigenen Mailserver als Smarthost ist deswegen nicht zu empfehlen. Um aber einen externen Anbieter als Smarthost benutzen zu können, muss man statt dem Standardport 25 den ''Mail submission''-Port 587 verwenden, z.B. so: {{{#! relayhost = mail.gmx.net:587 }}} == Arcor == Arcor-Internet-Kunden können über ihren eigenen Internetzugang ohne weitere Authentifizierung Email mit beliebigem Absender versenden, sofern dieser eine gültige Email-Adresse darstellt: * [#sender_canonical Korrekten Absender setzen] Auch von unterwegs kann man die Arcor-SMTP-Server auf diese Art nutzen, wenn man sich authentifiziert: * [#smtp_auth Authentifizierung am Smarthost] Es funktioniert auch als Freemail-Kunde, daher ist Arcor eine gute Wahl für einen Smarthost. Man braucht das entsprechende Postfach noch nicht einmal als Kontaktadresse nutzen, sondern benutzt es nur für den SMTP-Auth und verschickt darüber seine reguläre Mail mit beliebigen Absender-Domains. Zu beachten ist, dass Arcor die Adresse, mit der man sich authentifiziert hat, in einem Zusatzheader in die Mail einträgt, den der Empfänger lesen kann. == GMX == Um mit Postfix auch über GMX Emails versenden zu können, muss man folgende, weiter oben beschriebene Schritte ausführen: * [#smtp_auth Authentifizierung am Smarthost] * [#sender_canonical Korrekten Absender setzen] Außerdem gilt es folgende Besonderheiten zu beachten: * GMX akzeptiert nur Mail mit demselben Absender, als der man sich authentifiziert hat. Dieser Provider ist deswegen nur als Smarthost geeignet, wenn alle ausgehenden Mails denselben Absender tragen dürfen. * Die Benutzerkennung in der '''/etc/postfix/sasl_password''' besteht aus der kompletten Email-Adresse und nicht nur aus dem Benutzernamen, z.B.: {{{#!Text mail.gmx.net beispiel@gmx.de:geheim }}} = Links = * [:Postfix/Erweiterte_Konfiguration:] * [http://www.postfix.org/ Postfix Homepage] {en} * [http://de.wikipedia.org/wiki/Postfix_(Mail_Transfer_Agent) Postfix bei Wikipedia] {de} * [http://www.postfix-howto.de/ Deutsches Postfix Howto] {de} * [http://de.wikibooks.org/wiki/Postfix Postfix bei Wikibooks] {de} * [http://www.contentschmiede.de/archiv/2005/08/26/postfix_fuer_typo3_und_gmx_fit_machen/ Postfix für GMX fit machen bei ContentSchmiede] {de} * [http://www.ubuntuusers.de/paste/1208/ Beispielkonfiguration für GMX] {de} ---- * ["Kategorie/Internet"] * ["Kategorie/Netzwerk"] * ["Kategorie/Server"] [[Tags(netzwerk,email,server,smtp)]]