Eine Einführung zu E-Mail-Servern

Ein E-Mail-Server, oder kurz Mailserver genannt, ist ein Server, der E-Mails verwaltet. Er hat die Aufgabe, E-Mails zu empfangen, zu versenden, zu speichern oder weiterzuleiten. Bei den meisten Mailservern arbeiten mehrere Dienste wie z.B. ein Mail Transfer Agent ein Mailfilter, ein Mail Delivery Agent und ein Mail Retrieval Agent zusammen. Diese Dienste mit Ihren Funktionen und Protokollen sind im Folgenden beschrieben.

Bildquelle: www.pixelio.de (© Rainer Sturm / PIXELIO)

Eine Einführung zu E-Mail Servern

Mailserver, Dienste, Protokolle und Mailboxformate

Auf einem Mailserver arbeiten in den meisten Fälle mehrere Dienste und Programme zusammen:

  • Mail Transfer Agent (MTA): Dieser Dienst übernimmt den kompletten E-Mail Transport zum Beispiel von einem E-Mail-Programm zu einem MTA oder von einem MTA zu einem anderen MTA. Der MTA speichert Mails nicht dauerhaft, sondern nur vorübergehend, bis er sie erfolgreich weitergeleitet hat. Meist wird hierzu das SMTP Protokoll verwendet.
  • Mail Delivery Agent (MDA): Dieser Dienst legt die E-Mails in die verschiedenen E-Mail-Postfächer auf dem Server ab.
  • Mail Retrieval Agent (MRA): Dieser Dienst ermöglicht es, dass die vom Mailserver gespeicherten E-Mails von einem E-Mail-Programm (MUA) heruntergeladen werden können. Meist werden hierzu die Protokolle POP3 oder IMAP verwendet.
  • Mail User Agent (MUA): Der Mail User Agent - oft auch einfach Mail-Client genannt - ist ein Programm, mit dem E-Mails empfangen, gelesen, geschrieben und versendet werden können.
  • Message Submission Agent (MSA): Dieser Dienst nimmt E-Mails von einem MUA entgegen, filtert sie (z.B. kann der Absender geändert werden) und leitet sie zur Auslieferung an einen MTA weiter. Die meisten MTAs haben einen MSA integriert.

Beim Betrieb eines Mailservers werden häufig folgende Protokolle und Ports verwendet:

  • SMTP (Port 25) ist das Protokoll, mit dem E-Mails versendet werden.
  • POP3 (Port 110) dient zum Abruf von Mails von einem Mailserver.
  • IMAP (Port 143) dient dazu, um auf Mailboxen zuzugreifen, die auf Mailservern liegen.
  • SMTPS (Port 465), POP3S (Port 995) und IMAPS (Port 993) sind die per SSL/TLS gesicherten Varianten von SMTP, POP3 und IMAP.

Beim Betrieb eines Mailservers kommen häufig folgende Verschlüsselungsprotokolle zum Einsatz:

  • Simple Authentication and Security Layer (SASL): Oft hat man das Problem, dass man auch Benutzern, die nicht zum Mailserver-Netzwerk gehören das Weiterleiten von Mails gestatten möchte. Hierzu ist eine Benutzerauthentifizierung nötig, die häufig über SASL geregelt wird. SASL bietet dazu verschiedene Authentifizierungsmethoden, wie z.B. Plain, Login, Digest-MD5 oder CRAM-MD5 an. Ursprünglich hat das SMTP-Protokoll keine Authentifizierung vorgesehen. Deshalb wird heute für die Authentifizierung im allgemeinen SASL verwendet.
  • Transport Layer Security (TLS): Da bei den Plain und Login Authentifizierungsmethoden von SASL die Passwörter im Klartext übertragen werden, kann man TLS verwenden, um die Übertragung abzusichern. Dabei ist zu bedenken, dass damit nur ein Transportweg abgesichert ist. Wenn die Mail z.B. mehrere Mailserver durchläuft kann nicht garantiert werden, dass jede Verbindung bis zum Client des Empfängers verschlüsselt wird. TLS ist daher kein Ersatz zu per PGP/GnuPG verschlüsselten Mails.
  • Secure Sockets Layer (SSL): SSL ist die veraltete Variante von SSL und kommt heute fast nicht mehr zum Einsatz.

