Sendmail 8.16.1

Sendmail 8.16.1 (veröffentlicht am 5. Juli 2020) bringt in erster Linie Erweiterungen im Bereich TLS.

TLS

Die in Sendmail 8.15.2 bereits als FFR (For Future Release) vorhandenen session-basiert einstellbaren TLS Features sind jetzt offiziell unterstützter Bestandteil. Eingestellt werden können durch Semikolon getrennt folgende key=value Paare:

  • ServerSSLOptions, ClientSSLOptions z.B. zur Einschränkung der erlaubten SSL-Versionen (siehe SSL_set_options(3))
  • CipherList
  • Cert- und KeyFile geben Zertifikats- und Schlüssel-Datei für diese Session an
  • Flags (bisher 2)
    • R für CRL (Certificate Revocation List) benötigt
    • c, C zum Aus- bzw. Einschalten der neuen Option TLSFallbacktoClear (siehe unten)

Beispiel für Access-DB bei aktiviertem FEATURE `tls_session_features':

TLS_Clt_features:192.168.2.2      Options=SSL_OP_NO_TLSv1_2; CipherList=ALL:-EXPORT; Flags=C

Interoperabilitätsprobleme bei TLS kann Sendmail jetzt automatisch umschiffen, indem er nach gescheitertem Handshake die Verbindung zur Gegenstelle erneut aufbaut, dieses Mal ohne Verwendung von STARTTLS. Dieses Verhalten wird global durch die Konfiguration von TLSFallbacktoClear erreicht oder per Session durch Setzen des C-Flags der TLS_Clt_Features (siehe oben). Vor 8.16 konnte man lediglich für bekannte inkompatible Server statische TLS-Ausnahmen (Try_TLS:broken.server NO) einrichten.

Neu ist auch die Option SSLEngine mit der ein Crypto Device zur Auslagerung bestimmter TLS-Operationen angegeben werden kann. 

Als i-Tüpfelchen wurde dem neuen Release DANE-Unterstützung verpasst. Erstmal werden nur die aktuell am weitesten verbreiteten TLSA Resource Records der Form 3-1-x, also nur Server-(nicht CA-)Zertifikate und Selektor SubjectPublicKeyInfo, geprüft.

Aja.. und nicht zu vergessen, OpenSSL 1.1.0 und 1.1.1 werden unterstützt, 0.9.8 und älter nicht mehr...

Weiteres

Kleine, aber fein Verbesserungen im Bereich Logging runden das neue Release ab. So enthalten AUTH Failures nun, wenn möglich, den verwendeten User-Namen:

Oct 27 14:21:28 mail sendmail[30268]: 09RDLNGm030268: AUTH failure (LOGIN): authentication failure (-13) SASL(-13): authentication failure: checkpass failed, user=info@sendmaid.org, relay=pop2.sendmaid.org [10.10.10.110]

Gescheiterte Zustellversuche bekommen in der to=-Zeile die neue Spalte reply=, die buchstäblich die Meldung der Gegenstelle enthält:

Oct 16 15:01:22 if8 sendmail[27658]: 09GD1Kwv027658: to=<info@sendmaid.org>, delay=00:00:02, xdelay=00:00:02, mailer=relay, pri=31367, relay=10.10.10.180 [10.10.10.180], dsn=5.7.1, ntries=1, reply=554 5.7.1 <info@sendmaid.org>: Relay access denied, stat=Service unavailable

wobei die neu entdeckte Liebe des Sendmail zur Prosa stets nach der ersten Zeile einer Fehlermeldung ihr Ende findet:

Oct 28 16:06:34 if8 sendmail[15372]: 09SF61bp015370: to=<asodihfowiehowiwewfwef@gmail.com>, delay=00:00:09, xdelay=00:00:01, mailer=esmtp, pri=120030, relay=gmail-smtp-in.l.google.com. [108.177.127.27], dsn=5.1.1, ntries=1, reply=550-5.1.1 The email account that you tried to reach does not exist. Please try, stat=User unknown

Referenzen:

1. ../sendmail-8.16.1/RELEASE_NOTES

2. ../sendmail-8.16.1/doc/op/op.ps

3. ../sendmail-8.16.1/cf/README

4. https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_options.html

5. https://tools.ietf.org/html/rfc7672