Postfix/Dovecot: SSL/TLS anstelle von STARTTLS verwenden?

postfix_learner

New Member
Hallo.

Wenn ich mich mit Thunderbird zu meinem SMTP-Server verbinde, wird automatisch der unverschlüsselte Port 25 und STARTTLS verwendet. Ich möchte aber, dass der Port 465 für SSL/TLS verwendet werden kann, was selbst bei manueller Konfiguration von Thunderbird nicht möglich ist. Auch in meiner mail.log/mail.err steht nichts darüber drin.

Wie ich aus der Postfix-Dokumentation entnommen habe, muss dafür der Config-Eintrag "smtp_tls_wrappermode = yes" gesetzt sein.

So sieht der Teil meiner Config aus:

smtp_tls_security_level = encrypt

smtpd_tls_mandatory_protocols = TLSv1.3, TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers = medium

smtp_tls_wrappermode = yes

Weiß einer, wo das Problem liegen könnte? Und wie könnte man auch Dovecot (POP/IMAP) so konfigurieren, damit dort ebenfalls die Verbindung über den verschlüsselten Port verwendet werden kann anstelle der STARTTLS-Variante?

Vielen Dank!
 
Erst einmal greifen nur die beiden mittleren Befehle für eingehende Verbindungen - die anderen beiden nur ausgehend. Falls du auch Mails an Mailserver senden willst, die kein STARTTLS unterstützen, solltest du smtp_tls_security_level = may setzen und smtp_tls_wrappermode wieder rausnehmen (außer du relayst über einen Smarthost auf Port 465).
Wenn dein Postfix noch nicht auf Port 465 reagiert, ist dieser vermutlich in der master.cf noch nicht vorhanden oder auskommentiert. Dann musst du ihn dort anlegen (oder auskommentieren) und die Abweisungen von der Konfiguration in der main.cf mit dem -o Parameter setzen.
Hier ein Ausschnitt aus meiner master.cf:
Code:
smtps     inet  n       -       n       -       -       smtpd
 -o syslog_name=postfix/smtps
 -o smtpd_tls_wrappermode=yes
 -o ...
Danach kommen bei mir noch mehr Optionen (die abhängig von deiner main.cf durchaus anderes aussehen, daher spare ich sie mir hier) und vor dem -o ist am Anfang noch eine Leerstelle, damit Postfix erkennt, dass das alles noch zur ersten Zeile gehört. Der erste Parameter ist für die Anzeige im Syslog, den habe ich drin gelassen, damit du erkennst, dass die -o Option mehrfach verwendet werden kann. Die verschiedenen smtpd_*_restrictions sind bei mir auf permit_sasl_authenticated,reject gesetzt, während du in der main.cf da deutlich mehr drin stehen haben wirst.
Bezüglich Dovecot: Klar geht das
 
Erst einmal greifen nur die beiden mittleren Befehle für eingehende Verbindungen - die anderen beiden nur ausgehend. Falls du auch Mails an Mailserver senden willst, die kein STARTTLS unterstützen, solltest du smtp_tls_security_level = may setzen und smtp_tls_wrappermode wieder rausnehmen (außer du relayst über einen Smarthost auf Port 465).
Wenn dein Postfix noch nicht auf Port 465 reagiert, ist dieser vermutlich in der master.cf noch nicht vorhanden oder auskommentiert. Dann musst du ihn dort anlegen (oder auskommentieren) und die Abweisungen von der Konfiguration in der main.cf mit dem -o Parameter setzen.
Hier ein Ausschnitt aus meiner master.cf:
Code:
smtps     inet  n       -       n       -       -       smtpd
 -o syslog_name=postfix/smtps
 -o smtpd_tls_wrappermode=yes
 -o ...
Danach kommen bei mir noch mehr Optionen (die abhängig von deiner main.cf durchaus anderes aussehen, daher spare ich sie mir hier) und vor dem -o ist am Anfang noch eine Leerstelle, damit Postfix erkennt, dass das alles noch zur ersten Zeile gehört. Der erste Parameter ist für die Anzeige im Syslog, den habe ich drin gelassen, damit du erkennst, dass die -o Option mehrfach verwendet werden kann. Die verschiedenen smtpd_*_restrictions sind bei mir auf permit_sasl_authenticated,reject gesetzt, während du in der main.cf da deutlich mehr drin stehen haben wirst.
Bezüglich Dovecot: Klar geht das

Also vielen Dank erstmal!

Ich habe den WrapperMode erstmal wieder rausgenommen und den "Security_Level = may" gestellt, da ich eben keine Mailserver ausschließen will, die kein STARTTLS unterstützen. Das smtps in master.cf war bereits aktiviert, den Port konnte ich auch mit nmap nachvollziehen und auch auf die Firewall habe ich natürlich geachtet, dass Port 465 erlaubt ist.

Das eigentliche Problem konnte/kann ich mithilfe vom Client "openssl s_client -tls1_3 -connect test.com:465" nachvollziehen, als mir die Fehlermeldung "ssl3_get_record:wrong version number" erschien. Sobald ich anstelle von der Option tls1_3 starttls nehme, funktioniert es. Und selbst wenn ich ssl3 unter smtpd_tls_mandatory_protocols zulasse, funktioniert es nicht, was aber sowieso irrelevant sein sollte, da ich ja explizit auf TLS1.3 bei openssl verwiesen habe.
 
Ja. Das habe ich tatsächlich nicht mit reingenommen. Jetzt funktioniert es. Also smtpd_tls_wrappermode bedeutet einfach, dass der Postfix-Server nicht erst über den "Umweg" von STARTTLS angesprochen werden braucht, sondern gleich über SSL/TLS. Das ergibt Sinn.
 
Last edited:
[...] Und wie könnte man auch Dovecot (POP/IMAP) so konfigurieren, damit dort ebenfalls die Verbindung über den verschlüsselten Port verwendet werden kann anstelle der STARTTLS-Variante? [...]
Es gibt zu diesem Thema sehr viele einfach verständliche und gut nachvollziehbare Anleitungen. Wie wäre es, dass Du erstmal da nachschaust, bevor Du hier so allgemeine Fragen stellst?

Zum Thema:

Beispiel bezieht sich auf Ubuntu 22.04 - da könnte man folgende Zeilen in der /etc/dovecot/dovecot.conf fallen lassen. Die Pfade zu den Zertifikaten müssen natürlich an die eigenen Gegebenheiten angepasst werden.

## TLS Config ssl = required ssl_cert = </etc/acme.sh/mail.meine-domain.me/fullchain.pem ssl_key = </etc/acme.sh/mail.meine-domain.me/privkey.pem ssl_dh = </etc/dovecot/dh4096.pem ssl_min_protocol = TLSv1.2 ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA- AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA- AES256-GCM-SHA384 ssl_prefer_server_ciphers = yes
 
Back
Top