sendmail TLS वार्तालाप पर एक स्थान का प्रतिबंध देता है। मैं यह जांचना चाहता हूं कि example.com को भेजे गए संदेश एक सर्वर पर भेजे गए हैं जिनके पास * .messagelabs.com प्रमाणपत्र है। मैं डीएनएस स्पूफिंग और मिट के खिलाफ सुरक्षा करना चाहता हूं। अगर मेसैगेलैब्स में केवल एक सर्वर होता है जो आसान होगा:
TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com
हालाँकि मेसैगेलैब्स में एक ही नाम के लिए अद्वितीय IP और certs के साथ विभिन्न सर्वरों के बहुत सारे सर्वर और क्लस्टर होते हैं। यह सब ठीक है, मैं सिर्फ उस सर्वर को जांचना चाहता हूं जो मैं मेल को दे रहा हूं जो मेसैगेलैब्स से संबंधित होने के लिए प्रमाणित है।
मैंने कोशिश की है
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 पर अपग्रेड हो रहा है)।