Debian9 postfix 3.1.4-7: Zertifikatsbasierendes Relaying defekt

Friedemann Stoyan fstoyan at swapon.de
So Sep 17 16:37:37 CEST 2017


Liebe Mailserverbetreiber!

Ich habe meinen internen Mailserver auf Debian 9.1 geupdatet. Leider ist dabei
das zertifikatsbasierende Relaying kaputt gegangen.

Folgendes Setup: Ein Client zeigt sein Zertifikat vor und wird anhand des SHA1
Fingerprints für das Relaying erlaubt.

Die relevante Konfiguration:

# TLS parameters
# TLS Server
smtpd_tls_fingerprint_digest = sha1
smtpd_tls_loglevel = 2
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/postfix/certs/mail-smtpd.crt
smtpd_tls_key_file = /etc/postfix/certs/mail-smtpd.key
smtpd_tls_CApath = /etc/ssl/certs
smtpd_tls_dh1024_param_file = /etc/postfix/dh2048.pem
smtpd_tls_dh512_param_file = /etc/postfix/dh512.pem
smtpd_tls_ask_ccert = yes
smtpd_tls_security_level = may
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls=yes

# list of clientcerts for the permit_tls_clientcerts feature
relay_clientcerts = btree:/etc/postfix/relay_clientcerts

# relay checks
smtpd_recipient_restrictions =
  check_recipient_access btree:/etc/postfix/discards
  permit_mynetworks
  #permit_tls_clientcerts
  check_ccert_access btree:/etc/postfix/relay_clientcerts
  reject_unauth_destination
  ...
  permit


$ cat /etc/postfix/relay_clientcerts
86:D8:7D:8E:4F:10:70:43:A1:43:85:F8:E0:A3:5A:34:45:0A:39:91     OK
E2:10:FB:E7:4A:CA:8D:A5:B6:95:61:E5:28:B0:FD:33:7E:B3:BD:86     OK

Im Logfile sieht das dann so aus:

Sep 17 15:55:15 intrepid postfix/smtpd[25651]: excelsior.lab.swapon.de[192.168.19.10]: subject_CN=excelsior.lab.swapon.de, issuer=CA, fingerprint=86:D8:7D:8E:4F:10:70:43:A1:43:85:F8:E0:A3:5A:34:45:0A:39:91, pkey_fingerprint=E2:10:FB:E7:4A:CA:8D:A5:B6:95:61:E5:28:B0:FD:33:7E:B3:BD:86
Sep 17 15:55:15 intrepid postfix/smtpd[25651]: Trusted TLS connection established from excelsior.lab.swapon.de[192.168.19.10]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Sep 17 15:55:15 intrepid postfix/smtpd[25651]: NOQUEUE: reject: RCPT from excelsior.lab.swapon.de[192.168.19.10]: 454 4.7.1 <echo at tu-berlin.de>: Relay access denied; from=<fstoyan at labbb.swapon.de> to=<echo at tu-berlin.de> proto=ESMTP helo=<excelsior.lab.swapon.de>

Für mich sieht das so aus, als ob permit_tls_clientcerts oder auch check_ccert_access
völlig ohne Wirkung bleiben. Obwohl ja der Fingerprint im Logfile korrekt
angezeigt wird. Manuell kann ich diesen auch finden:

$ postmap -q E2:10:FB:E7:4A:CA:8D:A5:B6:95:61:E5:28:B0:FD:33:7E:B3:BD:86 /etc/postfix/relay_clientcerts
OK
$ postmap -q 86:D8:7D:8E:4F:10:70:43:A1:43:85:F8:E0:A3:5A:34:45:0A:39:91 /etc/postfix/relay_clientcerts
OK

Vor dem Upgrade klappe alles wunderbar. Irgendwie bin ich jetzt ratlos. Hat
jemand eine Idee, oder das selbe Problem?

mfg Friedemann



Mehr Informationen über die Mailingliste Postfixbuch-users