Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
tachtler:postfix_centos_7 [2015/10/14 11:09] – [iptables Regel] 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 ==== |
| ''strong'' | Verwenden EECDH mit 128 Bit. Dies ist der "Best-Practice"-Kompromiss zwischen Sicherheit und Recheneffizienz. | | | ''strong'' | Verwenden EECDH mit 128 Bit. Dies ist der "Best-Practice"-Kompromiss zwischen Sicherheit und Recheneffizienz. | |
| ''ultra'' | Verwenden EECDH mit 192 Bit. Der Rechenaufwand beträgt etwa das doppelte wie bei 128 Bit. Abgesehen von den erheblichen Fortschritten, bei Angriffen auf elliptischen Kurven Kryptosysteme, ist die "starke" Kurve ausreichend, für die meisten Anwender. | | | ''ultra'' | Verwenden EECDH mit 192 Bit. Der Rechenaufwand beträgt etwa das doppelte wie bei 128 Bit. Abgesehen von den erheblichen Fortschritten, bei Angriffen auf elliptischen Kurven Kryptosysteme, ist die "starke" Kurve ausreichend, für die meisten Anwender. | |
| |
| ==== (l|s)mtp(d)_tls_exclude_ciphers ==== |
| |
| ^ Information ^ Beschreibung ^ |
| | Dokumentation | [[http://www.postfix.org/postconf.5.html#smtpd_tls_exclude_ciphers]] \\ [[http://www.postfix.org/postconf.5.html#smtp_tls_exclude_ciphers]] \\ [[http://www.postfix.org/postconf.5.html#lmtp_tls_exclude_ciphers]] | |
| | 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> | |
| | Beschreibung | Liste der Chiffren oder Verschlüsselungstypen die von den SMTP-Server Sicherheitsstufen auszuschließen sind. | |
| |
| :!: **HINWEIS** - Siehe auch nachfolgenden externen Link: |
| * [[https://weakdh.org/sysadmin.html|Guide to Deploying Diffie-Hellman for TLS]] |
| |
==== (l|s)mtp(d)_tls_loglevel ==== | ==== (l|s)mtp(d)_tls_loglevel ==== |
# 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> |
| |
| |
* Interner **Link** zu: [[tachtler:postfix_centos_7_-_postscreen_einsetzen|Postfix CentOS 7 - Postscreen einsetzen]] | * Interner **Link** zu: [[tachtler:postfix_centos_7_-_postscreen_einsetzen|Postfix CentOS 7 - Postscreen einsetzen]] |
| |
| ==== Postfix CentOS 7 - AMaViS anbinden (amavisd-milter) ==== |
| |
| * Interner **Link** zu: [[tachtler:postfix_centos_7_-_amavis_anbinden_amavisd-milter|Postfix CentOS 7 - AMaViS anbinden (amavisd-milter)]] |
| |