sendmailでは、TLS会話を制限できます。example.comに送信されたメッセージが* .messagelabs.com証明書を持つサーバーに送信されていることを確認したいと思います。DNSスプーフィングとMitMから保護したい。メッセージラボに簡単なサーバーが1つしかない場合:
TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com
ただし、メッセージラボには多数のサーバーと、同じ名前の一意の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にアップグレード)。