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