Weitere Begriffe und Erklärungen, die bei einem Mail-Server eine Rolle spielen:

  • SMTP-Relay-Server (Smarthost): Ein Smarthost - manchmal auch als Mail-Relay-Server oder nur als Relay bezeichnet - ist ein Mail-Server, der von einem Sender E-Mails annimmt und an beliebige Dritte weiterleitet. Über einen Relay-Server werden Emails also nur durchgeschleust. Ein offenes Relay ist ein Mailserver über den jeder E-Mails an beliebige Ziele senden kann. Solche offenen Relays sind natürlich geradezu eine Einladung an Spammer. Daher werden Mailserver heute im allgemeinen so konfiguriert, dass diese nur E-Mails von ihren eigenen Kunden weiterleiten (relayen).
  • Mailboxformate (Mbox / Maildir): Die beiden E-Mail-Speicherformate Mbox und Maildir sind in der Unixwelt weit verbreitet und mindestens eines dieser Formate kann jeder POP3- oder Imap-Server lesen. Mbox ist ein Format bei dem alle Mails zusammen in einer einzelnen Datei abgelegt werden. Bei Maildir ist jede E-Mail eine extra Datei ist.

Das Zusammenspiel von Postfix, Dovecot, SASL, TLS und Alpine

Um einen Überblick zu bekommen, wer eigentlich was macht, sind hier ein paar Programme mit ihren Funktionen aufgeführt, die auf einem Mailserver unter Linux zum Einsatz kommen können:

  • Postfix: Postfix ist ein SMTP-Server (MTA), der für unixähnliche Betriebssysteme wie z.B. Ubuntu oder Linux oder BSD als Open-Source-Software zur Verfügung steht. Postfix ist wesentlich leichter zu konfigurieren als der Standard Linux-Mail-Server Sendmail.
  • Dovecot: Dovecot ist ein Open-Source-E-Mail-Server (MDA), der die Protokolle IMAP und POP3 unterstützt. Er wird unter GNU/Linux und anderen unixoiden System betrieben. Weitere bekannte MDA's sind z.B. Procmail oder Fetchmail.
  • Alpine: Neben Mutt oder Elm ist Alpine (bzw. Pine) eines der bekanntesten textbasierten E-Mail-Programme (MUA) unter Unix.

Betrieb eines Mail-Servers im lokalen Servernetzwerk

  • Wird ein lokaler Mail-Server betrieben, dann genügt es z.B. Postfix als MTA und Alpine als MUA zu installieren.
  • Die angemeldeteten Benutzer können dann auf dem Server Ihre E-Mails über Alpine empfangen und versenden.
  • Da Alpine zur Zeit (ohne Patch) nur das Mbox-Mailformat kennt, ist es für alle Alpine-User am einfachsten, Postfix mit dem Mbox-Mailformat zu betreiben.

Postfix übernimmt in diesem Fall also die Aufgabe des Mail-Servers, wohingegen Alpine der Mail-Client ist.

Postfix installieren: sudo apt-get install postfix

Bevor Sie Postfix installieren sollten andere E-Mail-Dienst wie z.B. sendmail gestoppt werden: /etc/init.d/sendmail stop. Außerdem sollten Sie wissen, wie Ihr Rechner heißt. Hierzu kann das Kommando hostname verwendet werden. Im Folgenden wird der Hostname example.com verwendet. Weiterhin wird angenommen, dass der Administrator des Servers admin heisst. Machen Sie nun folgende Angaben, wenn Postfix Sie danach fragt:

  • Konfiguration: Internetseite
  • System-E-Mail-Name bzw. Domainname: example.com
  • Empfänger von E-Mails an Root und Postmaster: admin
  • Weitere Rechner, für die E-Mail akzeptiert werden soll: example.com, localhost.example.com, localhost
  • Synchrone Aktualisierungen der E-Mail-Warteschlange erzwingen? no
  • Lokale Netze: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/16
  • Möchten Sie Procmail zur lokalen E-Mail-Zustellung nutzen? no
  • Maximale Postfach-Größe (Bytes): 0
  • Zeichen für lokale Adress-Erweiterung: +
  • Zu verwendende Internet-Protokolle: alle

Die oben gemachten Angaben können jederzeit mit dem Kommando dpkg-reconfigure postfix akutalisiert werden oder mit einem Editor unter /etc/postfix/main.cf bearbeitet werden. Ihre main.cf sollte nun folgende Einträge enthalten:

# Postfix settings smtpd_banner = $myhostname ESMTP $mail_name biff = no append_dot_mydomain = no readme_directory = no # Postfix parameters alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = example.com, localhost.example.com, localhost mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/16 virtual_maps = hash:/etc/postfix/virtual_maps mailbox_size_limit = 0 message_size_limit = 204800000 recipient_delimiter = + inet_interfaces = all inet_protocols = all

Alpine installieren: sudo apt-get install alpine

Nehmen wir weiterhin an, auf Ihrem Server gibt es die Benutzer Max und Moritz. Damit die beiden E-Mails versenden und empfangen können, benötigen sie einen textbasierten E-Mail-Klienten wie z.B. Alpine. Da Postfix standardmäßig das Mailformat Mbox verwendet, wird beim erstmaligen Aufruf von alpine, das Verzeichnis mail im jeweiligen Homeverzeichnis angelegt.

