sendmail le permite a uno colocar restricciones en las conversaciones de TLS. Quiero verificar que los mensajes enviados a example.com se envíen a un servidor que tenga un certificado * .messagelabs.com. Quiero proteger contra la falsificación de DNS y MitM. Si messagelabs solo tuviera un servidor, eso sería fácil:
TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com
Sin embargo, messagelabs tiene muchos servidores y clústeres de diferentes servidores con IP y certificados únicos para el mismo nombre. Todo eso está bien, solo quiero verificar que el servidor al que le estoy enviando el correo está certificado para pertenecer a messagelabs.
Yo he tratado
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
pero obtengo errores como
CN mail31.messagelabs.com does not match .*.messagelabs.com
¿Cómo puedo hacer esto? Esta es una solicitud recurrente para nosotros (principalmente para configuraciones como TLS_Rcpt: example.com VERIFY: 256 + CN: *. Example.com), por lo que estaría listo para modificar sendmail.cf, pero no puedo entender
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 (actualización a 8.15.2 pronto).