Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
tachtler:postfix_centos_7 [2015/10/16 10:17] – [(l|s)mtp(d)_tls_CAfile] klaus | tachtler:postfix_centos_7 [2024/01/09 11:41] (aktuell) – [smtpd_discard_ehlo_keyword_address_maps] klaus |
---|
| |
==== Paket postfix installieren ==== | ==== Paket postfix installieren ==== |
| |
| Nach erfolgreicher Einbindung des **Drittanbieter-Repository** |
| * [[tachtler:mailserver.guru_centos_7|mailserver.guru CentOS 7]] |
| sind nachfolgende Anpassungen in den Konfigurationsdateien |
| * ''/etc/yum.repos.d/CentOS-Base.repo'' |
| noch erforderlich, um die Installation des [[http://www.postfix.org/|Postfix]] aus dem ''mailserver.guru''-Repository durchführen zu können. |
| |
| === /etc/yum.repos.d/CentOS-Base.repo === |
| |
| (**__Nur relevanter Ausschnitt__**) |
| <code bash> |
| [base] |
| name=CentOS-$releasever - Base |
| mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra |
| #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ |
| gpgcheck=1 |
| gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 |
| priority=1 |
| exclude=postfix,postfix-*,dovecot |
| </code> |
| |
| **__Erklärungen zur Anpassung__**: |
| |
| * <code>exclude=postfix,postfix-*</code> |
| |
| Herausnehmen des Pakets ''postfix'' und alle damit Verbundenen Pakete aus dem ''CentOS-Base''-Repository. |
| |
Nachdem das **Drittanbieter-Repository** | Nachdem das **Drittanbieter-Repository** |
* [[tachtler:mailserver.guru_centos_7|mailserver.guru CentOS 7]] | * [[tachtler:mailserver.guru_centos_7|mailserver.guru CentOS 7]] |
erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das **__neuere__** ''rpm''-Paket - **''postfix''** installiert werden: | erfolgreich eingebunden und konfiguriert wurde, kann mit nachfolgendem Befehl, das **__neuere__** ''rpm''-Paket - **''postfix''** installiert werden: |
<code> | <code> |
# yum install postfix | # yum install postfix |
</code> | </code> |
| |
[[http://www.postfix.org|Postfix]] wird sich an alle unter **''mydestination''** aufgelisteten Domains bzw. (**FQDN**) als final zuständig füheln und e-Mails annehmen, ohne diese an andere Mail-Server weiterzuleiten. | [[http://www.postfix.org|Postfix]] wird sich an alle unter **''mydestination''** aufgelisteten Domains bzw. (**FQDN**) als final zuständig fühlen und e-Mails annehmen, ohne diese an andere Mail-Server weiterzuleiten. |
| |
==== myorigin ==== | ==== myorigin ==== |
| |
Ergänzung für lokal erzeugte e-Mails, welche nur an eine User-ID adressiert sind z.B. ''root''. Dies es-M;ail werden z.B. via ''cron''-job erstellt. Dies ist immer dann problematisch, wenn **local erzeugte e-Mail, __nicht__ lokal zugestellt/weitergeleitet** werden! | Ergänzung für lokal erzeugte e-Mails, welche nur an eine User-ID adressiert sind z.B. ''root''. Diese e-Mail's werden z.B. via ''cron''-job erstellt. Dies ist immer dann problematisch, wenn **local erzeugte e-Mail, __nicht__ lokal zugestellt/weitergeleitet** werden! |
| |
^ Defaultwert ^ Neuer Wert ^ | ^ Defaultwert ^ Neuer Wert ^ |
| $mydomain = mx1.tachtler.net | **server60.idmz.$mydomain** | | | $myorigin = mx1.tachtler.net | **server60.idmz.$mydomain** | |
| |
Hier sollen **lokal erzeuge e-Mails**, **nicht** pauschal um $mydomain = mx1.tachtler.net erweitert werden, sondern es soll der **interne Servername**, hier ''server60.idmz.tachtler.net'' verwendet werden. | Hier sollen **lokal erzeuge e-Mails**, **nicht** pauschal um $mydomain = mx1.tachtler.net erweitert werden, sondern es soll der **interne Servername**, hier ''server60.idmz.tachtler.net'' verwendet werden. |
nausch.org reject_plaintext_session | nausch.org reject_plaintext_session |
</code> | </code> |
| |
| :!: **ERKLÄRUNG** - **''reject_plaintext_session'' verhindert den Aufbau von unverschlüsselten Verbindungen, bei __eingehenden e-Mails__** |
| |
:!: **HINWEIS** - Als Trennzeichen zwischen den beiden Einträgen, sollte am besten die **[TAB]**-Taste verwendet werden, es ist aber auch die Trennung durch **[Leerzeichen]** möglich! | :!: **HINWEIS** - Als Trennzeichen zwischen den beiden Einträgen, sollte am besten die **[TAB]**-Taste verwendet werden, es ist aber auch die Trennung durch **[Leerzeichen]** möglich! |
^ Information ^ Beschreibung ^ | ^ Information ^ Beschreibung ^ |
| Dokumentation | [[http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions]] \\ [[http://www.postfix.org/SMTPD_ACCESS_README.html]] | | | Dokumentation | [[http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions]] \\ [[http://www.postfix.org/SMTPD_ACCESS_README.html]] | |
| Defaultwert | <code>smtpd_relay_restrictions = </code> | | | Defaultwert | <code>smtpd_recipient_restrictions = </code> | |
| **Neuer Wert** | <code bash>smtpd_recipient_restrictions = | | **Neuer Wert** | <code bash>smtpd_recipient_restrictions = |
# RFC or important ROLE-Accounts - Whitelisting - like: postmaster, abuse. | # RFC or important ROLE-Accounts - Whitelisting - like: postmaster, abuse. |
# Permit all SASL authenticated users, or clients from mynetworks. | # Permit all SASL authenticated users, or clients from mynetworks. |
# Tachtler - disabled - permit_sasl_authenticated, | # Tachtler - disabled - permit_sasl_authenticated, |
# Tachtler - disabled - permit_mynetworks, | permit_mynetworks, |
# RBL and RHSBL checks. | # RBL and RHSBL checks. |
reject_rbl_client zen.spamhaus.org=127.0.0.10, | reject_rbl_client zen.spamhaus.org=127.0.0.10, |
Fortfahren mit der Annahme der e-Mail, wenn der Client erfolgreich über das RFC-4954 (AUTH) Protokoll authentifiziert ist. | Fortfahren mit der Annahme der e-Mail, wenn der Client erfolgreich über das RFC-4954 (AUTH) Protokoll authentifiziert ist. |
| |
* <code># Tachtler - disabled - permit_mynetworks</code> | * <code>permit_mynetworks</code> |
| |
:!: **HINWEIS** - Abgedeckt durch die ''smtpd_relay_restrictions''. | :!: **HINWEIS** - Abgedeckt durch die ''smtpd_relay_restrictions'', ausser bei lokaler Einlieferung! |
| |
Fortfahren mit der Annahme der e-Mail, wenn die IP-Adresse des Clients in ''mynetworks'' enthalten ist. | Fortfahren mit der Annahme der e-Mail, wenn die IP-Adresse des Clients in ''mynetworks'' enthalten ist. |
| |
:!: **WICHTIG** - **Damit Änderungen allen Konfigurationsdateien wirksam werden, ist ein [[http://www.postfix.org|Postfix]] ''restart'' erforderlich!** | :!: **WICHTIG** - **Damit Änderungen allen Konfigurationsdateien wirksam werden, ist ein [[http://www.postfix.org|Postfix]] ''restart'' erforderlich!** |
| |
| :!: **WICHTIG** - **Nachfolgende beide Befehle können bzw. sollten nicht im __laufenden Betrieb__ ausgeführt werden!** (Evtl. zur Inhalt Einsicht die Datei vorher an einen anderen Speicherort kopieren) |
| |
Um den Inhalt der ''address_verify_map'' **einsehen zu können**, kann nachfolgender Befehl genutzt werden: | Um den Inhalt der ''address_verify_map'' **einsehen zu können**, kann nachfolgender Befehl genutzt werden: |
| Dokumentation | [[http://www.postfix.org/postconf.5.html#smtpd_tls_CAfile]] \\ [[http://www.postfix.org/postconf.5.html#smtp_tls_CAfile]] \\ [[http://www.postfix.org/postconf.5.html#lmtp_tls_CAfile]] | | | Dokumentation | [[http://www.postfix.org/postconf.5.html#smtpd_tls_CAfile]] \\ [[http://www.postfix.org/postconf.5.html#smtp_tls_CAfile]] \\ [[http://www.postfix.org/postconf.5.html#lmtp_tls_CAfile]] | |
| Defaultwert | <code>smtpd_tls_CAfile = </code><code>smtp_tls_CAfile = </code><code>lmtp_tls_CAfile = </code> | | | Defaultwert | <code>smtpd_tls_CAfile = </code><code>smtp_tls_CAfile = </code><code>lmtp_tls_CAfile = </code> | |
| **Neuer Wert** | <code>smtpd_tls_CAfile = /etc/pki/postfix/certs/cacert_chain_root.pem</code><code>smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt</code><code>lmtp_tls_CAfile = $smtp_tls_CAfile</code> | | | **Neuer Wert** | <code>smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt</code><code>smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt</code><code>lmtp_tls_CAfile = $smtp_tls_CAfile</code> | |
| Beschreibung | Eine Datei mit im (PEM-Format) abgelegten ROOT-CA-Zertifikate der vertrauenswürdigen Stammzertifizierungsstellen, entweder Remote-SMTP-Client-Zertifikate oder Zwischen ROOT-CA-Zertifikate. \\ \\ :!: **WICHTIG** - **Beim Parameter ''smtpd_tls_CAfile'' dürfen __NUR__ die eigene ROOT-Zeritifikate (ROOT + Intermediate) in __einer Datei untereinander, beginnend mit dem ROOT Zertifikat als unterstes__ hinterlegt werden !!!** <code> | | Beschreibung | Eine Datei mit im (PEM-Format) abgelegten ROOT-CA-Zertifikate der vertrauenswürdigen Stammzertifizierungsstellen, entweder Remote-SMTP-Client-Zertifikate oder Zwischen ROOT-CA-Zertifikate. | |
| |
smtpd_tls_CAfile = /etc/pki/postfix/certs/cacert_chain_root.pem | |
| |
+-----------------------------+ | |
| Intermediate | | |
| | | |
| -----BEGIN CERTIFICATE----- | | |
| ... | | |
| -----END CERTIFICATE----- | | |
+-----------------------------+ | |
|| | |
\/ | |
+-----------------------------+ | |
| ROOT | | |
| | | |
| -----BEGIN CERTIFICATE----- | | |
| ... | | |
| -----END CERTIFICATE----- | | |
+-----------------------------+ | |
| |
</code>| | |
| |
==== smtpd_tls_cert_file ==== | ==== smtpd_tls_cert_file ==== |
# openssl s_client -starttls smtp -connect mx01.nausch.org:25 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin | # openssl s_client -starttls smtp -connect mx01.nausch.org:25 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin |
SHA1 Fingerprint=F6:A2:58:4C:CA:1F:52:68:69:FF:87:73:CF:62:40:80:87:AC:21:B2 | SHA1 Fingerprint=F6:A2:58:4C:CA:1F:52:68:69:FF:87:73:CF:62:40:80:87:AC:21:B2 |
| </code> |
| |
| ==== (l|s)mtp_dns_support_level ==== |
| |
| ^ Information ^ Beschreibung ^ |
| | Dokumentation | [[http://www.postfix.org/postconf.5.html#smtp_dns_support_level]] \\ [[http://www.postfix.org/postconf.5.html#smtp_dns_support_level]] | |
| | Defaultwert | <code>smtp_dns_support_level =</code><code>lmtp_dns_support_level =</code> | |
| | **Neuer Wert** | <code>smtp_dns_support_level = dnssec</code><code>lmtp_dns_support_level = dnssec</code> | |
| | Beschreibung | Legt für die Kommunikation von [[http://www.postfix.com|Postfix]] mit anderen Clients/Host fest, ob die Verschlüsselung **''dane, dane-only''**, die für diesen Client/Host geprüft werden kann. | |
| | interner Link | [[tachtler:postfix_centos_7#l_s_mtp_tls_policy_maps|Postfix CentOS 7 - TLS-Policy-Konfigurieren - (l|s)mtp_tls_policy_maps]] \\ [[tachtler:postfix_centos_7#l_s_mtp_tls_fingerprint_digest|Postfix CentOS 7 - TLS-Policy-Konfigurieren - (l|s)mtp_tls_fingerprint_digest]] | |
| |
| Falls in den **neue Konfigurationsdateien** |
| * ''/etc/postfix/smtp_tls_policy_maps'' |
| * ''/etc/postfix/lmtp_tls_policy_maps'' |
| ein Eintrag mit |
| * **''dane''** oder |
| * **''dane-only''** |
| enthalten ist, wie nachfolgend dargestellt (**hier nur ''/etc/postfix/smtp_tls_policy_maps''**): |
| <code> |
| # nausch.org fingerprint match=F6:A2:58:4C:CA:1F:52:68:69:FF:87:73:CF:62:40:80:87:AC:21:B2 |
| nausch.org dane-only |
| </code> |
| |
| **MUSS zwingend** auch |
| * ''smtp_dns_support_level = dnssec'' bzw. |
| * ''lmtp_dns_support_level = dnssec'' |
| gesetzt werden, da sonst nachfolgende Fehlermeldung im LOG erscheint (**nur relevanter Ausschnitt**): |
| <code> |
| ... |
| ...warning: nausch.org: dane-only configured with dnssec lookups disabled |
| ...warning: TLS policy lookup for nausch.org/mx01.nausch.org: client TLS configuration problem |
| ... |
</code> | </code> |
| |
| |
^ Eintrag ^ Bedeutung ^ | ^ Eintrag ^ Bedeutung ^ |
| | <code>chunking</code> | Die CHUNKING-Serviceerweiterung ermöglicht die Verwendung des BDAT-Befehls, alternativ zum DATA-Befehl. | |
| <code>silent-discard</code> | Verhindert die Schreibung von LOG-Einträgen | | | <code>silent-discard</code> | Verhindert die Schreibung von LOG-Einträgen | |
| <code>dsn</code> | Verschweigt im SMTP-Dialog die DSN-Fähigkeit | | | <code>dsn</code> | Verschweigt im SMTP-Dialog die DSN-Fähigkeit | |
Nachfolgend können hier Einträge in die **''cidr''**-Map nach nachfolgendem Muster eingetragen werden: | Nachfolgend können hier Einträge in die **''cidr''**-Map nach nachfolgendem Muster eingetragen werden: |
<code> | <code> |
192.168.0.0/24 silent-discard | 192.168.0.0/24 chunking, silent-discard |
192.168.1.0/24 silent-discard | 192.168.1.0/24 chunking, silent-discard |
0.0.0.0/0 silent-discard, dsn | 0.0.0.0/0 chunking, silent-discard, dsn |
</code> | </code> |
| |