Menu Content/Inhalt
Home arrow Postfix arrow Postfix Einführung
Postfix Einführung PDF Drucken E-Mail

Einführung

Postfix wurde von Wietse Venema entwickelt, der sehr bekannt wurde in insider-Kreisen für seine von ihm entwickelten Sicherheits-Tools und diesbezügliche Artikel.
1998 wurde Postfix mit der Unterstützung von IBM als Open-source-Software zur Verfügung gestellt.

POSTFIX-KOMPONENTEN

Die Architektur von postfix unterscheidet sich stark von einem monolithischen System, wie etwa sendmail, das traditionell ein einzelnes grosses Programm zur Verarbeitung von E-Mail-Nachtrichten verwendet.
Postfix bricht Aufgaben auf separate Funktionen herunter und nutzt individuelle Programme für jede dieser spezifischen Aufgaben. Die meisten dieser Programme sind daemons, d.h., auf ihren System im Hintergrund laufende Prozesse.

Der master-Daemon wird als Erster gestartet und ruft die meisten anderen Prozesse ganz nach Bedarf auf. Postfix-Daemons, die vom master-Daemon aufgerufen werden, erledigen die ihnen zugewiesenen Aufgaben und beenden sich dananch selbst.

Das Ende kann aber auch nach einer vorkonfigurierten Zeitspanne oder nach der Behandlung einer maximalen Anzahl von requests kommen. Der master-Daemon ist die ganze Zeit vorhanden und erhält seine Konfigurationsinformationen beim Start aus den Dateien main.cf und master.cf.

Allgemein gesprochen emfängt Postfix Nachtrichten, speichert sie in einer Queue zwischen und liefert sie schliesslich aus. Jede Verarbeitungsstufe wird von einer separaten Gruppe von Postfix-Komponenten abgewickelt.

Nachdem eine Nachricht empfangen und in der Queue abgelegt wurde, ruft der Queue-Manager den entsprechenden Delivery Agent auf, um die Zustellung der Nachtricht zu veranlassen.

Wie Nachtrichten in das Postfix-System gelangen

Nachtrichten können Postfix auf einem von vier Wegen erreichen:

  1. Eine Nachtricht kann lokal von Postfix akzeptiert werden (d.h. von einem Benutzer auf der gleichen Maschine gesendet werden).
  2. Eine Nachtricht kann von Postfix über das Netzwerk akzeptiert werden.
  3. Eine Nachtricht wurde von Postfix bereits über eine der anderen Möglichkeiten akzeptiert und wird an eine andere Adresse weitergeleitet (Forwarding).
  4. Postfix generiert selbst Meldungen, wenn es jemanden darüber informieren will, dass eine Mail nicht zugestellt werden konnte, oder dass die Zustellung verschoben werden musste.

Es gibt immer die Möglichtkeit, dass eine Nachtrict abgelehnt wird, bevor sie das Postfix-System erreicht, oder dass die Zustellung bei einigen Nachrichten verschoben wird.

Lokale E-Mail-Übertragung

Die verschiedenen Postfix-Komponenten arbeiten so zusammen, indem sie Nachtrichten in die Queue schreiben und aus dieser lesen. Der Queue-Manager ist für die Verwaltung der Nachrichten verantwortlich und muss die richtige Komponente benachrichtigen, wenn ein Job zu erledigen ist.

Lokale Nachtrichten werden mit Hilfe des postdrop-Befehls im maildrop-Verzeichnis des Postfix abgelegt, üblicherweise durch das sendmail-Kompatibilitätsprogramm.

Der pickup-Daemon liest die Nachricht aus der Queue und übergibt sie an den cleanup-Daemon.

Einige Nachrichten gehen ohne die Informationen ein, die für eine gültige E-Mail-Adresse notwendig sind. Neben allgeimener Prüfungen der Nachricht, die der cleanup-Daemon durchführt, fügt er zusammen mit dem trivial-rewrite-Daemon fehlende Nachrichten-Header ein, wandelt Adressen in das " Diese E-Mail-Adresse ist gegen Spam-Bots geschützt, du musst Javascript aktivieren, damit du sie sehen kannst " um und wandelt diese Adressen bei Bedarf noch basierend auf der kanonischen oder virtuellen Lookup-Tabelle um.