Damit alle E-Mails an max@example.com bzw. moritz@example.com im entsprechenden mail-Verzeichnis abgelegt werden, muss die Datei /etc/postfix/virtual_maps mit folgenden Einträgen erstellt werden:

max@example.com

moritz@example.com

Um die E-Mails gleichzeitig an die privaten Adressen von Max und Moritz (in unserm Beispiel mail@max.de bzw. mail@moritz.de) weiterzuleiten und alle anderen E-Mails, die an die Adresse example.com gesendet werden im mail-Verzeichnis von admin zu speichern, sollte die virtual-maps Datei um folgende Einträge ergänzt werden:

max@example.com, mail@max.de

moritz@example.com, mail@moritz.de

@example.com, admin

Sind alle Einträge gemacht, so muss vor dem Neustart von Postfix die virtuelle Datenbank mit dem Kommando postmap /etc/postfix/virtual_maps erzeugt werden. Der Neustart von Postfix erfolgt mit dem Kommando /etc/init.d/postfix restart.

Betrieb eines Mail-Servers über das lokale Servernetzwerk hinaus

Sollen E-Mails nicht nur über das interne Mail-Programm wie zum Beispiel Alpine empfangen und gesendet werden, sondern mit einem externen Programm wie Thunderbird, dann müssen folgende Punkt beachtet werden:

  • Wird Postfix als SMTP-Mail-Server betrieben, bei dem der Zugriff auf den Mail-Server auch von außerhalb des eigenen Servernetzwerkes möglich sein soll, benötigt man eine Benutzerauthentifizierung.
  • Da Postfix selbst keine Benutzerauthentifizierung implementiert hat, muss auf eine Authentifizierung wie z.B. SASL zurückgegriffen werden. Die bekannteste SASL Implementierung sind die Cyrus SASL Bibliotheken. Daneben gibt es auch noch Dovecot SASL. Mit Postfix kann sowohl Cyrus SASL als auch Dovecot SASL verwendet werden.
  • Kommt Dovecot als POP3/IMAP-Server zum Einsatz ist es sinnvoll, auch die Dovecot SASL Authentifizierung für Postfix zu verwenden. Dann kann sowohl Postfix wie auch der POP/IMAP-Server auf die gleichen Authentifizierungsquellen zugreifen.
  • SASL unterstützt verschiedene Authentifizierungsmethoden wie z.B. Plain, Login, Digest-MD5, CRAM-MD5 usw. Möchte man die normalen Unix-Passwortinformationen verwenden (also z. B. /etc/shadow oder PAM), ist man zwangsläufig auf Plain bzw. Login beschränkt, da unter Linux die Passwortdatenbanken verschlüsselt vorliegen. Für die verschlüsselten Verfahren wie CRAM-MD5 und Digest-MD5 wird aber das Passwort im Klartext auf dem Server verlangt. Damit liegt der Vorteil von Plain bzw. Login klar auf der Hand: In diesem Fall können die normalen Unix-Passwortdatenbanken benutzt werden, ohne eine eigene Passwortdatenbank aufbauen zu müssen.
  • Da bei SASL mit Plain oder Login die Passwörter im Klartext durch das Netz wandern, wird aber noch ein Verschlüsselungsverfahren für die Passwort-Übertragung benötigt. Um die Übetragung abzusichern, kann man TLS verwenden. Aber Achtung: Damit ist nur der Transportweg vom eigenen Server zum ersten Mailserver gesichert. Wenn die Mail mehrere Mailserver durchläuft kann nicht mehr garantiert werden, das jede Verbindung bis zum Client des Empfängers verschlüsselt wird. TLS kann deshalb Mails, die per PGP/GnuPG verschlüsselt wurden nicht ersetzen.
  • Maildir ist das modernere Mailbox-Format und es treten weniger Probleme mit großen Postfächern auf als bei Mbox. In der Zwischenzeit gibt es einen Patch für Alpine um das Mailbox-Format zu lesen.

Postfix ist hier also der SMTP-Mail-Server, Dovecot der IMAP/POP3 Server. SASL wird für die Benutzerauthentifizierung verwendet, TLS für die Verschlüsselung der Passwörter. Als modernes Mailbox-Format kommt Maildir zum Einsatz.

Wer Postfix als SMTP-Mail-Server einrichten möchte, findet viele hilfreiche Hinweise und Tipps auf den folgenden Seiten:

Welchen konsolenbasierten Mail-Clienten verwenden Sie?
Laden ...
Fehler!