Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
centos:mail_c7:mta_1 [09.10.2014 13:40. ] – [Daemone, Queues und Dienste] 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 178: | Zeile 178: | ||
Bevor wir uns nun mit den einzelnen Modulen, Daemons und/oder Delivery-Agents befassen, werfen wir zum besseren Verständnis dieser Komponenten erst einfach mal einen Blick unter die Motorhaube unseres 12-Zylinders. ;) | Bevor wir uns nun mit den einzelnen Modulen, Daemons und/oder Delivery-Agents befassen, werfen wir zum besseren Verständnis dieser Komponenten erst einfach mal einen Blick unter die Motorhaube unseres 12-Zylinders. ;) | ||
- | <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. |
- | dnsblog : └── | + | |
- | state "Daemon" | + | |
- | | + | used. For boolean fields specify " |
- | state " | + | |
- | | + | The service name syntax depends on the service type as described next. |
- | state " | + | |
- | | + | |
- | | + | inet |
- | tlsmgr: └── | + | network. |
- | + | ||
- | state " | + | |
- | scache: └── | + | |
- | + | ||
- | state " | + | |
- | qmqpd: └── | + | |
- | state " | + | |
- | | + | port on which new connections should be accepted. |
+ | | ||
+ | | ||
+ | | ||
+ | " | ||
- | state " | + | |
- | error : ├── error | + | via the loopback interface only; and a service named 10025 accepts |
- | error : └── retry | + | connections on TCP port 10025 via all interfaces |
- | + | the inet_interfaces parameter. | |
- | | + | |
- | virtual: └── | + | |
- | + | ||
- | state " | + | |
- | cleanup : └── cleanup | + | |
- | state "Daemon" | + | |
- | showq : └── | + | = loopback-only" |
- | + | address information in master.cf or in main.cf. | |
- | state " | + | |
- | rewrite : └── trivial-rewrite | + | |
- | | + | unix |
- | bounce : ├── bounce | + | local clients only. |
- | | + | |
- | bounce : └── trace | + | |
- | state " | + | The service name is a pathname |
- | smtpd : └── smtpd | + | directory (pathname controlled with the queue_directory configura‐ |
- | + | tion parameter in main.cf). | |
- | state " | + | |
- | incoming : └── incoming | + | |
- | + | ||
- | state " | + | |
- | hold : └── hold | + | |
- | state " | + | On Solaris 8 and earlier systems the unix type is implemented with |
- | | + | streams sockets. |
- | + | ||
- | state " | + | |
- | active : └── active | + | |
- | + | ||
- | state " | + | |
- | deferred : └── deferred | + | |
- | | + | fifo |
- | qmgr : └── qmgr | + | local clients only. |
- | state " | + | The service name is a pathname |
- | flush : └── flush | + | |
+ | tion parameter in main.cf). | ||
- | | + | pass |
- | resolve : └── resolve | + | local clients only. It receives one open connection (file descrip‐ |
+ | tor passing) per connection request. | ||
- | 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 pass type is implemented with |
- | lmtp : └── lmtp | + | streams sockets. |
- | + | ||
- | state " | + | |
- | smtp_out : └── smtp | + | |
- | state " | + | This feature is available |
- | proxymap : ├── proxymap | + | |
- | proxymap : └── proxywrite | + | |
- | } | + | |
- | smtp_in -down-> smtpd | + | |
- | submission --> smtpd | + | Whether |
+ | inet) services can't be private. | ||
- | qmqp -right-> qmqpd | + | |
- | sendmail -down-> maildrop | + | Whether the service runs with root privileges or as the owner of the |
- | maildrop --> pickup | + | |
+ | tion variable in the main.cf file). | ||
- | anvil --> smtpd | + | The local(8), pipe(8), spawn(8), and virtual(8) |
- | | + | |
- | | + | |
- | | + | |
- | postscreen --> smtpd | + | |
- | qmqpd --> cleanup | + | |
- | smtpd --> cleanup | + | |
- | | + | |
- | | + | the main.cf file). |
- | | + | |
- | | + | |
- | + | ||
- | incoming --> qmgr | + | |
- | qmgr --> deferred | + | |
- | qmgr --> active | + | |
- | qmgr --> hold | + | |
- | qmgr --> corrupt | + | |
- | | + | |
- | | + | |
- | qmgr --> local | + | |
- | qmgr -right-> smtp_out | + | |
- | qmgr --> pipe | + | |
- | qmgr --> lmtp | + | |
- | qmgr -left-> virtual | + | |
- | | + | |
- | error --> qmgr | + | |
- | flush --> qmgr | + | |
- | showq --> qmgr | + | |
- | | + | |
- | lmtp --> lmtp_24 | + | Chroot |
- | smtp_out --> smtp_25 | + | |
- | smtp_out -up-> tlsmgr | + | so defeats most of the purpose of having that service in the first place. |
- | pipe --> mailman | + | |
- | local --> mailbox | + | |
+ | 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 right of cleanup | + | Wake up time (default: 0) |
- | | + | Automatically wake up the named service after the specified |
- | Übersetzungstabelle zum | + | |
- | | + | |
- | | + | |
- | end note | + | is used. Specify 0 for no automatic wake up. |
+ | The pickup(8), qmgr(8) and flush(8) daemons require a wake up timer. | ||
- | note right of cleanup | + | |
- | Lookup Table virtual_maps | + | The maximum number |
- | Tabelle mit der Empfängeradresse | + | |
- | aller lokalen, virtuellen und | + | |
- | entfernten eMialadressen | + | |
- | end note | + | |
- | note right of smtpd | + | NOTE: Some Postfix services must be configured as a single-process ser‐ |
- | Realtime Blockhole Lists | + | vice (for example, qmgr(8)) and some services must be configured with no |
- | | + | |
- | | + | |
- | reverse DNS-Abfrage z.B. | + | |
- | bei SPAMHAUS | + | |
- | end note | + | |
+ | | ||
+ | The command to be executed. | ||
+ | such as ">" | ||
+ | used to protect arguments containing whitespace. | ||
- | note left of smtpd | + | The command name is relative to the Postfix daemon directory (pathname is |
- | | + | |
- | Lookup Table access_helo | + | |
- | Lookup Table access_recipient | + | |
- | Lookup Table access_recipient-rfc | + | |
- | Lookup Table access_sender | + | |
- | Tabellen zum Black- und Whitelisten | + | |
- | an Hand der IP-Adrese, Hostname, | + | |
- | Empfänger oder Sender | + | |
- | end note | + | |
- | note left of resolve | + | The command |
- | Lookup Table transport_maps | + | |
- | Tabelle zur adressabhängigen | + | |
- | | + | |
- | weiteren (finalen) MTA. | + | |
- | end note | + | |
- | note right of local | + | The following command-line options have the same effect |
- | Lookup Table / | + | |
- | Tabelle mit der lokalen eMails | + | |
- | an lokale Empfänger zugewiesen | + | |
- | werden können. | + | |
- | end note | + | |
- | note left of local | + | -D |
- | Lookup Table .forward | + | debugger_command variable in the main.cf configuration file. See |
- | Tabelle zur Steuerung von | + | |
- | automatischen Anwesenheitsnachrichten | + | |
- | end note | + | |
- | note left of qmgr | + | -o name=value |
- | | + | Override |
- | | + | value can refer to other parameters as $name etc., just like in |
- | von eMailadressen | + | main.cf. |
- | | + | |
- | end note | + | |
- | note left of qmgr | + | |
- | Lookup Table relocated_maps | + | values. To specify a parameter value that contains whitespace, use |
- | | + | commas |
- | | + | ple: |
- | bei verzogenen Accounts. | + | |
- | end note | + | |
- | </ | + | |
- | Welche Aufgaben und Funktionen die einzelnen Dienste mitbringen wollen wir uns kurz befassen. | + | / |
- | ==== master ==== | + | submission inet .... smtpd |
- | Die Steuerung der in der obigen Übersichtskizze dargestellten Daemone und Module erfolgt mit Hilfe des **master**-Daemon, | + | -o smtpd_mumble=$submission_mumble |
- | ==== lmtp, smtp und smtps ==== | + | / |
+ | | ||
+ | |||
+ | 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 7987: | 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 7993: | 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:// | ||