Wer sich erfolgreich LPIC-1-zertifizieren lassen möchte, muss grundlegende Kenntnisse der Konfiguration und des Betriebs von E-Mail-Servern - allgemein als MTA (Mail Transfer Agent) bezeichnet - vorweisen. Auf einem GNU-Linux-System hat der Admin die Wahl zwischen einer ganzen Reihe MTAs: Courier [1], Exim [2], Postfix [3], Qmail [4], Sendmail [5], Smail [6] oder MMDF [7], um nur einige zu nennen.
Ahnvater aller MTAs ist Sendmail, das seit der Anfangszeit des Internets als das Bindeglied zwischen der Vielzahl vorhandener E-Mail-Systeme gilt. Die Logik für die E-Mail-Zustellung ist nicht fest im Sendmail-Programm kodiert, sondern in seiner Konfiguration »sendmail.cf«. Diese Datei hat eine kryptische Syntax, aber glücklicherweise konfiguriert der moderne Admin Sendmail heute über die besser lesbare Datei »sendmail.mc«. Ein Präprozessor erzeugt daraus und aus Include-Dateien die eigentliche »sendmail.cf«. So ist es nicht mehr nötig, diese Datei direkt zu editieren.
Auf einer Vielzahl von Unix-Systemen ist Sendmail immer noch der Standard-MTA. Die meisten Linux-Distributionen sind aber von Sendmail abgekommen und verwenden einen neueren MTA. Die Autoren dieser Alternativen hatten dabei unterschiedliche Ziele, darunter Performance, Sicherheit oder Einfachheit der Konfiguration. Die Konfiguration der einzelnen MTAs unterscheidet sich deutlich, da Sendmail aber als Quasistandard gilt, enthalten die anderen MTAs meist noch eine rudimentäre Emulation des Traditionsprogramms. Exim, Postfix und Sendmail haben eine große Verbreitung in populären Distributionen (siehe Tabelle 1), aber alle Distributionen bieten auch andere gängige MTAs an und erlauben es, sie zu wechseln.
|
|
|
Distribution
|
Mail Transfer Agent
|
|
Red Hat/Fedora
|
Sendmail
|
|
Debian
|
Exim
|
|
Ubuntu
|
Postfix
|
|
Open Suse
|
Postfix
|
|
Das Linux Professional Institute gliedert die Prüfungsfragen in Aufgabengruppen. Dieser Artikel erklärt den folgenden Abschnitt anhand der MTAs Sendmail, Exim und Postfix:
-
1.113.2 Betrieb und grundlegende Konfiguration des Mail
Transfer Agent (MTA)
|
Aufgaben eines MTA
Ein MTA nimmt bis zu drei Aufgaben wahr: das Versenden, das Empfangen sowie das lokale Zustellen von E-Mails. Nicht jeder absolviert alle drei Aufgaben. Es lassen sich drei typische MTA-Konfigurationen unterscheiden.
Der einfachste MTA versendet lediglich E-Mails. Dedizierte Server nutzen diese Variante, wenn sie selbst nicht als Mailserver arbeiten, aber E-Mails versenden sollen. System-Cronjobs oder Webapplikationen erzeugen für Warnungen oder Hinweise an Benutzer beispielsweise E-Mails und wollen diese an einen entfernten Empfänger zustellen. Dazu braucht das System Nachrichten weder lokal zuzustellen noch welche von außen anzunehmen (siehe Abbildung 1).
Abbildung 1: Ein einfacher MTA nimmt über einen Server-internen Programmaufruf Mail an und leitet sie weiter. Er speichert keine Nachrichten und nimmt auch keine externen E-Mails an.
Ein weiterer MTA-Typ leitet E-Mails nur weiter (Relaying). In größeren Netzwerken findet sich gern eine hierarchische Struktur von Mailservern, oft in Kombination mit einer Firewall, die nur Verbindungen zu einen Mailserver zulässt, der Nachrichten an Sub-Mailserver weiterverteilt. Solche Mailserver empfangen E-Mails von draußen und versenden sie wieder, stellen aber nicht lokal zu (siehe Abbildung 2).
Abbildung 2: Der Relaying Forwarder nimmt Mails an und sendet sie direkt weiter. Firewalls setzen häufig diesen Aufbau voraus, da so klar festgelegt ist, welche IP-Adresse die Nachrichten versendet.
Ein vollständiger MTA übernimmt alle genannten Aufgaben. Kleinere Netzwerke verwenden nur diese Art. In größeren Netzwerken, in denen es auch die beiden anderen MTA-Typen gibt, übernehmen ein oder mehrere dedizierte MTAs die Aufgabe eines vollständigen MTA (siehe Abbildung 3).
Abbildung 3: Ein vollständiger MTA nimmt Nachrichten an und sendet sie auch an weitere MTAs weiter, wenn sie nicht für lokale Empfänger bestimmt sind. In diesem Fall liefert der Mailserver sie lokal aus.
Funktionsweise eines MTA
Relevant sind heute für den E-Mail-Transport nur das Simple Mail Transfer Protocol (SMTP, RFC 821, [8]) und seine Erweiterung, das Extended SMTP (ESMTP, RFC 2821, [9]). Beide Protokolle verwenden den TCP-Port 25. Um E-Mails zu empfangen, muss ein Daemon sich an diesen Port binden und von dort Verbindungen entgegennehmen.
Ein System, das lediglich E-Mails versendet, sollte selbst keine Verbindungen auf Port 25 entgegennehmen. Es reicht, wenn es lediglich Verbindungen zum Port 25 anderer MTAs aufbaut. Ein Benutzerprogramm hat zwei Möglichkeiten, will es eine E-Mail versenden: Es implementiert entweder ein Mailprotokoll und verbindet sich zu einem Mailserver (das kann auch »localhost« sein) oder es ruft einen lokal vorhandenen MTA als Programm auf − typischerweise ist das »/usr/sbin/sendmail«, auch wenn der MTA nicht Sendmail ist, ein Kompatibilitätsprogramm ist vorhanden. Dann verschickt der MTA die E-Mail.