Der cleanup-Daemon verarbeitet alle internen Mails und benachrichtigt den Queue-Manager, nachdem die Nachricht in der eingehenden Queue (incoming) abgelegt wurde. Der Queue-Manager ruft dann den passenden Delivery Agent auf, um die Nachricht an den nächsten Hop oder an ihr ultimatives Ziel zu schicken.

E-mail aus dem Netzwerk

Über das Netzwerk empfangene Nachrichten werden vom Postfix-smtpd-Daemon entgegengenommen. Dieser Daemon führt allgemeine Prüfungen durch und kann so konfiguriert werden, dass es Clients erlaubt (oder aber verboten) ist, Mail über das System weiterzuversenden (Relaying).

Der smtpd-Daemon übergibt die Nachricht dann in der Queue für eingehende Mails (incoming) ablegt. Der Queue-Manager ruft dann den passenden Delivery Agent auf, um die Nachricht an den nächsten Hop oder an ihr ultimatives Ziel zu schicken.

Postfix-E-Mail-Benachrichtigungen

Wenn sich die Auslieferung einer Benutzer-Nachricht verzögert oder wenn die Zustellung unmöglich ist, dann verwendet Postfix die Daemons defer oder bounce, um eine neue Fehlermeldung zu erzeugen. Diese Fehlermeldung wird dann an den cleanup-Daemon übergeben. Dieser führt die üblichen Prüfungen durch, bevor die Fehlermeldung in der incoming-Queue abgelegt wird, wo sie dann vom Queue-Manager weiterverarbeitet wird.

E-Mail-Forwarding

Manchmal erkennt Postfix nach der Verarbeitung der E-Mail, dass die Zieladresse auf eine andere Adresse in einem anderen System verweist.
An diesen Punkt könnte die Nachricht einfach zur direkten Auslieferung an den SMTP-Client übergeben werden, aber um sicherzustellen, dass jeder Empfänger korrekt verarbeitet und protokolliert wird, sendet Postfix sie als neue Nachricht, so dass sie wie jede andere lokal übertragene Nachricht behandelt wird.

Die Postfix-Queue

Der Postifx-Queue-Manager erledigt den Grossteil der bei der Verarbeitung von E-Mail anfallenden Arbeit. Postfix-Komponenten, die E-Mail akzeptieren, haben letztendlich alle das Ziel, dass die E-Mail zum Queue-Manager gelangt. Das geschieht übr den cleanup-Daemon, der den Queue-Manager informiert, wenn er eine neue Nachricht in der Queue für eingehende E-Mails abgelegt hat. Sobald der Queue-Manager die Nachricht hat, verwendet er trivial-rewrite, um die Routing-Informationen zu bestimmen, die für den Transport zu verwendende Methode, den für die Zustellung notwendigen nächtsten host und die Adresse des Empfängers.

Der Queue-Manager verwaltet vier verschiedene Queues:
incoming, active, deferred und corrupt.

Nach dem ersten Cleanup ist die incoming-Queue der erste Halt für neue Nachrichten. Falls genug Systemressourcen vorhanden sind, verschiebt der Queue-Manager die Nachricht dann in die active-Queue und ruft danach einen der Delivery Agents (Zustelldienst) auf, um sie zuzustellen. Nicht zustellbare Nachrichten werden in die deferred-Queue verlagert.

Der Queue-Manager ist auch für die Zusammenarbeit mit den bounceund-defer-Daemons verantwortlich. Diese generieren Statusreports bei problembehafteten E-Mails, die dann zurück an den Absender oder an den Systemadministrator gehen. Diese Nachrichten enthält das Postfix-Spool-Verzeichnisse bounce und defer.

Diese Verzeichnisse enhalten Statusininfarmationen darüber, warum sich die Auslieferung einer Nachricht verzögert oder warum sie nicht zugestellt werden kann. Die bounce-und defer-Daemons verwenden die in diesen Verzeichnissen gespeicherten Informationen zur Generierung ihrer Benachrichtigungen.

Zustellung von E-Mail

Postfix verwendet das Konzept der Adressklassen, wenn es ermitteln muss, welche Ziele akzeptiert werden können und wie die Zustellung zu erfolgen hat.

