SASL: Unterschied zwischen den Versionen
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“ |
K Textersetzung - „ Postfix “ durch „ Postfix “ |
||
| (7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
Die SMTP-Protokollspezifikationen enthalten eine Möglichkeit zur Benutzerauthentifizierung, geben jedoch nicht die genauen Details des Protokollnachrichtenaustauschs an und greifen stattdessen auf den SASL-Standard (Simple Authentication and Security Layer) zurück (siehe <nowiki>RFC 4954</nowiki> und <nowiki>RFC 4422</nowiki> ). | Die SMTP-Protokollspezifikationen enthalten eine Möglichkeit zur Benutzerauthentifizierung, geben jedoch nicht die genauen Details des Protokollnachrichtenaustauschs an und greifen stattdessen auf den SASL-Standard (Simple Authentication and Security Layer) zurück (siehe <nowiki>RFC 4954</nowiki> und <nowiki>RFC 4422</nowiki>). | ||
* SASL ist ein generisches Authentifizierungs-Framework für Authentifizierungsmechanismen, von denen es viele gibt, und jeder von ihnen hat sein eigenes spezielles Verfahren, das die notwendigen kryptografischen Schritte vorschreibt, die mit den Authentifizierungsdaten und Nachrichten zum Austausch über die Verbindung durchzuführen sind. | * SASL ist ein generisches Authentifizierungs-Framework für Authentifizierungsmechanismen, von denen es viele gibt, und jeder von ihnen hat sein eigenes spezielles Verfahren, das die notwendigen kryptografischen Schritte vorschreibt, die mit den Authentifizierungsdaten und Nachrichten zum Austausch über die Verbindung durchzuführen sind. | ||
* Daher authentifiziert Postfix selbst SMTP-Benutzer nicht mit Benutzernamen und Passwörtern oder auf andere Weise, um keine künstlichen Grenzen für die damit verwendbaren Authentifizierungsmechanismen aufzuerlegen. | * Daher authentifiziert [[Postfix]] selbst SMTP-Benutzer nicht mit Benutzernamen und Passwörtern oder auf andere Weise, um keine künstlichen Grenzen für die damit verwendbaren Authentifizierungsmechanismen aufzuerlegen. | ||
* Es verlagert diese Aufgabe auf eine SASL-Implementierung, die separat installiert werden muss. | * Es verlagert diese Aufgabe auf eine SASL-Implementierung, die separat installiert werden muss. | ||
* Der SASL-Authentifizierungs-Daemon ist sowohl für die Richtlinie (dh wo gültige Benutzernamen und Geheimnisse wie Passwörter aufbewahrt werden) als auch für den Mechanismus (wie genau Clients Anmeldeinformationen bereitstellen) verantwortlich. | * Der SASL-Authentifizierungs-Daemon ist sowohl für die Richtlinie (dh wo gültige Benutzernamen und Geheimnisse wie Passwörter aufbewahrt werden) als auch für den Mechanismus (wie genau Clients Anmeldeinformationen bereitstellen) verantwortlich. | ||
| Zeile 10: | Zeile 10: | ||
== Einführung == | == Einführung == | ||
Sobald Postfix eingerichtet ist und ausgeführt wird, können Sie die SASL-Authentifizierung hinzufügen, um eine Weiterleitung zu vermeiden. | Sobald [[Postfix]] eingerichtet ist und ausgeführt wird, können Sie die SASL-Authentifizierung hinzufügen, um eine Weiterleitung zu vermeiden. | ||
* Um zu verhindern, dass anonyme Benutzer spammen, können nur authentifizierte und vertrauenswürdige Benutzer E-Mails senden. | * Um zu verhindern, dass anonyme Benutzer spammen, können nur authentifizierte und vertrauenswürdige Benutzer E-Mails senden. | ||
Da Postfix -Paket in [extra] bereits mit SASL-Unterstützung kompiliert ist, haben Sie zwei Möglichkeiten, um die SASL-Authentifizierung zu aktivieren: | Da [[Postfix]] -Paket in [extra] bereits mit SASL-Unterstützung kompiliert ist, haben Sie zwei Möglichkeiten, um die SASL-Authentifizierung zu aktivieren: | ||
* Verwenden Sie das cyrus-sasl- Paket. | * Verwenden Sie das cyrus-sasl- Paket. | ||
* Oder aktivieren Sie Ihr bereits konfiguriertes Dovecot , um die Postfix-Authentifizierung (sowie seine eigene) zu handhaben. | * Oder aktivieren Sie Ihr bereits konfiguriertes Dovecot , um die [[Postfix]]-Authentifizierung (sowie seine eigene) zu handhaben. | ||
; Von der Postfix-Website | ; Von der [[Postfix]]-Website | ||
* Leute, die sich die Mühe machen, Postfix zu installieren, haben vielleicht die Erwartung, dass Postfix sicherer ist als einige andere Mailer. | * Leute, die sich die Mühe machen, [[Postfix]] zu installieren, haben vielleicht die Erwartung, dass [[Postfix]] sicherer ist als einige andere Mailer. | ||
* Die Cyrus SASL-Bibliothek enthält viel Code. | * Die Cyrus SASL-Bibliothek enthält viel Code. | ||
** Damit wird Postfix so sicher wie andere Mailsysteme, die die Cyrus SASL-Bibliothek verwenden. | ** Damit wird [[Postfix]] so sicher wie andere Mailsysteme, die die Cyrus SASL-Bibliothek verwenden. | ||
** Dovecot bietet eine Alternative, die eine Überlegung wert sein könnte. | ** Dovecot bietet eine Alternative, die eine Überlegung wert sein könnte. | ||
| Zeile 26: | Zeile 26: | ||
== Aufruf == | == Aufruf == | ||
=== Optionen === | === Optionen === | ||
=== | === Argumente === | ||
=== Umgebung === | === Umgebung === | ||
=== Rückgabewert === | === Rückgabewert === | ||
| Zeile 37: | Zeile 37: | ||
Installieren Sie das cyrus-sasl- Paket. | Installieren Sie das cyrus-sasl- Paket. | ||
Um SASL für das Akzeptieren von E-Mails von anderen Benutzern zu aktivieren, öffnen Sie den | Um SASL für das Akzeptieren von E-Mails von anderen Benutzern zu aktivieren, öffnen Sie den "Nachrichtenübermittlung" (TCP 587) in <code>/etc/postfix/master.cf</code>, indem Sie diese Zeilen auskommentieren (die standardmäßig vorhanden sind, nur kommentiert): | ||
Übermittlung inet n - n - - smtpd | Übermittlung inet n - n - - smtpd | ||
-o syslog_name=postfix/submission | |||
-o smtpd_tls_security_level=verschlüsseln | |||
-o smtpd_sasl_auth_enable=ja | |||
-o smtpd_reject_unlisted_recipient=nein | |||
# -o smtpd_client_restrictions=$mua_client_restrictions | |||
# -o smtpd_helo_restrictions=$mua_helo_restrictions | |||
# -o smtpd_sender_restrictions=$mua_sender_restrictions | |||
-o smtpd_recipient_restrictions=permit_sasl_authenticated,ablehnen | |||
-o milter_macro_daemon_name=URSPRUNG | |||
Beachten Sie, dass dies auch SSL aktiviert. | Beachten Sie, dass dies auch SSL aktiviert. | ||
* Wenn Sie also kein SSL-Zertifikat haben, lassen Sie die Option "smtpd_tls_security_level" auskommentiert. | * Wenn Sie also kein SSL-Zertifikat haben, lassen Sie die Option "smtpd_tls_security_level" auskommentiert. | ||
| Zeile 53: | Zeile 53: | ||
Die drei Restriktionsoptionen (client, helo, sender) können auch auskommentiert bleiben, da smtpd_recipient_restrictions bereits SASL-Benutzer behandelt. | Die drei Restriktionsoptionen (client, helo, sender) können auch auskommentiert bleiben, da smtpd_recipient_restrictions bereits SASL-Benutzer behandelt. | ||
SASL kann verschiedene Authentifizierungsmethoden verwenden. | SASL kann verschiedene Authentifizierungsmethoden verwenden. Der Standardwert ist PAM (wie konfiguriert in <code>/etc/conf.d/saslauthd</code>), aber um es richtig einzurichten, müssen Sie es erstellen <code>/etc/sasl2/smtpd.conf</code>: | ||
pwcheck_method: saslauthd | pwcheck_method: saslauthd | ||
mech_list: EINFACHES LOGIN | |||
log_level: 7 | |||
Da pambase 20190105.1-1 und neuer einen restriktiven Fallback für "andere" PAM-Dienste verwendet, ist jetzt eine pam-Konfigurationsdatei erforderlich. [1] [2] | Da pambase 20190105.1-1 und neuer einen restriktiven Fallback für "andere" PAM-Dienste verwendet, ist jetzt eine pam-Konfigurationsdatei erforderlich. [1] [2] | ||
Schaffen <code>/etc/pam.d/smtp</code>. | Schaffen <code>/etc/pam.d/smtp</code>. | ||
#%PAM-1.0 | #%PAM-1.0 | ||
Authentifizierung erforderlich pam_unix.so | |||
Konto erforderlich pam_unix.so | |||
Bei Verwendung von PAM in Verbindung mit openldap zur Authentifizierung ist eine '''alternative''' pam-Konfigurationsdatei ( <code>/etc/pam.d/smtp</code>) könnte ähnlich aufgebaut sein wie: LDAP-Authentifizierung#PAM-Konfiguration | Bei Verwendung von PAM in Verbindung mit openldap zur Authentifizierung ist eine '''alternative''' pam-Konfigurationsdatei (<code>/etc/pam.d/smtp</code>) könnte ähnlich aufgebaut sein wie: LDAP-Authentifizierung#PAM-Konfiguration | ||
#%PAM-1.0 | #%PAM-1.0 | ||
auth ausreichend pam_ldap.so try_first_pass minimum_uid=2000 | |||
Authentifizierung erforderlich pam_unix.so | |||
Konto ausreichend pam_ldap.so minimum_uid=2000 | |||
Konto erforderlich pam_unix.so | |||
Starten/aktivieren Sie die <code>saslauthd.service</code>. | Starten/aktivieren Sie die <code>saslauthd.service</code>. | ||
Starten Sie die <code>postfix.service</code>. | Starten Sie die <code>postfix.service</code>. | ||
Wenn Sie den SASL-PAM-Authentifizierungsprozess validieren möchten, kann der folgende Befehl ausgeführt werden, um festzustellen, ob SASL über PAM authentifizieren kann: | Wenn Sie den SASL-PAM-Authentifizierungsprozess validieren möchten, kann der folgende Befehl ausgeführt werden, um festzustellen, ob SASL über PAM authentifizieren kann: | ||
# testsaslauthd -u <Benutzername> -p <Passwort> -s smtp | # testsaslauthd -u <Benutzername> -p <Passwort> -s smtp | ||
Hoffentlich sollten Sie mit Telnet auf Ihren Postfix-Server zugreifen können: | Hoffentlich sollten Sie mit Telnet auf Ihren [[Postfix]]-Server zugreifen können: | ||
<code>telnet localhost 587</code> | <code>telnet localhost 587</code> | ||
| Zeile 90: | Zeile 90: | ||
Versuche es mit 127.0.0.1... | Versuche es mit 127.0.0.1... | ||
Verbunden mit localhost.localdomain | |||
Escape-Zeichen ist '^]' | |||
220 Justin ESMTP-Postfix | |||
EHLO-Beispiel.com | |||
250-justin | |||
250-PIPELINING | |||
250-GRÖSSE 10240000 | |||
250-VRFY | |||
250-ETRN | |||
250-AUTH PLAIN OTP DIGEST-MD5 CRAM-MD5 | |||
250 8BITMIME | |||
== Konfiguration mit Dovecot == | == Konfiguration mit Dovecot == | ||
| Zeile 109: | Zeile 109: | ||
Einfach bearbeiten <code>/etc/postfix/master.cf</code>und fügen Sie die folgenden Zeilen unter der hinzu <code>submission</code>oder <code>smtp</code>Abschnitt (je nachdem, was Sie verwenden): | Einfach bearbeiten <code>/etc/postfix/master.cf</code>und fügen Sie die folgenden Zeilen unter der hinzu <code>submission</code>oder <code>smtp</code>Abschnitt (je nachdem, was Sie verwenden): | ||
# SASL-Authentifizierung mit dovecot | # SASL-Authentifizierung mit dovecot | ||
-o smtpd_tls_security_level=verschlüsseln | |||
-o smtpd_sasl_auth_enable=ja | |||
-o smtpd_sasl_type=Taubenschlag | |||
-o smtpd_sasl_path=privat/auth | |||
-o smtpd_sasl_security_options=noanonymous | |||
-o smtpd_sasl_local_domain=$meinHostname | |||
-o smtpd_client_restrictions=permit_sasl_authenticated,ablehnen | |||
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject | |||
Die Verwendung dieser Konfiguration impliziert, dass nur authentifizierte Benutzer E-Mails senden können. | Die Verwendung dieser Konfiguration impliziert, dass nur authentifizierte Benutzer E-Mails senden können. Sie können dies von sehen <code>smtpd_client_restrictions</code>Möglichkeit. | ||
Fügen Sie nun Folgendes zur Dovecot-Konfigurationsdatei hinzu <code>/etc/dovecot/conf.d/10-master.conf</code>: | Fügen Sie nun Folgendes zur Dovecot-Konfigurationsdatei hinzu <code>/etc/dovecot/conf.d/10-master.conf</code>: | ||
Service-Authentifizierung { | Service-Authentifizierung { | ||
unix_listener /var/spool/postfix/private/auth { | |||
Gruppe = Postfix | |||
Modus = 0660 | |||
Benutzer = postfix | |||
} | |||
Benutzer = root | |||
} | |||
Wie Sie sehen, wird ein Unix-Socket erstellt <code>/var/spool/postfix/private/auth</code>, das gleiche angegeben in <code>smtpd_sasl_path</code>Option von <code>master.cf</code> | Wie Sie sehen, wird ein Unix-Socket erstellt <code>/var/spool/postfix/private/auth</code>, das gleiche angegeben in <code>smtpd_sasl_path</code>Option von <code>master.cf</code> | ||
abschließend Postfix- als auch den Dovecot-Dienst neu. | abschließend [[Postfix]]- als auch den Dovecot-Dienst neu. | ||
== Sicherheit == | == Sicherheit == | ||
== Dokumentation == | == Dokumentation == | ||
| Zeile 138: | Zeile 138: | ||
=== Info-Pages === | === Info-Pages === | ||
=== Siehe auch === | === Siehe auch === | ||
# Postfix SASL Readme in der offiziellen Postfix-Dokumentation. | # [[Postfix]] SASL Readme in der offiziellen [[Postfix]]-Dokumentation. | ||
# SASL-Authentifizierung mit Dovecot in der offiziellen Dovecot-Dokumentation. | # SASL-Authentifizierung mit Dovecot in der offiziellen Dovecot-Dokumentation. | ||
# Centos Howto Postfix SASL | # Centos Howto [[Postfix]] SASL | ||
== Links == | == Links == | ||
Aktuelle Version vom 4. Juli 2026, 13:11 Uhr
topic - Kurzbeschreibung
Beschreibung
Die SMTP-Protokollspezifikationen enthalten eine Möglichkeit zur Benutzerauthentifizierung, geben jedoch nicht die genauen Details des Protokollnachrichtenaustauschs an und greifen stattdessen auf den SASL-Standard (Simple Authentication and Security Layer) zurück (siehe RFC 4954 und RFC 4422).
- SASL ist ein generisches Authentifizierungs-Framework für Authentifizierungsmechanismen, von denen es viele gibt, und jeder von ihnen hat sein eigenes spezielles Verfahren, das die notwendigen kryptografischen Schritte vorschreibt, die mit den Authentifizierungsdaten und Nachrichten zum Austausch über die Verbindung durchzuführen sind.
- Daher authentifiziert Postfix selbst SMTP-Benutzer nicht mit Benutzernamen und Passwörtern oder auf andere Weise, um keine künstlichen Grenzen für die damit verwendbaren Authentifizierungsmechanismen aufzuerlegen.
- Es verlagert diese Aufgabe auf eine SASL-Implementierung, die separat installiert werden muss.
- Der SASL-Authentifizierungs-Daemon ist sowohl für die Richtlinie (dh wo gültige Benutzernamen und Geheimnisse wie Passwörter aufbewahrt werden) als auch für den Mechanismus (wie genau Clients Anmeldeinformationen bereitstellen) verantwortlich.
- Dies steht im Gegensatz zu zB OpenSMTPD , das nur PLAIN- und LOGIN-SASL-Mechanismen unterstützt, aber nicht auf externe Bibliotheken oder Dämonen angewiesen ist.
Einführung
Sobald Postfix eingerichtet ist und ausgeführt wird, können Sie die SASL-Authentifizierung hinzufügen, um eine Weiterleitung zu vermeiden.
- Um zu verhindern, dass anonyme Benutzer spammen, können nur authentifizierte und vertrauenswürdige Benutzer E-Mails senden.
Da Postfix -Paket in [extra] bereits mit SASL-Unterstützung kompiliert ist, haben Sie zwei Möglichkeiten, um die SASL-Authentifizierung zu aktivieren:
- Verwenden Sie das cyrus-sasl- Paket.
- Oder aktivieren Sie Ihr bereits konfiguriertes Dovecot , um die Postfix-Authentifizierung (sowie seine eigene) zu handhaben.
- Von der Postfix-Website
- Leute, die sich die Mühe machen, Postfix zu installieren, haben vielleicht die Erwartung, dass Postfix sicherer ist als einige andere Mailer.
- Die Cyrus SASL-Bibliothek enthält viel Code.
- Damit wird Postfix so sicher wie andere Mailsysteme, die die Cyrus SASL-Bibliothek verwenden.
- Dovecot bietet eine Alternative, die eine Überlegung wert sein könnte.
Installation
Aufruf
Optionen
Argumente
Umgebung
Rückgabewert
Konfiguration
Dateien
Anwendung
Konfiguration mit dem Paket cyrus-sasl
Installieren Sie das cyrus-sasl- Paket.
Um SASL für das Akzeptieren von E-Mails von anderen Benutzern zu aktivieren, öffnen Sie den "Nachrichtenübermittlung" (TCP 587) in /etc/postfix/master.cf, indem Sie diese Zeilen auskommentieren (die standardmäßig vorhanden sind, nur kommentiert):
Übermittlung inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=verschlüsseln -o smtpd_sasl_auth_enable=ja -o smtpd_reject_unlisted_recipient=nein # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions=permit_sasl_authenticated,ablehnen -o milter_macro_daemon_name=URSPRUNG
Beachten Sie, dass dies auch SSL aktiviert.
- Wenn Sie also kein SSL-Zertifikat haben, lassen Sie die Option "smtpd_tls_security_level" auskommentiert.
Die drei Restriktionsoptionen (client, helo, sender) können auch auskommentiert bleiben, da smtpd_recipient_restrictions bereits SASL-Benutzer behandelt.
SASL kann verschiedene Authentifizierungsmethoden verwenden. Der Standardwert ist PAM (wie konfiguriert in /etc/conf.d/saslauthd), aber um es richtig einzurichten, müssen Sie es erstellen /etc/sasl2/smtpd.conf:
pwcheck_method: saslauthd mech_list: EINFACHES LOGIN log_level: 7
Da pambase 20190105.1-1 und neuer einen restriktiven Fallback für "andere" PAM-Dienste verwendet, ist jetzt eine pam-Konfigurationsdatei erforderlich. [1] [2]
Schaffen /etc/pam.d/smtp.
#%PAM-1.0 Authentifizierung erforderlich pam_unix.so Konto erforderlich pam_unix.so
Bei Verwendung von PAM in Verbindung mit openldap zur Authentifizierung ist eine alternative pam-Konfigurationsdatei (/etc/pam.d/smtp) könnte ähnlich aufgebaut sein wie: LDAP-Authentifizierung#PAM-Konfiguration
#%PAM-1.0 auth ausreichend pam_ldap.so try_first_pass minimum_uid=2000 Authentifizierung erforderlich pam_unix.so Konto ausreichend pam_ldap.so minimum_uid=2000 Konto erforderlich pam_unix.so
Starten/aktivieren Sie die saslauthd.service.
Starten Sie die postfix.service.
Wenn Sie den SASL-PAM-Authentifizierungsprozess validieren möchten, kann der folgende Befehl ausgeführt werden, um festzustellen, ob SASL über PAM authentifizieren kann:
# testsaslauthd -u <Benutzername> -p <Passwort> -s smtp
Hoffentlich sollten Sie mit Telnet auf Ihren Postfix-Server zugreifen können:
telnet localhost 587
Sie sollten dann Folgendes eingeben:
EHLO example.com
Dies ist ungefähr das, was Sie sehen sollten:
Versuche es mit 127.0.0.1... Verbunden mit localhost.localdomain Escape-Zeichen ist '^]' 220 Justin ESMTP-Postfix EHLO-Beispiel.com 250-justin 250-PIPELINING 250-GRÖSSE 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN OTP DIGEST-MD5 CRAM-MD5 250 8BITMIME
Konfiguration mit Dovecot
Wenn Sie Dovecot als IMAP- oder POP-Mailserver verwenden und sich Ihre Benutzer bereits authentifizieren (möglicherweise mit PAM), müssen Sie kein weiteres Paket konfigurieren.
Einfach bearbeiten /etc/postfix/master.cfund fügen Sie die folgenden Zeilen unter der hinzu submissionoder smtpAbschnitt (je nachdem, was Sie verwenden):
# SASL-Authentifizierung mit dovecot -o smtpd_tls_security_level=verschlüsseln -o smtpd_sasl_auth_enable=ja -o smtpd_sasl_type=Taubenschlag -o smtpd_sasl_path=privat/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_local_domain=$meinHostname -o smtpd_client_restrictions=permit_sasl_authenticated,ablehnen -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
Die Verwendung dieser Konfiguration impliziert, dass nur authentifizierte Benutzer E-Mails senden können. Sie können dies von sehen smtpd_client_restrictionsMöglichkeit.
Fügen Sie nun Folgendes zur Dovecot-Konfigurationsdatei hinzu /etc/dovecot/conf.d/10-master.conf:
Service-Authentifizierung {
unix_listener /var/spool/postfix/private/auth {
Gruppe = Postfix
Modus = 0660
Benutzer = postfix
}
Benutzer = root
}
Wie Sie sehen, wird ein Unix-Socket erstellt /var/spool/postfix/private/auth, das gleiche angegeben in smtpd_sasl_pathOption von master.cf
abschließend Postfix- als auch den Dovecot-Dienst neu.
Sicherheit
Dokumentation
RFC
Man-Page
Info-Pages
Siehe auch
- Postfix SASL Readme in der offiziellen Postfix-Dokumentation.
- SASL-Authentifizierung mit Dovecot in der offiziellen Dovecot-Dokumentation.
- Centos Howto Postfix SASL