Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
tachtler:postfix_centos_7 [2015/10/15 15:48] – [smtpd_tls_eecdh_grade] 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: |
| 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/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> | | | **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. \\ \\ :!: **HINWEIS** - **Hier können auch eigene ROOT-Zeritifikate hinterlegt werden!** | | | 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_cert_file ==== | ==== smtpd_tls_cert_file ==== |
| **Neuer Wert** | <code>smtpd_tls_key_file = /etc/pki/postfix/private/mail.tachtler.net.key</code> | | | **Neuer Wert** | <code>smtpd_tls_key_file = /etc/pki/postfix/private/mail.tachtler.net.key</code> | |
| Beschreibung | Die Datei mit dem Schlüssel im PEM-Format. | | | Beschreibung | Die Datei mit dem Schlüssel im PEM-Format. | |
| |
| ==== (l|s)mtp(d)_tls_ciphers ==== |
| |
| ^ Information ^ Beschreibung ^ |
| | Dokumentation | [[http://www.postfix.org/postconf.5.html#smtpd_tls_ciphers]] \\ [[http://www.postfix.org/postconf.5.html#smtp_tls_ciphers]] \\ [[http://www.postfix.org/postconf.5.html#lmtp_tls_ciphers]] | |
| | Defaultwert | <code>smtpd_tls_ciphers = medium</code><code>smtp_tls_ciphers = medium</code><code>lmtp_tls_ciphers = medium</code> | |
| | **Neuer Wert** | <code>smtpd_tls_ciphers = high</code><code>smtp_tls_ciphers = high</code><code>lmtp_tls_mandatory_ciphers = $smtp_tls_ciphers</code> | |
| | Beschreibung | Der Standard TLS Verschlüsselungsgrad. | |
| |
| Nachfolgende Tabelle spezifiziert die einzelnen Verschlüsselungsgrad Einstellungen: |
| |
| ^ Verschlüsselungsgrad ^ Parameter ^ |
| | ''export'' | ''tls_export_cipherlist = aNULL:-aNULL:ALL:+RC4:@STRENGTH'' | |
| | ''low'' | ''tls_low_cipherlist = aNULL:-aNULL:ALL:!EXPORT:+RC4:@STRENGTH'' | |
| | ''medium'' | ''tls_medium_cipherlist = aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH''| |
| | ''high'' | ''tls_high_cipherlist = aNULL:-aNULL:ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH''| |
| | ''null'' | ''tls_null_cipherlist = eNULL:!aNULL''| |
| |
| Alle Verschlüsselungsgrad Einstellungen haben eine Parameter in dem die verschiedenen Verschlüsselungsarten festgelegt werden können, **diese sollten jedoch __nicht__ abgeändert werden**! |
| |
==== smtpd_tls_dh512_param_file smtpd_tls_dh1024_param_file ==== | ==== smtpd_tls_dh512_param_file smtpd_tls_dh1024_param_file ==== |
| Defaultwert | <code>smtpd_tls_exclude_ciphers = </code><code>smtp_tls_mandatory_exclude_ciphers = </code><code>lmtp_tls_mandatory_exclude_ciphers = </code> | | | Defaultwert | <code>smtpd_tls_exclude_ciphers = </code><code>smtp_tls_mandatory_exclude_ciphers = </code><code>lmtp_tls_mandatory_exclude_ciphers = </code> | |
| **Neuer Wert** | <code>smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA</code><code>smtp_tls_mandatory_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA</code><code>lmtp_tls_mandatory_exclude_ciphers = $smtp_tls_exclude_ciphers</code> | | | **Neuer Wert** | <code>smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA</code><code>smtp_tls_mandatory_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA</code><code>lmtp_tls_mandatory_exclude_ciphers = $smtp_tls_exclude_ciphers</code> | |
| Beschreibung | Liste der Chiffren oder Verschlüsselungstypen die von den obligatorischen TLS Sicherheitsstufen auszuschließen sind. | | | Beschreibung | Liste der Chiffren oder Verschlüsselungstypen die von den SMTP-Server Sicherheitsstufen auszuschließen sind. | |
| |
:!: **HINWEIS** - Siehe auch nachfolgenden externen Link: | :!: **HINWEIS** - Siehe auch nachfolgenden externen Link: |
# 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> |
| |