Die Haupt-Adressklassen sind local, virtual alias, virtual mailbox und relay.

Zieladressen, die nicht in eine dieser Klassen fallen, werden über das Netzwerk durch den SMTP-Client zugestellt (wenn sie von einem autorisierten Client empfangen wurden).

In Abhängigkeit von der Adressklasse ruft der Queue-Manager den entsprechenenden Delivery Agent auf, der die Nachricht verarbeitet.

Lokale Zustellung

Der Delivery Agent local verarbeitet Mail von Benutzen mit einem Shell-Account auf dem System, auf dem Postfix läuft. Domainnamen für die lokale Auslieferung sind im Parameter mydestination aufgeführt.

Mail, die an einem Benutzer in einer der mydestination-Domains gerichtet ist, wird an den individuellen Shell-Account des Benutzers ausgeliefert. Im einfachsten Fall legt der lokale Delivery Agent die E-Mail im lokalen Nachrichtenspeicher ab. Er prüft auch die Aliase und die forward-Datei des Benutzers, um zu prüfen, ob lokale Nachrichten anderenorts auszuliefern sind.

Muss eine Nachricht an einem anderen Ort weitergeleitet werden, wird sie Postfix zur Zustellung an die neue Adresse erneut übergeben. Bei temporären Problemen mit der Auslieferung der Nachricht informiert der Delivery Agent den Queue-Manager, der die Nachricht für einen späteren Zustellunversuch markiert, und speichert sie in der deferred-Queue.

Permanente Probleme veranlassen den Queue-Manager dazu, die Nachricht zurück an den ursprünglichen Sender zu schicken.

Virtual-alias-Nachrichten

irtual-alias-Adressen werden alle an andere Adressen weitergeleitet. Domainnamen für virtuelle Aliases sind im virtual_alias_domains-Parameter (main .cf) aufgeführt. Jede Domain besitzt ihren eigenen Satz von Benutzern, die zwischen den Domains auch nicht identisch sein müssen. Benutzer und deren reale Adressen sind in Lookup-Tabellen enthalten, die im virtual_alias_maps-Parameter festgelegt werden. Von Virtual-alias-Adressen empfangene Nachrichten werden zur Auslieferung an die reale Adresse neu versendet.

Virtual-mailbox-Nachrichten

Der Delivery-Agent virtual verarbeitet Mail für virtual Mailbox-Adressen. Diese Mailboxen sind nicht mit bestimmten Shell-Accounts des Systems verknüpft. Domainnamen für virtuelle Mailboxen sind in virtual_mailbox_domains-Parameter aufgefürhrt. Jede Domain besitzt ihren eigenen Satz von Benutzern, die zwischen den Domains auch nicht identisch sein müssen. Benutzer und deren Mailbox-Dateien sind in Lookup-Tabellen enthalten, die im virtual_mailbox_maps-Parameter festgelegt werden.

Andere Nachrichten

Nachrichten, die nicht in eine dieser Adressklassen passen,, sind im Allgemeinen für andere Domains bestimmt, die an irgendeiner anderen Stelle im Netzwerk gehostet werden. Postfix akzeptiert solche Nachrichten nur von autorisierten Clients, wie etwa von Systemen, die im gleichen lokalen Netzwerk liegen. Muss eine Nachricht übr das Netzwerk zugestellt werden, ruft der Queue-Manager den smtp-Delivery Agent auf.

Der smtp-Agent bestimmt, welcher Host oder welche Hosts die Nachricht empfangen können, und stellt nacheinander die Verbindung zu jedem dieser Hosts her, bis einer die Verbindung akzeptiert. Bei temporären Problemen mit der Auslieferung der Nachricht informiert der Delivery Agent den Queue-Manager, der die Nachricht für einen späteren Zustellungsversuch markiert, und speichert sie in der deferred-Queue.

Permanente Probleme veranlassen den Queue-Manager dazu, die Nachricht zurück an den ursprünglichen Sender zu schicken.

