Postfix/Interna: Unterschied zwischen den Versionen
K Textersetzung - „Kategorie:(.*):(.*)“ durch „Kategorie:/$1/$2“ |
K Textersetzung - „[[Kategorie:/“ durch „[[Kategorie:“ |
||
Zeile 543: | Zeile 543: | ||
Siehe [http://www.postfix.org/MAILLOG_README.html MAILLOG_README ]für Details und Einschränkungen. | Siehe [http://www.postfix.org/MAILLOG_README.html MAILLOG_README ]für Details und Einschränkungen. | ||
[[Kategorie: | [[Kategorie:Postfix/Architektur]] |
Version vom 28. März 2023, 10:39 Uhr
topic kurze Beschreibung
Beschreibung
Installation
Syntax
Parameter
Optionen
Umgebungsvariablen
Exit-Status
Konfiguration
Dateien
Anwendung
Sicherheit
Dokumentation
RFC
Man-Pages
Info-Pages
Siehe auch
Links
Projekt
Weblinks
Einzelnachweise
Testfragen
Testfrage 1
Testfrage 2
Testfrage 3
Testfrage 4
Testfrage 5
TMP
Postfix hinter den Kulissen
Die Artikel Postfix:Empfang und Postfix:Zustellung geben einen Überblick, wie Postfix-Server verarbeitet das Senden und Empfangen von E-Mails.
- Diese Serverprozesse verlassen sich auf andere Serverprozesse, die Dinge hinter den Kulissen tun.
- Der Text Im Folgenden wird versucht, jeden Dienst in seinem eigenen Kontext zu visualisieren.
- Wie Davor sind Namen gefolgt von einer Zahl Postfix-Befehle oder Server Programme, während nicht nummerierte Namen innerhalb schattierter Bereiche darstellen Postfix-Warteschlangen.
- Der residente Master(8) -Server ist der Supervisor, der behält ein Auge auf das Wohlergehen des Mailsystems Postfix.
- Es ist typisch beim Systemstart mit dem Befehl "postfix start" gestartet und läuft weiter, bis das System ausfällt.
- Der Master(8) -Server ist verantwortlich für das Starten von Postfix-Serverprozessen zum Empfangen und E-Mail-Zustellung und für den Neustart von Servern, die vorzeitig beendet werden wegen irgendwelchen problemen.
- Der Master(8) -Server ist ebenfalls verantwortlich zum Durchsetzen der Serverprozess-Zählerlimits, wie in der angegeben master.cf Konfigurationsdatei
- Das Bild unten gibt die Programmhierarchie beim Start von Postfix.
- Nur ein Teil der Post Verarbeitung von Daemon-Prozessen werden angezeigt.
postfix(1) | ||||||||||||
| | | ||||||||||||
Postfix-Skript(1) | ||||||||||||
|
| |
|
|||||||||||
postsuper(1) | Meister(8) | Postlog(1) | ||||||||||
|
| |
|
|||||||||||
smtpd(8) | qmgr (8) | lokal(8) |
- Der anvil(8) -Server implementiert die Client-Verbindung und Anforderungsrate Begrenzung für alle smtpd(8) -Server. Das TUNING_README Dokument bietet Anleitungen zum Umgang mit fehlerhaften SMTP-Clients. Das anvil(8) ist in Postfix Version 2.2 und höher verfügbar.
Netzwerk | -> | smtpd(8) | <-> | Amboss(8) |
- Die bounce(8) , defer(8) und trace(8) werden jeweils verwaltet ihre eigenen Warteschlangen-Verzeichnisbäume mit Protokolldateien pro Nachricht. Postfix verwendet diese Informationen beim Senden von „fehlgeschlagen“, „verzögert“ oder „erfolgreich“ Benachrichtigungen über den Zustellstatus an den Absender.
Der Trace(8) -Dienst implementiert auch die Unterstützung für Postfix "Mail senden -bv" und "sendmail -v" Befehle, die Berichte darüber erzeugen, wie Postfix liefert Mail und ist mit Postfix Version 2.1 verfügbar und später. Siehe DEBUG_README zum Beispiel.
aufräumen(8) | -> | qmgr (8) Postfix Warteschlange | -> | Lieferung Agenten | ||
^ | | | in | | in | ||||
(Nicht-) Lieferung Notiz | <- | prall(8) aufschieben(8) Spur(8) | <- | Warteschlange Ich würde, Empfänger, Status | ||
|
||||||
Pro- Botschaft logfiles |
- Die flush(8) -Server führen Protokolle pro Ziel und Implementieren Sie sowohl ETRN als auch "sendmail -qRdestination", wie beschrieben im ETRN_README . Dies verschiebt ausgewählte Warteschlangendateien aus die Warteschlange zurück zur eingehenden Warteschlange und fordert deren Lieferung. Der flush(8) -Dienst ist mit der Postfix-Version verfügbar 1.0 und höher.
eingehend ^ aufgeschoben | ||||||||||
^ | | ||||||||||
smtpd(8) sendmail(1) nach(1) | - | Ziel spülen | -> | bündig(8) | <- | Aufgeschoben Ziel, Warteschlange Ich würde | - | Lieferung Agenten, qmgr (8) | ||
|
||||||||||
Pro Ziel- nation Protokolle |
- Die Proxymap(8) -Server bieten Read-Only und Read-Write Tabellensuche Dienst für Postfix-Prozesse. Dies überwindet Chroot-Einschränkungen, reduziert die Anzahl der offenen Nachschlagetabellen, indem eine geöffnete gemeinsam genutzt wird Tabelle zwischen mehreren Prozessen und implementiert Single-Updater Tische.
- Der scache(8) -Server verwaltet den Verbindungs-Cache für der Postfix smtp(8) -Client. Wenn Verbindungscaching aktiviert ist für ausgewählten Zielen, trennt der SMTP(8) -Client die Verbindung nicht unmittelbar nach einer Mail-Transaktion, sondern gibt die Verbindung zu der Verbindungs-Cache-Server, der die Verbindung offen hält für a begrenzte Zeit. Der smtp(8) -Client fährt mit einigen fort andere E-Mail-Zustellungsanforderung. Inzwischen kann das jeder smtp(8) -Prozess Fragen Sie den scache(8) -Server nach dieser zwischengespeicherten Verbindung und verwenden Sie sie für die Postzustellung. Als Sicherheitsmaßnahme begrenzt Postfix die Anzahl wie oft eine Verbindung wiederverwendet werden kann.
Beim Zustellen von E-Mails an ein Ziel mit mehreren E-Mail-Servern Verbindungs-Caching kann helfen, einen nicht antwortenden Server zu überspringen, und damit die Lieferung drastisch beschleunigen. Zwischenspeichern von SMTP-Verbindungen ist in Postfix-Version 2.2 und höher verfügbar. Mehr Informationen zu dieser Funktion finden Sie im CONNECTION_CACHE_README .
/-- | SMTP(8) | --> | Internet | |||
qmgr (8) | | | | | v | |||||
\-- | SMTP(8) | |||||
^ | | ||||||
schach(8) |
Ein Postfix smtp(8) -Client kann eine TLS-verschlüsselte Verbindung wiederverwenden (mit " smtp_tls_connection_reuse = yes"). Dies kann stark reduzieren den Overhead des Verbindungsaufbaus und verbessert die Nachrichtenübermittlung Preise. Nachdem ein Postfix smtp(8) -Client eine Verbindung zu einem entfernten SMTP herstellt server und sendet Klartext-EHLO- und STARTTLS-Befehle, die smtp(8) Client fügt wie gezeigt einen tlsproxy(8) -Prozess in die Verbindung ein unter.
Nachdem die E-Mail-Transaktion abgeschlossen ist, wird der Postfix- smtp(8) -Client gibt die smtp(8) -to -tlsproxy(8) -Verbindung zum scache(8) Server, der die Verbindung für eine begrenzte Anzahl offen hält Zeit. Der smtp(8) -Client fährt mit einer anderen Mail-Zustellung fort Anfrage. Inzwischen kann jeder Postfix smtp(8) -Client den scache(8) Server für diese zwischengespeicherte Verbindung und verwenden Sie sie für die E-Mail-Zustellung erneut.
/-- | SMTP(8) | --> | tlsproxy(8) | --> | Internet | |||
qmgr (8) | | | | | v | |||||||
\-- | SMTP(8) | |||||||
^ | | ||||||||
schach(8) |
- Die showq(8) -Server listen den Status der Postfix-Warteschlange auf. Dies ist der Warteschlangenauflistungsdienst, der die Arbeit für mailq(1) erledigt und Postqueue(1) -Befehle.
Ausgabe | <- | mailq (1) Post- Warteschlange(1) | <- | showq(8) | <- | Postfix Warteschlange |
- Die spawn(8) -Server führen auf Anfrage Nicht-Postfix-Befehle aus, mit dem Client, der über Socket oder FIFO mit dem Befehl verbunden ist Standard-Eingabe-, Ausgabe- und Fehlerströme. Sie finden Beispiele für seine Verwendung im SMTPD_POLICY_README .
- Der tlsmgr(8) -Server wird ausgeführt, wenn TLS (Transport Layer Sicherheit, früher bekannt als SSL) ist in Postfix smtp(8) aktiviert Client oder smtpd(8) -Server. Dieser Prozess hat zwei Aufgaben:
- Pflegen Sie den Pseudo-Zufallszahlengenerator (PRNG). wird verwendet, um die TLS-Engines im Postfix smtp(8) -Client oder smtpd(8) Serverprozesse. Der Zustand dieses PRNG wird periodisch gespeichert eine Datei und wird gelesen, wenn tlsmgr(8) startet.
- Pflegen Sie den optionalen Postfix smtp(8) -Client oder smtpd(8) Server-Caches mit TLS-Sitzungsschlüsseln. Gespeicherte Schlüssel können sich verbessern Leistung durch Reduzierung der Berechnungsmenge zu Beginn von eine TLS-Sitzung.
TLS-Unterstützung ist in Postfix Version 2.2 und höher verfügbar. Informationen zur Postfix-TLS-Implementierung finden Sie in TLS_README dokumentieren.
Netzwerk -> | smtpd(8) | <---Samen--- <-Sitzung-> | tlsmgr(8) | ---Samen---> <-Sitzung-> | SMTP(8) | -> Netzwerk | |||||||||||
|
| |
|
||||||||||||||||
smtpd Sitzung Zwischenspeicher | PRNG Zustand Datei | smtp Sitzung Zwischenspeicher |
- Der verify(8) -Server überprüft, ob es sich um einen Absender oder Empfänger handelt Adresse zustellbar ist, bevor der smtpd(8) -Server sie akzeptiert. Das Der verify(8) -Server fragt einen Cache mit den Ergebnissen der Adressüberprüfung ab. Wenn kein Ergebnis gefunden wird, fügt der verify(8) -Server eine Sonde ein Nachricht in die Postfix-Queue und verarbeitet die Statusaktualisierung ab ein Zustellungsagent oder Warteschlangenmanager. Dieser Vorgang ist in der ADDRESS_VERIFICATION_README dokumentieren. Der Verify(8) -Dienst ist mit der Postfix-Version verfügbar 2.1 und höher.
-> | Sonde Botschaft | -> | Postfix Post Warteschlange | |||||||
Netzwerk | -> | smtpd(8) | <-> | verifizieren(8) | ||||||
| in | ||||||||||
<- | Sonde Status | <- | Postfix Lieferung Agenten | -> Lokal -> Netzwerk | ||||||
^ | in | ||||||||||
Adresse Überprüfung Zwischenspeicher |
- Der postscreen(8) -Server kann Postfix "vor" gestellt werden smtpd(8) -Prozesse. Sein Zweck ist es, Verbindungen von der zu akzeptieren Netzwerk und um zu entscheiden, mit welchen SMTP-Clients kommuniziert werden darf Postfix. Laut dem Jahresbericht 2008 von MessageLabs sind 81 % der alle E-Mails waren Spam und 90 % davon wurden von Botnets gesendet; bis 2010, diese Zahlen waren 92 % bzw. 95 %. Während Postscreen(8) hält die Zombies fern, es bleiben mehr smtpd(8) -Prozesse verfügbar für seriöse Kunden.
postscreen(8) verwaltet eine temporäre Zulassungsliste für Clients, die seine Tests bestehen; indem zugelassenen Clients erlaubt wird, Tests zu überspringen, postscreen(8) minimiert seine Auswirkungen auf den legitimen E-Mail-Verkehr.
Der postscreen(8) -Server ist mit Postfix 2.8 und verfügbar später. Um die Implementierung einfach zu halten, postscreen(8) -Delegates DNS Allow/Denylist-Lookups für dnsblog(8)-Serverprozesse und delegiert die TLS-Kryptografie/Entschlüsselung an tlsproxy(8)-Serverprozesse . Diese Delegierung ist für den Remote-SMTP-Client unsichtbar.
Zombie | ||||||||
\ | ||||||||
Zombie | - | tlsproxy(8) | - | - | smtpd(8) | |||
\ | / | |||||||
Sonstiges | --- | Postscreen(8) | ||||||
/ | \ | |||||||
Sonstiges | - | - | smtpd(8) | |||||
/ | ||||||||
Zombie |
- Der postlogd(8) -Server bietet eine Alternative zu Syslog Protokollierung, die die Standardeinstellung bleibt. Diese Funktion ist verfügbar mit Postfix Version 3.4 oder höher und unterstützt die folgenden Modi:
- Protokollierung in Datei, die ein Usability-Problem mit adressiert MacOS und eliminiert Informationsverluste, die durch systemd-Ratenbegrenzungen verursacht werden.
Befehle oder Dämonen | |||||
-> | postlogd(8) | -> | /Pfad/zur/Datei | ||
- Protokollierung auf stdout, wodurch eine Syslog-Abhängigkeit beseitigt wird wenn Postfix in einem Container läuft.
Befehle oder Dämonen | stdout geerbt von "postfix start-fg" | |||
-> | postlogd(8) | -> | ||
Siehe MAILLOG_README für Details und Einschränkungen.