sendmail consente restrizioni di un posto per le conversazioni TLS. Voglio verificare che i messaggi inviati a example.com vengano inviati a un server che ha un certificato * .messagelabs.com. Voglio proteggere dallo spoofing DNS e MitM. Se messagelabs avesse un solo server sarebbe facile:
TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com
Tuttavia messagelabs ha molti server e cluster di server diversi con IP e certificati univoci con lo stesso nome. Va bene, voglio solo controllare che il server a cui sto inviando la posta sia certificato per appartenere a messagelabs.
Ho provato
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
ma ricevo errori come
CN mail31.messagelabs.com does not match .*.messagelabs.com
Come posso fare questo? Questa è una richiesta ricorrente per noi (principalmente per configurazioni come TLS_Rcpt: example.com VERIFY: 256 + CN: *. Example.com), quindi sarei pronto a modificare sendmail.cf, ma non riesco a capire
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 (l'aggiornamento a 8.15.2 presto).