Geht ein nicht verfügbares Zielsystem wieder online, achtet Postfix darauf, es nicht mit ausstehenden Nachrichten zu überschwemmen. Bei der Zustellung zurückgestellter oder neuer Nachrichten stellt Postifx zuerst nur eine beschränkte (konfigurierbare) Anzahl von Verbindungen mit dem empfangenden System her. Nachdem postfix bei einer bestimmten Site die erfolgreiche Zustellung beobachtet hat, erhöht es langsam (bis zu einer konfigurierbaren Grenze) die Schlagzahl. Gibt es aber Probleme bei der empfangenden Seite, stellt es die Zustellung sofort wieder ein.

Andere Delivery Agents

Es gibt andere Postfix-Delivery Agents, die so konfiguriert werden können, dass sie Nachrichten für eine bestimmte Klasse oder ein bestimmtes Ziel verarbeiten. Andere Delivery Agents müssen in der Datei ?etc/postfix/master.cf konfiguriert werden. Sie werden entweder durch den class_transport-Parameter aufgerufen oder durch einen Eintrag in einer Transporttabelle, die im transport_maps-Parameter aufgeführt ist. Zwei gängige Alternativen für Delivery Agents sind die lmtp-und pipe-Agenten.

Zustellung mittels LMTP

Das LMTP-Protokoll ähnelt SMTP, wird aber für die Zustellung von Mail-Systemen des gleichen Netzwerks verwendet. Muss eine Nachricht beispielsweise an ein anderes Softwarepaket übergeben werden, das auf der gleichen Maschine läuft, oder an ein anderes System im lokalen Netzwerk, dann ruft der Queue-Manager den lmtp-Delivery Agent auf.

Das gängigste Beispiel für den Einsatz von LMTP ist ein POP/IMAP-Server, der Nachrichten in einem proprietären Format speichert. (Erinnern Sie sich daran, dass es sich bei POP und IMAP um Protokolle handelt, mit deren Hilfe Benutzer ihre Nachrichten abrufen können.) In diesem Fall verwendet der POP/IMAP-Server ein eigenes proprietäres Format für die Speicherung von Nachrichten, weshalb Postfix den LMTP-Standard benutzt, um die Nachricht an den POP/IMAP-Server zu übergeben. Bei temporären Problemen mit der Auslieferung der Nachricht informiert der lmtp-Delivery Agent den Queue-Manager, der die Nachricht für einen späteren Zustellungsversuch markiert, und speichert sie in der deferred-Queue.

Pipe Delivery

Postfix bietet die Möglichkeit, Nachrichten durch den pipe-Daemon an andere Programme weiterzugeben. Der pipe-Daemon liefert Nachrichten an externe Befehle aus. Eine gaengige anwendung für den pipe-Daemon besteht in der Zustellung einer E-Mail an einen externen Filter oder ein anderes kommunikationsmedium wie etwa ein Faxgerät.

Bei Problemen mit der Auslieferung der Nachricht informiert der pipe-Delivery Agent den Queue-Manager, der die Nachricht für einen späteren Zustellungsversuch markiert, und speichert sie in der deferred-Queue.

Eine Nachricht durch Postfix verfolgen

MUA-Mail User AgenteMail-client software, die zum Schreiben, Senden und Abrufen von eMails verwendet wird. Versendet Nachrichten über einen MTA. Ruft Nachrichten aus einem Nachrichtenspeicher entweder direkt oder über einen POP/IMAP-Server ab.
MTA-Mail Transfer AgentServer, der eMails empfängt und ausliefert. Übernimmt das routing der nachrichten und ein eventuelles Umschreiben der Adresse. Lokal auszuliefernde eMails werden für die endgültige Zustellung an einen MDA übergeben.
MDA-Mail Delivery AgentEin Programm, das die endgültige Auslieferung ovn Nachrichten für die lokalen Empfänger eines Systems übernimmt. MDA's filtern oder kategorisieren Nachrichten häufig bei der Zustellung. Ein MDA könnte auch herausfinden, dass eine Nachricht an eine andere eMail-Adresse weitergeleitet werden muss.

HIER geht es zur Postfix-Übersicht, und DA geht es zurück zur Hauptseite

Letzte Aktualisierung ( Thursday, 10. May 2007 )
 
Weiter >

Scroll-news

Mailingliste:
http://mlists.in-berlin.de/mailman/listinfo/lieo-mlists.in-berlin.de 

 

Das Forum ist online gegangen

 


Who's Online

Aktuell 143 Gäste online

Google AdSense