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
centos:mail_c7:mta_1 [10.10.2014 13:37. ] – [lmtp, smtp und smtps] um relay ergänzt #Postfix #CentOS7 djangocentos:mail_c7:mta_1 [20.05.2021 06:03. ] (aktuell) django
Zeile 2: Zeile 2:
 {{:centos:mailserver:postfix:postfixlogo.gif |Postfix-Logo}}Für die eMailkommunikation in unserem SOHO(( **S**mall **O**ffice **H**ome **O**ffice ))-LAN wie auch für die Versorgung unserer Kunden bedienen wir uns des MTA((**M**ail **T**ransport **A**gent))/SMTP-Server **Postfix**. Dies nicht zuletzt, da dieser, im Gegensatz zum Dinosaurier verschrieenen **Sendmail** wesentlich einfacher zu konfigurieren ist und auch sicherheitstechnische Vorteile bietet. {{:centos:mailserver:postfix:postfixlogo.gif |Postfix-Logo}}Für die eMailkommunikation in unserem SOHO(( **S**mall **O**ffice **H**ome **O**ffice ))-LAN wie auch für die Versorgung unserer Kunden bedienen wir uns des MTA((**M**ail **T**ransport **A**gent))/SMTP-Server **Postfix**. Dies nicht zuletzt, da dieser, im Gegensatz zum Dinosaurier verschrieenen **Sendmail** wesentlich einfacher zu konfigurieren ist und auch sicherheitstechnische Vorteile bietet.
  
