Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
centos:mail_c7:mta_1 [09.10.2014 13:54. ] – Seite fertiggestellt: "Postfix, der sichere Mailserver (MTA) unter CentOS 7.x" #Postfix #CentOS7 djangocentos:mail_c7:mta_1 [14.11.2014 08:33. ] – [Übersichtsskizze] django
Zeile 24: Zeile 24:
 skinparam defaultFontName Courier skinparam defaultFontName Courier
  
-state "Anwender generiert eine eMAil mit seinem MUA (Mail User Agent)" as sender+state "Anwender generiert eine eMail mit seinem MUA (Mail User Agent)" as sender
 state "MUA (Mail User Agent)" as sender state "MUA (Mail User Agent)" as sender
 sender : Anwender erstellt eine Nachricht sender : Anwender erstellt eine Nachricht
Zeile 33: Zeile 33:
     state "Anfragen an den zuständigen Name-Server" as dns_anfragen     state "Anfragen an den zuständigen Name-Server" as dns_anfragen
         dns_anfragen : │         dns_anfragen : │
-        dns_anfragen : ├-- (Reverse) Auflösen einer IP-Adresse+        dns_anfragen : ├── (Reverse) Auflösen einer IP-Adresse
         dns_anfragen : │   zu einem Hostnamen         dns_anfragen : │   zu einem Hostnamen
-        dns_anfragen : ├-- Abfrage des zuständigen Mailservers+        dns_anfragen : ├── Abfrage des zuständigen Mailservers
         dns_anfragen : │   zu einer Domäne         dns_anfragen : │   zu einer Domäne
