Re: Verständnisfrage zu smtpd_tls_security_level / maincf und master.cf
Markus Winkler
ml at irmawi.de
Mi Mai 22 20:42:59 CEST 2024
Hallo Jens,
On 22.05.24 19:18, postfix_dovecot at gmx.de wrote:
> wenn ich "smtpd_tls_security_level=encrypt" auskommentiere (und damit "may" aus der main cf.angezogen wird) und "smtpd_tls_auth_only=no" setze, dann kann ich auch verschlüsselt oder unverschlüsselt Mail einliefern.
danke fürs Testen - schön, dass es funktioniert hat. ;-)
> Damit wäre die Problemstellung reproduzierbar und es ergibt sich für mich der Erkenntnisgewinn, dass sich die Parameter bedingen. Aber wo ist da der Sinn?
Stimmt, es gibt Abhängigkeiten. Genau genommen hängt aber eigentlich nur
der smtpd_tls_auth_only von smtpd_tls_security_level ab - umgekehrt gibt es
m. E. keine.
Eine Anmerkung vorweg: Man muss daran denken, dass wir ja hier nicht nur
über Clients in Form von (klassischen Enduser-)MUAs (wie Outlook,
Thunderbird, Claws Mail etc.) sprechen, sondern eben auch von alle anderen
SMTP-Clients. Und dazu gehören z. B. andere Mailserver oder auch ein
hornalter Scanner, die Mails einliefern möchten.
I.
Über smtpd_tls_security_level steuere ich als empfangender Server, welche
Anforderungen ich hinsichtlich der Verschlüsselung der Transportschicht
(TLS) _generell(!)_ an meine Kommunikationspartner stelle:
(1) TLS wird gar nicht unterstützt (none)
(2) TLS wird angeboten, vom einliefernden Client (Server, MUA) aber nicht
zwingend verlangt (may)
(3) TLS-Nutzung wird zwingend vorausgesetzt (encrypt)
Das ist also ein sehr entscheidender Aspekt, der über diesen Parameter
gesteuert und beeinflusst wird.
II.
Eine "spezielle" Konstellation bei der Einlieferung von Mails ist die, dass
vor Annahme der Mails durch den empfangenden Server eine Authentifizierung
des einliefernden Clients gefordert wird. Dies wird hauptsächlich bei
Szenarien von Bedeutung sein, in denen die oben erwähnten Enduser-Clients
Mails versenden wollen und sich (heutzutage) natürlich am Mailserver
authentifizieren müssen.
In dieser Situation kann ich als Server natürlich festlegen
(smtpd_tls_security_level=encrypt), dass ich ausschließlich
TLS-Verbindungen unterstütze (s. o.: (3)).
Damit wird die gesamte nachfolgende Kommunikation verschlüsselt ablaufen,
inkl. der notwendigen Authentifizierung. Der Wert des Parameters
smtpd_tls_auth_only ist in diesem Szenario daher quasi bedeutungslos. (Es
schadet aber auch nicht, wenn er auf 'yes' gesetzt wird, denn mit STARTTLS
kann man u. U. auch in Fallen tappen.)
Ist allerdings (2) definiert (smtpd_tls_security_level=may), dann lasse ich
ja dem Client grundsätzlich einen gewissen Spielraum, was die Nutzung von
TLS anbelangt: Ich als Server biete es an, erzwinge es aber nicht. Für
diese Toleranz kann es Gründe geben. Ich kann aber in diesem Moment als
Server gleichzeitig trotzdem verlangen, dass in den Fällen, die eine
Authentifizierung erfordern, die Übertragung von sensiblen Anmeldedaten
ausschließlich über TLS-gesicherte Verbindungen stattfindet:
smtpd_tls_auth_only=yes.
Daher haben m. E. beide Parameter ihre Berechtigung, wenngleich je länger
je mehr smtpd_tls_auth_only an Bedeutung verlieren wird - idealerweise wird
gerade auf den für Enduser-MUAs relevanten Submission- und SMTPS-Ports
ausschließlich verschlüsselte Übertragung unterstützt, womit der Fall, dass
Anmeldedaten ungesichert übertragen werden könnten, sowieso nicht mehr
eintritt.
Sorry für den halben Roman und das weite Ausholen. Ich hoffe, das
beantwortet Deine Fragen nach Sinn und Zusammenhang dieser Parameter ein wenig.
Viele Grüße
Markus
Mehr Informationen über die Mailingliste postfix-users