sendmail дозволяє на одне місце обмеження на TLS-розмови. Я хочу перевірити, що повідомлення, надіслані на сторінку example.com, надсилаються на сервер із сертифікатом * .messagelabs.com. Я хочу захистити від підробки DNS та MitM. Якби у повідомленнях були лише один сервер, це було б просто:
TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com
Однак у messagelabs є багато серверів та кластерів різних серверів з унікальними IP-адресами та сертифікатами для одного і того ж імені. Все, що добре, я просто хочу перевірити, чи є сервер, якому я даю пошту, сертифікований на присутність в повідомленнях.
я намагався
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
але я отримую помилки на кшталт
CN mail31.messagelabs.com does not match .*.messagelabs.com
Як я можу це зробити? Це повторний запит для нас (в основному для таких конфігурацій, як TLS_Rcpt: example.com VERIFY: 256 + CN: *. Example.com), тож я був би готовий змінити sendmail.cf, але я не можу мати сенс
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 (невдовзі оновлення до 8.15.2).