Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
centos:mail_c7:mta_1 [08.10.2014 13:54. ] – [local] django | centos:mail_c7:mta_1 [18.11.2024 19:10. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
{{: | {{: | ||
- | Die nachfolgende Beschreibung zeigt, wie man unter CentOS 7.x einen Postfix-Mailserver **MTA**((**M**ail **T**ransport **A**gent)) aufsetzen und sicher betreiben kann. | + | Die nachfolgende Beschreibung zeigt, wie man unter CentOS 7.x einen Postfix-Mailserver **MTA**((**M**ail **T**ransport **A**gent)) aufsetzen und sicher betreiben kann. Die Installation und Konfiguration des aktuellen stable Release **Postfix 3.x** wird nachfolgend ab __**[[centos: |
<WRAP round important> | <WRAP round important> | ||
Zeile 21: | Zeile 21: | ||
Bevor wir uns in das Design und Konfiguration unseres Mailservers stürzen, werfen wir noch einen Blick auf die (möglichen) Mitspieler in Form von Servern, Diensten, Protokolle und Ports, die uns beim Verarbeiten der elektronischen begegnen werden. | Bevor wir uns in das Design und Konfiguration unseres Mailservers stürzen, werfen wir noch einen Blick auf die (möglichen) Mitspieler in Form von Servern, Diensten, Protokolle und Ports, die uns beim Verarbeiten der elektronischen begegnen werden. | ||
- | < | + | <uml> |
skinparam defaultFontName Courier | skinparam defaultFontName Courier | ||
- | state " | + | state " |
state "MUA (Mail User Agent)" | state "MUA (Mail User Agent)" | ||
sender : Anwender erstellt eine Nachricht | sender : Anwender erstellt eine Nachricht | ||
Zeile 33: | Zeile 33: | ||
state " | state " | ||
dns_anfragen : │ | dns_anfragen : │ | ||
- | dns_anfragen : ├-- (Reverse) Auflösen einer IP-Adresse | + | dns_anfragen : ├── |
dns_anfragen : │ zu einem Hostnamen | dns_anfragen : │ zu einem Hostnamen | ||
- | dns_anfragen : ├-- Abfrage des zuständigen Mailservers | + | dns_anfragen : ├── |
dns_anfragen : │ zu einer Domäne | dns_anfragen : │ zu einer Domäne | ||
- | dns_anfragen : └-- Auflösen von Hostnamen zu IP-Adressen | + | dns_anfragen : └── |
dns_anfragen : . | dns_anfragen : . | ||
} | } | ||
Zeile 119: | Zeile 119: | ||
note left of sender | note left of sender | ||
=========================================== | =========================================== | ||
- | From: django@mailserver.guru | + | From: django@nausch.org |
To: michael@nausch.org | To: michael@nausch.org | ||
Subject: Terminbestätigung | Subject: Terminbestätigung | ||
Zeile 137: | Zeile 137: | ||
==== Beschreibung ==== | ==== Beschreibung ==== | ||
- | Wie wir der oben stehenden Skizze entnehmen können, sind im Verlauf einer eMail-Verarbeitung viele Mailsysteme und Dienste/ | + | Wie wir der oben stehenden Skizze entnehmen können, sind im Verlauf einer eMail-Verarbeitung viele Mailsysteme und Dienste/ |
Zuerst wollen wr aber noch einen gezielten Blick auf die Begrifflickeiten, | Zuerst wollen wr aber noch einen gezielten Blick auf die Begrifflickeiten, | ||
Zeile 176: | Zeile 176: | ||
===== Daemone, Queues und Dienste ===== | ===== Daemone, Queues und Dienste ===== | ||
- | Zum besseren Verständnis der einzelnen | + | Bevor wir uns nun mit den einzelnen |
- | <uml width=910 title=" | + | {{page>centos: |
- | state " | + | Welche Aufgaben und Funktionen die einzelnen Dienste mitbringen wollen wir uns kurz befassen. |
- | qmqp : QMQP-Modul | + | ==== master ==== |
+ | Die Steuerung der in der obigen Übersichtskizze dargestellten Daemone und Module erfolgt mit Hilfe des **master**-Daemon, | ||
- | state "/ | + | Weitere Hinweise zum **master**-Daemon findet man in dessen **manpage**. |
- | sendmail : Postfix | + | # man 5 master |
- | sendmail : " | + | < |
- | state "MTA - MTA Verkehr" | + | NAME |
- | smtp_in : TCP/ | + | master |
- | state "MUA - MSA Verkehr" | + | DESCRIPTION |
- | submission : TCP/IP - Port 587 | + | The Postfix |
+ | mands that are invoked by users, and by a larger number of services that run in | ||
+ | the background. | ||
- | state " | + | |
- | lmtp_24 : (Mail Delivery Agent) | + | ground under control of the master(8) process. |
- | lmtp_24 : Dovecot IMAP-Server | + | defines how a client program connects to a service, and what daemon program runs |
- | lmtp_24 : TCP/ | + | when a service is requested. |
+ | nate voluntarily after serving max_use clients, or after inactivity for max_idle | ||
+ | or more units of time. | ||
- | state " | + | All daemons specified here must speak a Postfix-internal protocol. In order to |
- | smtp_25 : (Mail Transport Agent) | + | execute |
- | smtp_25 : andere SMTP-Server | + | run the server under control by inetd(8) or equivalent. |
- | smtp_25 : im Internet bzw. Intranet | + | |
- | smtp_25 : TCP/IP - Port 25 | + | |
- | state "Mailman" | + | After changing master.cf you must execute |
- | mailman : Weitergabe der eMail | + | uration. |
- | mailman : an Mailinglisten / wie Mailman | + | |
- | mailman : oder via UUCP ... | + | |
- | state " | + | SYNTAX |
- | mailbox : Postfix - Queue | + | The general format of the master.cf file is as follows: |
- | mailbox : " | + | |
- | mailbox | + | |
- | state master { | + | |
- | state " | + | first non-whitespace character is a `#'. |
- | | + | |
- | state " | + | |
- | pickup : └── pickup | + | whitespace continues a logical line. |
- | state " | + | |
- | | + | |
+ | specify | ||
+ | Otherwise, the order of master.cf service definitions does not matter. | ||
- | | + | Each logical line consists of eight fields separated by whitespace. |
- | postscreen : └── | + | |
- | state "Daemon" | + | |
- | | + | used. For boolean fields specify " |
- | state " | + | |
- | | + | The service name syntax depends on the service type as described next. |
- | + | ||
- | state " | + | |
- | scache: └── | + | |
- | + | ||
- | state " | + | |
- | qmqpd: └── | + | |
- | state " | + | |
- | | + | |
- | + | ||
- | state " | + | |
- | cleanup : └── cleanup | + | |
- | + | ||
- | state " | + | |
- | rewrite : └── trivial-rewrite | + | |
- | | + | inet |
- | bounce : ├── bounce | + | network. |
- | bounce : ├── defer | + | |
- | | + | |
- | state " | + | |
- | | + | port on which new connections should be accepted. |
- | + | (and colon) | |
- | | + | symbolic form (host or service |
- | | + | address |
- | + | | |
- | state "Queue" | + | |
- | hold : └── hold | + | |
- | state " | + | |
- | corrupt | + | via the loopback interface only; and a service named 10025 accepts |
- | | + | connections on TCP port 10025 via all interfaces |
- | | + | the inet_interfaces parameter. |
- | active : └── active | + | |
- | + | ||
- | state " | + | |
- | deferred : └── deferred | + | |
- | state "Daemon" | + | |
- | | + | = loopback-only" |
+ | | ||
- | | + | unix |
- | | + | local clients only. |
- | state " | + | The service name is a pathname |
- | local : └── local | + | |
- | + | tion parameter in main.cf). | |
- | state " | + | |
- | pipe : └── pipe | + | |
- | state " | + | On Solaris 8 and earlier systems the unix type is implemented with |
- | lmtp : └── lmtp | + | streams sockets. |
- | + | ||
- | state " | + | |
- | smtp_out : └── smtp | + | |
- | } | + | |
- | smtp_in -down-> smtpd | + | fifo |
- | submission --> smtpd | + | local clients only. |
- | qmqp -right-> qmqpd | + | The service name is a pathname |
- | sendmail -down-> maildrop | + | directory (pathname controlled with the queue_directory configura‐ |
- | maildrop --> pickup | + | tion parameter in main.cf). |
- | anvil --> smtpd | + | pass The service listens on a UNIX-domain socket, and is accessible |
- | verify -right-> smtpd | + | local clients only. It receives one open connection (file descrip‐ |
- | tlsmgr -up-> smtpd | + | tor passing) per connection request. |
- | | + | |
- | qmqpd --> cleanup | + | The service name is a pathname |
- | | + | directory (pathname controlled with the queue_directory configura‐ |
- | | + | tion parameter in main.cf). |
- | cleanup --> incoming | + | |
- | rewrite -left-> cleanup | + | |
- | | + | On Solaris 8 and earlier systems the pass type is implemented with |
- | qmgr --> deferred | + | streams sockets. |
- | qmgr --> active | + | |
- | qmgr --> hold | + | |
- | qmgr --> corrupt | + | |
- | | + | |
- | | + | |
- | qmgr --> local | + | |
- | qmgr -right-> smtp_out | + | |
- | qmgr --> pipe | + | |
- | qmgr --> lmtp | + | |
- | qmgr -left-> virtual | + | |
- | | + | |
- | lmtp --> lmtp_24 | + | This feature is available as of Postfix version 2.5. |
- | | + | |
- | | + | |
- | pipe --> mailman | + | |
- | local --> mailbox | + | |
+ | | ||
+ | Whether | ||
+ | inet) services can't be private. | ||
- | note right of cleanup | + | |
- | | + | |
- | Übersetzungstabelle zum | + | |
- | Umschreiben von nicht-lokalen | + | tion variable in the main.cf file). |
- | | + | |
- | end note | + | |
+ | The local(8), pipe(8), spawn(8), and virtual(8) | ||
+ | leges. | ||
- | note right of cleanup | + | |
- | | + | |
- | Tabelle mit der Empfängeradresse | + | |
- | aller lokalen, virtuellen und | + | the main.cf file). |
- | | + | |
- | end note | + | |
- | note right of smtpd | + | Chroot |
- | | + | |
- | | + | so defeats most of the purpose of having that service in the first place. |
- | von einliefernden Hosts | + | |
- | reverse DNS-Abfrage z.B. | + | |
- | bei SPAMHAUS | + | |
- | end note | + | |
+ | The files in the examples/ | ||
+ | archive show set up a Postfix chroot environment on a variety of systems. | ||
+ | See also BASIC_CONFIGURATION_README for issues related to running daemons | ||
+ | chrooted. | ||
- | note left of smtpd | + | Wake up time (default: 0) |
- | | + | Automatically wake up the named service after the specified |
- | Lookup Table access_helo | + | |
- | Lookup Table access_recipient | + | |
- | Lookup Table access_recipient-rfc | + | |
- | Lookup Table access_sender | + | is used. Specify 0 for no automatic wake up. |
- | | + | |
- | an Hand der IP-Adrese, Hostname, | + | |
- | | + | |
- | end note | + | |
- | note left of resolve | + | The pickup(8), qmgr(8) and flush(8) daemons require a wake up timer. |
- | Lookup Table transport_maps | + | |
- | Tabelle zur adressabhängigen | + | |
- | Weiterleitung an einen | + | |
- | weiteren | + | |
- | end note | + | |
- | note right of local | + | |
- | Lookup Table / | + | The maximum number |
- | | + | |
- | an lokale Empfänger zugewiesen | + | |
- | werden können. | + | |
- | end note | + | |
- | note left of local | + | NOTE: Some Postfix services must be configured as a single-process ser‐ |
- | Lookup Table .forward | + | vice (for example, qmgr(8)) and some services must be configured with no |
- | | + | |
- | | + | |
- | end note | + | |
- | note left of qmgr | + | |
- | | + | The command to be executed. |
- | Tabelle zum Umschreiben | + | |
- | von eMailadressen | + | used to protect arguments containing whitespace. |
- | | + | |
- | end note | + | |
- | note left of qmgr | + | The command name is relative to the Postfix daemon directory (pathname is |
- | | + | |
- | Tabelle für die Bounce-Nachrichten | + | |
- | mit Angabe der neuen eMailadresse | + | |
- | bei verzogenen Accounts. | + | |
- | end note | + | |
- | </ | + | |
- | Welche Aufgaben und Funktionen die einzelnen Dienste mitbringen wollen wir uns kurz befassen. | + | The command |
- | ==== master ==== | + | |
- | Die Steuerung der in der obigen Übersichtskizze dargestellten Daemone und Module erfolgt mit Hilfe des **master**-Daemon, | + | |
- | ==== lmtp, smtp und smtps ==== | + | The following command-line options have the same effect |
+ | programs: | ||
+ | |||
+ | -D | ||
+ | | ||
+ | | ||
+ | |||
+ | -o name=value | ||
+ | | ||
+ | value can refer to other parameters as $name etc., just like in | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | / | ||
+ | | ||
+ | -o smtpd_mumble=$submission_mumble | ||
+ | |||
+ | / | ||
+ | | ||
+ | |||
+ | NOTE 2: Over-zealous use of parameter overrides makes the Postfix | ||
+ | | ||
+ | | ||
+ | fix, instead of configuring multiple personalities via master.cf. | ||
+ | |||
+ | -v | ||
+ | make a Postfix daemon process increasingly verbose. | ||
+ | |||
+ | SEE ALSO | ||
+ | | ||
+ | | ||
+ | |||
+ | README FILES | ||
+ | Use " | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | LICENSE | ||
+ | The Secure Mailer license must be distributed with this software. | ||
+ | |||
+ | AUTHOR(S) | ||
+ | | ||
+ | | ||
+ | Lund Institute of Technology | ||
+ | | ||
+ | |||
+ | | ||
+ | IBM T.J. Watson Research | ||
+ | P.O. Box 704 | ||
+ | | ||
+ | |||
+ | MASTER(5) | ||
+ | </ | ||
+ | ==== lmtp, smtp, smtps und relay ==== | ||
Der **smtp**-Client wird benutzt, um Nachrichten an vom Postfix zu anderen SMTP/ | Der **smtp**-Client wird benutzt, um Nachrichten an vom Postfix zu anderen SMTP/ | ||
Nach der erfolgreichen Übertragung der Nachricht, kann eine Verbindung an den **[[centos: | Nach der erfolgreichen Übertragung der Nachricht, kann eine Verbindung an den **[[centos: | ||
Zeile 3701: | Zeile 3696: | ||
</ | </ | ||
==== dnsblog ==== | ==== dnsblog ==== | ||
- | Der **dnsblog**-Daemon implementiert | + | Der **dnsblog**-Daemon implementiert |
Weitere Hinweise findet man in der manpage zum dnsblog-Daemon. | Weitere Hinweise findet man in der manpage zum dnsblog-Daemon. | ||
Zeile 5645: | Zeile 5640: | ||
</ | </ | ||
==== bounce, defer, trace ==== | ==== bounce, defer, trace ==== | ||
- | FIXME | + | Die drei Daemons **bounce**, **defer** und **trace** bilden zwei wesentliche Funktionen des MTA ab. Zum einen verständigen diese bei Bedarf einen Absender, sofern seine eMail zugestellt wurde, verzögert zugestellt oder eben nicht zugestellt werden konnte. Dazu stehen diese Daemons in direktem Kontakt mit dem **[[centos: |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | Weitere Hinweise findet man zu den drei Daemons in der **manpage** von **bounce**. | ||
# man 8 bounce | # man 8 bounce | ||
Zeile 6021: | Zeile 6009: | ||
==== flush ==== | ==== flush ==== | ||
+ | Der **flush**-Daemon verwaltet die Nachrichten in der // | ||
- | + | Weitere Hinweise zum **flush**-Daemon findet man in dessen **manpage**. | |
- | + | ||
- | + | ||
- | FIXME | + | |
- | + | ||
# man 8 flush | # man 8 flush | ||
Zeile 6186: | Zeile 6170: | ||
</ | </ | ||
==== proxymap, proxywrite ==== | ==== proxymap, proxywrite ==== | ||
- | FIXME | + | Der **proxymap**-Daemon stellt anderen Postix-Prozessen // |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | Zusätzliche informationen zum **proxymap/ | ||
# man 8 proxymap | # man 8 proxymap | ||
< | < | ||
Zeile 6392: | Zeile 6371: | ||
==== showq ==== | ==== showq ==== | ||
- | FIXME | + | Der **showq**-Daemon zeigt den Inhalt der Mailqueue an und wird von dem Shell-Scrip **mailq** angesprochen. |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | Weitere Hinweise zum **showq**-Daemon entnimmt man dessen **manpage**. | ||
# man 8 showq | # man 8 showq | ||
Zeile 6506: | Zeile 6481: | ||
| | ||
</ | </ | ||
+ | |||
==== error, retry ==== | ==== error, retry ==== | ||
+ | Der // | ||
- | + | Weitere Hinweise zum Delivery-Agent **error** findet man in dessen **manpage**. | |
- | + | ||
- | + | ||
# man 8 error | # man 8 error | ||
Zeile 6638: | Zeile 6612: | ||
==== discard ==== | ==== discard ==== | ||
- | FIXME | + | Der // |
- | + | ||
+ | Weitere Hinweise entnimmt man bei Bedarf der **manpage** des **discard**-Daemon. | ||
Zeile 6762: | Zeile 6735: | ||
==== local ==== | ==== local ==== | ||
- | Der **local**-Daemon, | + | Der **local**-Daemon, |
- | + | ||
- | Im Gegensatz zum // | + | |
Weitere Hinweise findet man in der ausführlichen **manpage** vom **local**-agent. | Weitere Hinweise findet man in der ausführlichen **manpage** vom **local**-agent. | ||
Zeile 7330: | Zeile 7301: | ||
==== virtual ==== | ==== virtual ==== | ||
- | Der // | + | Der // |
# man 8 virtual | # man 8 virtual | ||
Zeile 7614: | Zeile 7585: | ||
==== anvil ==== | ==== anvil ==== | ||
- | Der **anvil**-Daemon sammelt | + | Der **anvil**-Daemon sammelt |
- | Mit Hilfe der Verbindungsdaten von Client-Verbindungen und Client-Anfragen, die der **anvil**-Daemon sammelt, | + | |
Konfigurationsdetails und weitere Informationen findet man in der **manpage** des **anvil**-Daemon. | Konfigurationsdetails und weitere Informationen findet man in der **manpage** des **anvil**-Daemon. | ||
Zeile 7983: | Zeile 7953: | ||
Die wesentlichen Anforderungen an unsere eigene Mailinfrastruktur sind: | Die wesentlichen Anforderungen an unsere eigene Mailinfrastruktur sind: | ||
- Es werden nur noch eMails angenommen, die auch zugestellt werden können; d.h. unerwünschte bzw. unerlaubte Nachrichten werden geblockt (mit einem Returncode von 5xx abgewiesen). | - Es werden nur noch eMails angenommen, die auch zugestellt werden können; d.h. unerwünschte bzw. unerlaubte Nachrichten werden geblockt (mit einem Returncode von 5xx abgewiesen). | ||
- | - der Transportweg zwischen den MTAs((**M**ail **T**ransport **A**gent: z.B. Postfix, Exim oder Sendmail)) wird SSL-verschlüsselt, | + | - der Transportweg zwischen den MTAs((**M**ail **T**ransport **A**gent: z.B. Postfix, Exim oder Sendmail)) wird TLS-verschlüsselt, |
- der Transportweg zwischen MUA((**M**ail **U**ser **A**gent: z.B. kMail, Thunderbird oder R2Mail2)) muss zwingend transportverschlüsselt werden. | - der Transportweg zwischen MUA((**M**ail **U**ser **A**gent: z.B. kMail, Thunderbird oder R2Mail2)) muss zwingend transportverschlüsselt werden. | ||
- Nachrichten von MUAs werden ausschließlich auf dem Submissionport **587** angenommen. | - Nachrichten von MUAs werden ausschließlich auf dem Submissionport **587** angenommen. | ||
Zeile 7989: | Zeile 7959: | ||
- abgehende eMails werden mit einer DKIM-Signatur versehen, mit der der Empfänger (MTA) prüfen kann, ob die eMail auch von unserem Mailserver versandt wurde. Somit wird zB. die Reputation gegenüber AOL gesteigert, da dieser ISP eine valide DKIM-Signatur positiv bewertet. | - abgehende eMails werden mit einer DKIM-Signatur versehen, mit der der Empfänger (MTA) prüfen kann, ob die eMail auch von unserem Mailserver versandt wurde. Somit wird zB. die Reputation gegenüber AOL gesteigert, da dieser ISP eine valide DKIM-Signatur positiv bewertet. | ||
- Für den ersten Grob-Viren-/ | - Für den ersten Grob-Viren-/ | ||
- | - Die zweite Prüfung erfolgt mit Unterstützung des [[centos: | + | - Die zweite Prüfung erfolgt mit Unterstützung des [[centos: |
- Eine weitere Prüfung auf erfolgt mit Hilfe von RBHL((**R**ealtime**B**lack**H**ole**L**ists)) von [[http:// | - Eine weitere Prüfung auf erfolgt mit Hilfe von RBHL((**R**ealtime**B**lack**H**ole**L**ists)) von [[http:// | ||
+ | - Die Möglichkeit, | ||
- Die SPAM-Bewertung der Nachrichten selbst erfolgt mit Hilfe von [[http:// | - Die SPAM-Bewertung der Nachrichten selbst erfolgt mit Hilfe von [[http:// | ||
- | - Den dritten Teil unserer mehrstufigen Antivirenschutzmaßnahmen (1. Stufe: | + | - Den dritten Teil unserer mehrstufigen Antivirenschutzmaßnahmen (1. Stufe: |
<WRAP center round todo > | <WRAP center round todo > | ||
FIXME die Punkte **SRS**, **SPF**, **DKIM** und **DMARC** noch bei der Ausgestaltung der " | FIXME die Punkte **SRS**, **SPF**, **DKIM** und **DMARC** noch bei der Ausgestaltung der " | ||
</ | </ | ||
+ | |||
+ | ===== weitere Schritte zur Installation und Konfiguration ===== | ||
+ | Nachdem wir uns nun eingehend mit dem **[[centos: | ||
+ | |||
+ | Die Installation und Konfiguration des aktuellen stable Release **Postfix 3.x** wird nachfolgend ab __**[[centos: | ||
+ | |||
+ | ====== Links ====== | ||
+ | * **⇒ [[centos: | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||