sendmail, TLS konuşmalarında bir yer kısıtlamasına izin verir. Example.com'a gönderilen iletilerin * .messagelabs.com sertifikasına sahip bir sunucuya gönderildiğini kontrol etmek istiyorum. DNS sahteciliğine ve MitM'ye karşı korumak istiyorum. Messagelabs yalnızca kolay bir sunucuya sahipse:
TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com
Ancak mesaj etiketlerinin, aynı ad için benzersiz IP ve sertifikalara sahip farklı sunuculardan oluşan çok sayıda sunucusu ve kümesi vardır. Her şey yolunda, sadece posta verdiğim sunucunun mesaj etiketlerine ait olduğunu onaylamak istiyorum.
denedim
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
ama ben gibi hatalar alıyorum
CN mail31.messagelabs.com does not match .*.messagelabs.com
Bunu nasıl yapabilirim? Bu bizim için yinelenen bir istek (çoğunlukla TLS_Rcpt gibi yapılandırmalar için: example.com VERIFY: 256 + CN: *. Example.com), bu yüzden sendmail.cf üzerinde değişiklik yapmaya hazır olurum, ancak anlam ifade edemiyorum
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 (yakında 8.15.2 sürümüne geçecek).