Debian9 postfix 3.1.4-7: Zertifikatsbasierendes Relaying defekt

Andreas Schulze andreas.schulze at datev.de
Mo Sep 18 09:19:16 CEST 2017


Am 17.09.2017 um 16:37 schrieb Friedemann Stoyan:
> 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
Da Du von Debian 9.1 sprichst, gehe ich von postfix-3.1.4 aus. Und *da* würde ich den Default-Wert (leer) bleiben.
siehe http://marc.info/?l=postfix-users&m=143796843615367

> smtpd_tls_session_cache_timeout = 3600s
Default-Wert, hat eigentlich nichts in der main.cf zu suchen

> smtpd_use_tls=yes
löschen, ab postfix 2.3 wird TLS über smtpd_tls_security_level gesteuert

> 
> # 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

Du hast offenbar aus $Verzweiflung? den Fingerprint des Zertifikates und des Öffentlichen Schlüssels in der relay_clientcerts.
( postmap & reload nicht vergessen??? )


> 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?

bis auf die 3 Punkte oben schaut's eigentlich ordentlich aus. Ich habe ein ähnliches Setup (aber halt kein Debian Postfix).

Ansonsten kannst Du mal mit 
# postconf -e "debug_peer_list=192.168.19.10"; postfix reload
debugging für den Client anschalten und schauen, mit welchen Parametern Postfix in welche Map reingeht und was da für Ergebnisse kommen.

Ansonsten ist die inline-map auch schick zum Probieren:
 check_ccert_access inline:{E2:10:FB:E7:4A:CA:8D:A5:B6:95:61:E5:28:B0:FD:33:7E:B3:BD:86=permit_auth_destination}
um testweise Probleme mit btree auszuschließen :-)

> 
> mfg Friedemann
> 

Andreas


-- 
A. Schulze
DATEV eG



Mehr Informationen über die Mailingliste Postfixbuch-users