-        dns_anfragen : └-- Auflösen von Hostnamen zu IP-Adressen+        dns_anfragen : └── Auflösen von Hostnamen zu IP-Adressen
         dns_anfragen : .         dns_anfragen : .
 } }
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/Protokolle beteidigt. Eine zentrale Stellung nimmt dabei das [[centos:bind_c6|DNS]]((**D**omain **N**ame **S**ystem)) ein, ohne dessen Informationen keine Mailzustellung und Verarbeitung erfolgen kann. Wir werden uns daher diesem Thema in einem [[centos:mail_c7:mta_2|gesonderten Kapitel hier im WIKI]] widmen.+Wie wir der oben stehenden Skizze entnehmen können, sind im Verlauf einer eMail-Verarbeitung viele  Mailsysteme und Dienste/Protokolle beteidigt. Eine zentrale Stellung nimmt dabei das [[centos:bind_c6|DNS]]((**D**omain **N**ame **S**ystem)) ein, ohne dessen Informationen keine Mailzustellung und Verarbeitung erfolgen kann. Wir werden uns daher diesem Thema in einem gesonderten Kapitel [[centos:mail_c7:mta_3|"DNS Einstellungen rund um Mailserver"]] hier im WIKI widmen.
  
 Zuerst wollen wr aber noch einen gezielten Blick auf die Begrifflickeiten, die in der obigen Skizze genannt wurden, werfen. Viele interessante und erklärende Informationen findet man auch im entsprechedem Artikel bei der [[http://de.wikipedia.org/wiki/E-Mail|Wikipedia]]. Zuerst wollen wr aber noch einen gezielten Blick auf die Begrifflickeiten, die in der obigen Skizze genannt wurden, werfen. Viele interessante und erklärende Informationen findet man auch im entsprechedem Artikel bei der [[http://de.wikipedia.org/wiki/E-Mail|Wikipedia]].
Zeile 322: Zeile 322:
  anvil --> smtpd  anvil --> smtpd
  dnsblog --> smtpd  dnsblog --> smtpd
- verify -right-> smtpd+ verify -down-> smtpd
  tlsmgr -up-> smtpd  tlsmgr -up-> smtpd
  postscreen --> smtpd  postscreen --> smtpd
Zeile 330: Zeile 330:
  pickup --> cleanup  pickup --> cleanup
  cleanup --> incoming  cleanup --> incoming
- rewrite -left-> cleanup+ rewrite -right-> cleanup
  tlsproxy -up-> postscreen  tlsproxy -up-> postscreen
      
Zeile 370: Zeile 370:
   Tabelle mit der Empfängeradresse   Tabelle mit der Empfängeradresse
   aller lokalen, virtuellen und   aller lokalen, virtuellen und
-  entfernten eMialadressen+  entfernten eMailadressen
  end note  end note
  
Zeile 381: Zeile 381:
  end note  end note
  
 +
 + note right of rewrite
 +  Lookup Table relocated_maps
 +  Tabelle für die Bounce-Nachrichten 
 +  mit Angabe der neuen eMailadresse 
 +  bei verzogenen Accounts.
 + end note
  
  note left of smtpd  note left of smtpd
Zeile 413: Zeile 420:
  end note  end note
  
- note left of qmgr+ note right of smtp_out
   Lookup Table generic_maps   Lookup Table generic_maps
   Tabelle zum Umschreiben    Tabelle zum Umschreiben 
Zeile 420: Zeile 427:
  end note  end note
  
- note left of qmgr + note right of lmtp 
-  Lookup Table relocated_maps +  Lookup Table lmtp_generic_maps 
-  Tabelle für die Bounce-Nachrichten  +  Tabelle zum Umschreiben von Empfänger 
-  mit Angabe der neuen eMailadresse  +  eMail-Adressen im Envelope und Header 
-  bei verzogenen Accounts.+
  end note  end note
 +
 +
 </uml> </uml>
  
Zeile 432: Zeile 440:
 Die Steuerung der in der obigen Übersichtskizze dargestellten Daemone und Module erfolgt mit Hilfe des **master**-Daemon, welcher den Postfix-Main-Prozess definiert. Dieser Master-Prozess steuert und überwacht zum einen die einzelnen Postfix-Module, definiert wie viele Instanzen den einzelnen Modulen zugewiesen werden sollen. Zum anderen werden durch den Master-Prozess in regelmäßigen Abständen die Module zum Verwalten und Steuern der Queues gestartet.  Die Steuerung der in der obigen Übersichtskizze dargestellten Daemone und Module erfolgt mit Hilfe des **master**-Daemon, welcher den Postfix-Main-Prozess definiert. Dieser Master-Prozess steuert und überwacht zum einen die einzelnen Postfix-Module, definiert wie viele Instanzen den einzelnen Modulen zugewiesen werden sollen. Zum anderen werden durch den Master-Prozess in regelmäßigen Abständen die Module zum Verwalten und Steuern der Queues gestartet. 
  
-==== lmtp, smtp und smtps ====+Weitere Hinweise zum **master**-Daemon findet man in dessen **manpage**. 
 +   # man 5 master 
 +<code>MASTER(5)                         File Formats Manual                         MASTER(5) 
 + 
 +NAME 
 +       master - Postfix master process configuration file format 
 + 
 +DESCRIPTION 
 +       The  Postfix  mail system is implemented by small number of (mostly) client com‐ 
 +       mands that are invoked by users, and by a larger number of services that run  in 
 +       the background. 
 + 
 +       Postfix  services  are  implemented  by daemon processes. These run in the back‐ 
 +       ground under control of the master(8) process.  The master.cf configuration file 
 +       defines how a client program connects to a service, and what daemon program runs 
 +       when a service is requested.  Most daemon processes are short-lived  and  termi‐ 
 +       nate voluntarily after serving max_use clients, or after inactivity for max_idle 
 +       or more units of time. 
 + 
 +       All daemons specified here must speak a Postfix-internal protocol. In  order  to 
 +       execute  non-Postfix software use the local(8), pipe(8) or spawn(8) services, or 
 +       run the server under control by inetd(8) or equivalent. 
 + 
 +       After changing master.cf you must execute "postfix reload" to reload the config‐ 
 +       uration. 
 + 
 +SYNTAX 
 +       The general format of the master.cf file is as follows: 
 + 
 +       ·      Empty  lines  and  whitespace-only  lines are ignored, as are lines whose 
 +              first non-whitespace character is a `#'. 
 + 
 +       ·      A logical line starts with non-whitespace text. A line that  starts  with 
 +              whitespace continues a logical line. 
 + 
 +       ·      Each  logical  line  defines  a  single Postfix service.  Each service is 
 +              identified by its name and type as described below.  When multiple  lines 
 +              specify  the same service name and type, only the last one is remembered. 
 +              Otherwise, the order of master.cf service definitions does not matter. 
 + 
 +       Each logical line consists of eight fields separated by whitespace.   These  are 
 +       described below in the order as they appear in the master.cf file. 
 + 
 +       Where  applicable  a  field  of  "-" requests that the built-in default value be 
 +       used. For boolean fields specify "y" or "n" to override the default value. 
 + 
 +       Service name 
 +              The service name syntax depends on the service type as described next. 
 + 
 +       Service type 
 +              Specify one of the following service types: 
 + 
 +              inet   The service listens on a TCP/IP socket and is accessible  via  the 
 +                     network. 
 + 
 +                     The  service name is specified as host:port, denoting the host and 
 +                     port on which new connections should be accepted.  The  host  part 
 +                     (and  colon)  may be omitted.  Either host or port may be given in 
 +                     symbolic form (host or  service  name)  or  in  numeric  form  (IP 
 +                     address  or port number).  Host information may be enclosed inside 
 +                     "[]"; this form is necessary only with IPv6 addresses. 
 + 
 +                     Examples: a service named 127.0.0.1:smtp or ::1:smtp receives mail 
 +                     via the loopback interface only; and a service named 10025 accepts 
 +                     connections on TCP port 10025 via all interfaces  configured  with 
 +                     the inet_interfaces parameter. 
 + 
 +                     Note:  with Postfix version 2.2 and later specify "inet_interfaces 
 +                     = loopback-only" in main.cf, instead of  hard-coding  loopback  IP 
 +                     address information in master.cf or in main.cf. 
 + 
 +              unix   The  service listens on a UNIX-domain socket and is accessible for 
 +                     local clients only. 
 + 
 +                     The service name is a  pathname  relative  to  the  Postfix  queue 
 +                     directory (pathname controlled with the queue_directory configura‐ 
 +                     tion parameter in main.cf). 
 + 
 +                     On Solaris 8 and earlier systems the unix type is implemented with 
 +                     streams sockets. 
 + 
 +              fifo   The  service  listens on a FIFO (named pipe) and is accessible for 
 +                     local clients only. 
 + 
 +                     The service name is a  pathname  relative  to  the  Postfix  queue 
 +                     directory (pathname controlled with the queue_directory configura‐ 
 +                     tion parameter in main.cf). 
 + 
 +              pass   The service listens on a UNIX-domain socket, and is accessible  to 
 +                     local clients only. It receives one open connection (file descrip‐ 
 +                     tor passing) per connection request. 
 + 
 +                     The service name is a  pathname  relative  to  the  Postfix  queue 
 +                     directory (pathname controlled with the queue_directory configura‐ 
 +                     tion parameter in main.cf). 
 + 
 +                     On Solaris 8 and earlier systems the pass type is implemented with 
 +                     streams sockets. 
 + 
 +                     This feature is available as of Postfix version 2.5. 
 + 
 +       Private (default: y) 
 +              Whether  or  not access is restricted to the mail system.  Internet (type 
 +              inet) services can't be private. 
 + 
 +       Unprivileged (default: y) 
 +              Whether the service runs with root privileges or  as  the  owner  of  the 
 +              Postfix system (the owner name is controlled by the mail_owner configura‐ 
 +              tion variable in the main.cf file). 
 + 
 +              The local(8), pipe(8), spawn(8), and virtual(8)  daemons  require  privi‐ 
 +              leges. 
 + 
 +       Chroot (default: y) 
 +              Whether  or  not  the  service  runs chrooted to the mail queue directory 
 +              (pathname is controlled by the queue_directory configuration variable  in 
 +              the main.cf file). 
 + 
 +              Chroot  should not be used with the local(8), pipe(8), spawn(8), and vir‐ 
 +              tual(8) daemons.  Although the proxymap(8) server can run chrooted, doing 
 +              so defeats most of the purpose of having that service in the first place. 
 + 
 +              The files in the examples/chroot-setup subdirectory of the Postfix source 
 +              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. 
 + 
 +       Wake up time (default: 0) 
 +              Automatically wake up the named service after  the  specified  number  of 
 +              seconds.  The  wake  up  is  implemented by connecting to the service and 
 +              sending a wake up request.  A ? at the end  of  the  wake-up  time  field 
 +              requests  that  no wake up events be sent before the first time a service 
 +              is used.  Specify 0 for no automatic wake up. 
 + 
 +              The pickup(8), qmgr(8) and flush(8) daemons require a wake up timer. 
 + 
 +       Process limit (default: $default_process_limit) 
 +              The maximum number of processes that may execute this service  simultane‐ 
 +              ously. Specify 0 for no process count limit. 
 + 
 +              NOTE:  Some  Postfix services must be configured as a single-process ser‐ 
 +              vice (for example, qmgr(8)) and some services must be configured with  no 
 +              process  limit  (for  example,  cleanup(8)).   These  limits  must not be 
 +              changed. 
 + 
 +       Command name + arguments 
 +              The command to be executed.  Characters that are  special  to  the  shell 
 +              such  as  ">"  or  "|" have no special meaning here, and quotes cannot be 
 +              used to protect arguments containing whitespace. 
 + 
 +              The command name is relative to the Postfix daemon directory (pathname is 
 +              controlled by the daemon_directory configuration variable). 
 + 
 +              The  command  argument  syntax  for specific commands is specified in the 
 +              respective daemon manual page. 
 + 
 +              The following command-line options have the same effect  for  all  daemon 
 +              programs: 
 + 
 +              -D     Run  the  daemon  under  control by the command specified with the 
 +                     debugger_command variable in the main.cf configuration file.   See 
 +                     DEBUG_README for hints and tips. 
 + 
 +              -o name=value 
 +                     Override  the named main.cf configuration parameter. The parameter 
 +                     value can refer to other parameters as $name etc.,  just  like  in 
 +                     main.cf.  See postconf(5) for syntax. 
 + 
 +                     NOTE  1:  do not specify whitespace around the "=" or in parameter 
 +                     values. To specify a parameter value that contains whitespace, use 
 +                     commas  instead  of spaces, or specify the value in main.cf. Exam‐ 
 +                     ple: 
 + 
 +                     /etc/postfix/master.cf: 
 +                         submission inet .... smtpd 
 +                             -o smtpd_mumble=$submission_mumble 
 + 
 +                     /etc/postfix/main.cf 
 +                         submission_mumble = text with whitespace... 
 + 
 +                     NOTE 2: Over-zealous use of parameter overrides makes the  Postfix 
 +                     configuration  hard  to  understand  and  maintain.   At a certain 
 +                     point, it might be easier to configure multiple instances of Post‐ 
 +                     fix, instead of configuring multiple personalities via master.cf. 
 + 
 +              -v     Increase the verbose logging level. Specify multiple -v options to 
 +                     make a Postfix daemon process increasingly verbose. 
 + 
 +SEE ALSO 
 +       master(8), process manager 
 +       postconf(5), configuration parameters 
 + 
 +README FILES 
 +       Use "postconf readme_directory" or  "postconf  html_directory"  to  locate  this 
 +       information. 
 +       BASIC_CONFIGURATION_README, basic configuration 
 +       DEBUG_README, Postfix debugging 
 + 
 +LICENSE 
 +       The Secure Mailer license must be distributed with this software. 
 + 
 +AUTHOR(S) 
 +       Initial version by 
 +       Magnus Baeck 
 +       Lund Institute of Technology 
 +       Sweden 
 + 
 +       Wietse Venema 
 +       IBM T.J. Watson Research 
 +       P.O. Box 704 
 +       Yorktown Heights, NY 10598, USA 
 + 
 +                                                                              MASTER(5) 
 +</code> 
 +==== lmtp, smtpsmtps und relay ====
 Der **smtp**-Client wird benutzt, um Nachrichten an vom Postfix zu anderen SMTP/LMTP-Daemons weiterzurouten, die dieser vom **[[centos:mail_c7:mta_1?&#qmgr|queue]]**-Manager zugewiesen bekommt. Der Client ermittelt selbst die Routinginformationen, wie er den Empfänger erreichen kann und versucht je nach Priorität der Nachricht diese erfolgreich zuzustellen. Weiterhin übergibt der Client Statusberichte zur Zustellung von Nachrichten an den **[[centos:mail_c7:mta_1?&#bounce|bounce]]**-, **[[centos:mail_c7:mta_1?&#defer|defer]]**- und **[[centos:mail_c7:mta_1?&#trace|trace]]**-daemon. Der **smtp**-Client wird benutzt, um Nachrichten an vom Postfix zu anderen SMTP/LMTP-Daemons weiterzurouten, die dieser vom **[[centos:mail_c7:mta_1?&#qmgr|queue]]**-Manager zugewiesen bekommt. Der Client ermittelt selbst die Routinginformationen, wie er den Empfänger erreichen kann und versucht je nach Priorität der Nachricht diese erfolgreich zuzustellen. Weiterhin übergibt der Client Statusberichte zur Zustellung von Nachrichten an den **[[centos:mail_c7:mta_1?&#bounce|bounce]]**-, **[[centos:mail_c7:mta_1?&#defer|defer]]**- und **[[centos:mail_c7:mta_1?&#trace|trace]]**-daemon.
 Nach der erfolgreichen Übertragung der Nachricht, kann eine Verbindung an den **[[centos:mail_c7:mta_1?&#scache|scache]]**-Daemon übergeben werden, damit die bestehende Verbindung ggf für weitere Nachrichtenübertragungen genutzt werden kann.  Nach der erfolgreichen Übertragung der Nachricht, kann eine Verbindung an den **[[centos:mail_c7:mta_1?&#scache|scache]]**-Daemon übergeben werden, damit die bestehende Verbindung ggf für weitere Nachrichtenübertragungen genutzt werden kann. 
Zeile 7987: Zeile 8209:
 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, soweit möglich.+  - der Transportweg zwischen den MTAs((**M**ail **T**ransport **A**gent: z.B. Postfix, Exim oder Sendmail)) wird TLS-verschlüsselt, soweit möglich.
   - 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 8215:
   - 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-/SPAM-Schutz betrachten wir die beiden Lösungskandidaten [[centos:mail_c7:spam_1|Greylisting]] und [[centos:mail_c7:spam_2|Postscreen]] genauer und wägen dann ab, welche Variante zum Einsatz kommen soll.   - Für den ersten Grob-Viren-/SPAM-Schutz betrachten wir die beiden Lösungskandidaten [[centos:mail_c7:spam_1|Greylisting]] und [[centos:mail_c7:spam_2|Postscreen]] genauer und wägen dann ab, welche Variante zum Einsatz kommen soll.
-  - Die zweite Prüfung erfolgt mit Unterstützung des [[centos:mail_c6:spam_2|Policy-Daemon]]  [[http://www.policyd-weight.org/|policyd-weight]], der die Mail bei der Einlieferung anhand des Envelope Sender, des Envelope To und der HELO-Daten, die während des SMTP-Handshakes übertragen werden, überprüft.+  - Die zweite Prüfung erfolgt mit Unterstützung des [[centos:mail_c6:spam_2|Policy-Daemon]]  [[http://www.policyd-weight.org/|policyd-weight]], der die Mail bei der Einlieferung anhand des Envelope Sender, des Envelope To und der HELO-Daten, die während des SMTP-Handshakes übertragen werden, überprüft. auch hier stellen wir uns die Frage, ob polycd-weight oder postscreen eingesetzt werden soll.
   - Eine weitere Prüfung auf erfolgt mit Hilfe von RBHL((**R**ealtime**B**lack**H**ole**L**ists)) von [[http://spamhaus.org|SPAMHAUS]].   - Eine weitere Prüfung auf erfolgt mit Hilfe von RBHL((**R**ealtime**B**lack**H**ole**L**ists)) von [[http://spamhaus.org|SPAMHAUS]].
 +  - Die Möglichkeit, Nachrichten auf Grund von [[centos:mail_c7:spam_5|verdächtigen Header-Zeilen und/oder Inhalten]] zu bewerten und/oder zu filtern, soll grundsätzlich gegeben sein.
   - Die SPAM-Bewertung der Nachrichten selbst erfolgt mit Hilfe von [[http://spamassassin.apache.org/|Spamassassin]]   - Die SPAM-Bewertung der Nachrichten selbst erfolgt mit Hilfe von [[http://spamassassin.apache.org/|Spamassassin]]
-  - Den dritten Teil unserer mehrstufigen Antivirenschutzmaßnahmen (1. Stufe: postgrey. 2. Stufe: policyd-weight) übernimmt der freie [[http://www.clamav.net/|Virenscanner ClamAV]].+  - Den dritten Teil unserer mehrstufigen Antivirenschutzmaßnahmen (1. Stufe: postscreen. 2. Stufe: body-/header-checks) übernimmt der freie [[http://www.clamav.net/|Virenscanner ClamAV]].
  
 <WRAP center round todo > <WRAP center round todo >
Zeile 8006: Zeile 8229:
  
 ====== Links ====== ====== Links ======
-  * **⇒ [[centos:mail_c7:mta_2|Weiter zum Kapitel "Installation und Basiskonfiguration von Postfix 2.11 unter CentOS 7.x"]]**+  * **⇒ [[centos:mail_c7:mta_2|Weiter zum Kapitel "Installation und Konfigurationsdateien von Postfix unter CentOS 7.x"]]**
   * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**   * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**
   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
  • centos/mail_c7/mta_1.txt
  • Zuletzt geändert: 20.05.2021 06:03.
  • von django