-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:mail_c7:postfix3_1|dieser Seite]]**__ beschrieben.
  
 <WRAP round important>Grundvoraussetzung eines jeden Postmasters ist entweder der Besitz und das eingehende, auch mehrmalige Studium des: <WRAP round important>Grundvoraussetzung eines jeden Postmasters ist entweder der Besitz und das eingehende, auch mehrmalige Studium des:
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 width=800 title="Verarbeitungsschritte einer eMail">+<uml>
 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 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="Postfix MTA"> +{{page>centos:mail_c7:postfix&nofooter}
- +
-state "Daemon" as qmqp +
-qmqp QMQP-Modul +
- +
-state "/usr/bin/sendmail" as sendmail +
-sendmail Postfix - Modul +
-sendmail : "postdrop" +
- +
-state "MTA - MTA Verkehr" as smtp_in +
-smtp_in : TCP/IP - Port 25 +
- +
-state "MUA - MSA Verkehr" as submission +
-submission : TCP/IP - Port 587 +
- +
-state "MDA" as lmtp_24 +
-lmtp_24 : (Mail Delivery Agent)  +
-lmtp_24 : Dovecot IMAP-Server +
-lmtp_24 : TCP/IP - Port 24 +
- +
-state "MTA" as smtp_25 +
-smtp_25 : (Mail Transport Agent)  +
-smtp_25 : andere SMTP-Server (Relayhosts) +
-smtp_25 : im Internet bzw. Intranet +
-smtp_25 : TCP/IP - Port 25 +
- +
-state "Mailman" as mailman +
-mailman : Weitergabe der eMail +
-mailman : an Mailinglisten / wie Mailman +
-mailman : oder via UUCP ... +
- +
-state "mailbox" as mailbox +
-mailbox : Postfix - Queue +
-mailbox : "mailbox" +
-mailbox : lokale Zustellung +
- +
-state master { +
-  state "Queue" as maildrop +
-  maildrop : └── maildrop +
- +
-  state "Daemon" as pickup +
-  pickup : └── pickup +
- +
-  state "Daemon" as anvil +
-  anvil : └──  anvil +
- +
-  state "Daemon" as dnsblog +
-  dnsblog : └──  dnsblog +
- +
-  state "Daemon" as tlsproxy +
-  tlsproxy : └──  tlsproxy +
- +
-  state "Daemon" as postscreen +
-  postscreen : └──  postscreen +
- +
-  state "Daemon" as verify +
-  verify : └──  verify +
- +
-  state "Daemon" as tlsmgr +
-  tlsmgr: └──  tlsmgr +
-  +
-  state "Daemon" as scache +
-  scache: └──  scache +
-    +
-  state "Daemon" as qmqpd +
-  qmqpd: └──  qmqpd +
- +
-  state "Agent" as discard +
-  discard: └──  discard +
- +
-  state "Agent" as error +
-  error : ├── error +
-  error : └── retry +
-   +
-  state "Daemon" as virtual +
-  virtual: └──  virtual +
-   +
-  state "Daemon" as cleanup +
-  cleanup : └── cleanup  +
- +
-  state "Daemon" as showq +
-  showq : └──  showq +
-   +
-  state "Daemon" as rewrite +
-  rewrite : └── trivial-rewrite  +
- +
-  state "Daemon" as bounce +
-  bounce : ├── bounce +
-  bounce : ├── defer +
-  bounce : └── trace +
- +
-  state "Daemon" as smtpd +
-  smtpd : └── smtpd   +
-   +
-  state "Queue" as incoming +
-  incoming : └── incoming  +
-  +
-  state "Queue" as hold +
-  hold : └── hold +
- +
-  state "Queue" as corrupt +
-  corrupt : └── corrupt +
-    +
-  state "Queue" as active +
-  active : └── active +
-   +
-  state "Queue" as deferred +
-  deferred : └── deferred +
- +
-  state "Daemon" as qmgr +
-  qmgr : └── qmgr  +
- +
-  state "Daemon" as flush +
-  flush : └── flush  +
- +
-  state "Modul" as resolve +
-  resolve : └── resolve +
- +
-  state "MDA" as local +
-  local : └── local  +
-  +
-  state "Mailclient" as pipe +
-  pipe : └── pipe  +
- +
-  state "Mailclient" as lmtp +
-  lmtp : └── lmtp  +
-  +
-  state "Mailclient" as smtp_out +
-  smtp_out : └── smtp  +
- +
-  state "Daemon" as proxymap +
-  proxymap : ├── proxymap +
-  proxymap : └── proxywrite +
-} +
- +
- smtp_in -down-> smtpd +
- submission --> smtpd +
- +
- qmqp -right-> qmqpd +
- sendmail -down-> maildrop +
- maildrop --> pickup +
- +
- anvil --> smtpd +
- dnsblog --> smtpd +
- verify -right-> smtpd +
- tlsmgr -up-> smtpd +
- postscreen --> smtpd +
- +
- qmqpd --> cleanup +
- smtpd  --> cleanup +
- pickup --> cleanup +
- cleanup --> incoming +
- rewrite -left-> cleanup +
- tlsproxy -up-> postscreen +
-   +
- incoming --> qmgr +
- qmgr --> deferred +
- qmgr --> active +
- qmgr --> hold +
- qmgr --> corrupt +
- resolve --> qmgr +
- bounce -down-> qmgr +
- qmgr --> local +
- qmgr -right-> smtp_out +
- qmgr --> pipe +
- qmgr --> lmtp +
- qmgr -left-> virtual +
- discard --> qmgr +
- error --> qmgr +
- flush --> qmgr +
- showq --> qmgr +
- smtp_out -up-> scache +
- +
- lmtp --> lmtp_24 +
- smtp_out --> smtp_25  +
- smtp_out -up-> tlsmgr +
- pipe --> mailman +
- local --> mailbox +
- +
- +
- note right of cleanup +
-  Lookup Table canonical_maps +
-  Übersetzungstabelle zum  +
-  Umschreiben von nicht-lokalen  +
-  Empfängeradressen +
- end note +
- +
- +
- note right of cleanup +
-  Lookup Table virtual_maps +
-  Tabelle mit der Empfängeradresse +
-  aller lokalen, virtuellen und +
-  entfernten eMialadressen +
- end note +
- +
- note right of smtpd +
-  Realtime Blockhole Lists +
-  Nutzung von RBL zum Prüfen +
-  von einliefernden Hosts +
-  reverse DNS-Abfrage z.B.  +
-  bei SPAMHAUS +
- end note +
- +
- +
- note left of smtpd +
-  Lookup Table access_client +
-  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 +
-  Lookup Table  transport_maps +
-  Tabelle zur adressabhängigen +
-  Weiterleitung an einen  +
-  weiteren (finalen) MTA.  +
- end note +
- +
- note right of local +
-  Lookup Table /etc/aliases +
-  Tabelle mit der lokalen eMails +
-  an lokale Empfänger zugewiesen +
-  werden können. +
- end note +
- +
- note left of local +
-  Lookup Table .forward +
-  Tabelle zur Steuerung von +
-  automatischen Anwesenheitsnachrichten +
- end note +
- +
- note left of qmgr +
-  Lookup Table generic_maps +
-  Tabelle zum Umschreiben  +
-  von eMailadressen +
-  beim Versenden. +
- end note +
- +
- note left of qmgr +
-  Lookup Table relocated_maps +
-  Tabelle für die Bounce-Nachrichten  +
-  mit Angabe der neuen eMailadresse  +
-  bei verzogenen Accounts. +
- end note +
-</uml>+
  
 Welche Aufgaben und Funktionen die einzelnen Dienste mitbringen wollen wir uns kurz befassen. Welche Aufgaben und Funktionen die einzelnen Dienste mitbringen wollen wir uns kurz befassen.
Zeile 8201: 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, 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 8207: 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-/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 8218: Zeile 7971:
 ===== weitere Schritte zur Installation und Konfiguration ===== ===== weitere Schritte zur Installation und Konfiguration =====
 Nachdem wir uns nun eingehend mit dem **[[centos:mail_c7:mta_1#verschiedene_mailserver|Grundlagen]]** zum Thema Mailserver und den **[[centos:mail_c7:mta_1#daemone_queues_und_dienste|einzelnen Komponenten]]** des Postfix MTA beschäftigt haben, können wir uns nun mit der **[[centos:mail_c7:start#mailserverinstallation_unter_centos_7x|Installation und Konfiguration von Postfix]]** beschäftigen. Nachdem wir uns nun eingehend mit dem **[[centos:mail_c7:mta_1#verschiedene_mailserver|Grundlagen]]** zum Thema Mailserver und den **[[centos:mail_c7:mta_1#daemone_queues_und_dienste|einzelnen Komponenten]]** des Postfix MTA beschäftigt haben, können wir uns nun mit der **[[centos:mail_c7:start#mailserverinstallation_unter_centos_7x|Installation und Konfiguration von Postfix]]** beschäftigen.
 +
 +Die Installation und Konfiguration des aktuellen stable Release **Postfix 3.x** wird nachfolgend ab __**[[centos:mail_c7:postfix3_1|dieser Seite]]**__ beschrieben.
  
 ====== 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<<]]**
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
-~~DISCUSSION~~ +
-~~AUTOTWEET:~~+
  • centos/mail_c7/mta_1.1412948230.txt.gz
  • Zuletzt geändert: 10.10.2014 13:37.
  • (Externe Bearbeitung)