sendmail permet de placer des restrictions sur les conversations TLS. Je souhaite vérifier que les messages envoyés à example.com sont envoyés à un serveur disposant d'un certificat * .messagelabs.com. Je veux me protéger contre l'usurpation DNS et MitM. Si messagelabs n'avait qu'un seul serveur, ce serait facile:
TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com
Cependant, messagelabs a beaucoup de serveurs et de clusters de serveurs différents avec des adresses IP et des certificats uniques pour le même nom. Tout cela va bien, je veux juste vérifier que le serveur auquel je donne le courrier est certifié pour appartenir à messagelabs.
j'ai essayé
TLS_Rcpt:example.com VERIFY:256+CN:messagelabs.com
TLS_Rcpt:example.com VERIFY:256+CN:*.messagelabs.com
TLS_Rcpt:example.com VERIFY:256+CN:.*.messagelabs.com
mais je reçois des erreurs comme
CN mail31.messagelabs.com does not match .*.messagelabs.com
Comment puis-je faire ceci? Il s'agit d'une demande récurrente pour nous (principalement pour des configurations comme TLS_Rcpt: example.com VERIFY: 256 + CN: *. Example.com), donc je serais prêt à modifier sendmail.cf, mais je ne peux pas comprendre
STLS_req
R $| $+ $@ OK
R<CN> $* $| <$+> $: <CN:$&{TLS_Name}> $1 $| <$2>
R<CN:$&{cn_subject}> $* $| <$+> $@ $>"TLS_req" $1 $| <$2>
R<CN:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " CN " $&{cn_subject} " does not match " $1
R<CS:$&{cert_subject}> $* $| <$+> $@ $>"TLS_req" $1 $| <$2>
R<CS:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " Cert Subject " $&{cert_subject} " does not match " $1
R<CI:$&{cert_issuer}> $* $| <$+> $@ $>"TLS_req" $1 $| <$2>
R<CI:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " Cert Issuer " $&{cert_issuer} " does not match " $1
ROK $@ OK
Sendmail 8.14.7 (mise à niveau vers 8.15.2 bientôt).