मैं Sendmail TLS_Rcpt के लिए वाइल्डकार्ड का उपयोग कैसे कर सकता हूं?


9

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 पर अपग्रेड हो रहा है)।


तो, कोई जवाब नहीं (अभी तक?) मैं खुद इसका जवाब देने की कोशिश करूंगा, लेकिन मुझे यकीन नहीं है कि अगर एक या एक दिन भेज दिया जाए तो सेंडमेल पुस्तक के अध्याय 28 को एकीकृत करने के लिए पर्याप्त समय है या उत्तर भी मिलेगा।
कानून २

2
मेरे पास एक निश्चित उत्तर प्रदान करने के लिए पर्याप्त आत्मविश्वास नहीं है, लेकिन मुझे नहीं लगता कि वाइल्डकार्ड इस ब्लॉग पोस्ट के "वर्तमान कार्यान्वयन में सीमा" के अनुसार समर्थित हैं: सुरक्षा-skywalker.blogspot.com/2013/01/ ...
माइक बी

... और हाँ, मुझे पता है कि "वाइल्डकार्ड सेर्ट्स" वाइल्डकार्ड से मेल खाने वाले पैटर्न की कार्यक्षमता से भिन्न होते हैं, जिन्हें आप खोज रहे हैं, लेकिन लेख उस सुविधा की स्थिर प्रकृति पर प्रकाश डालता है। :-)
माइक बी

हो सकता है कि आपका उत्तर निश्चित नहीं है, लेकिन यह सबसे अच्छा मैंने पाया है (किसी कारण से मुझे वह ब्लॉग पोस्ट नहीं मिली, इसे मेरे ध्यान में लाने के लिए धन्यवाद)
Law29

क्या आप CNRE टैग के लिए समर्थन का परीक्षण करना चाहेंगे? यह आपके कस्टम रेगुलर एक्सप्रेशन के खिलाफ $ & {cn_subject} का परीक्षण करेगा।
15

जवाबों:


1

Sendmail.cf स्टोर बनाएं ${cn_subject}जिसमें होस्ट का हिस्सा छीन लिया गया हो ${cn1_subject}
यह कार्यान्वयन को लगभग तुच्छ बना देता है।

चेतावनी:news:comp.mail.sendmail परीक्षण के माहौल में इसे तैनात करने से पहले राय के लिए पूछें । यह काम करता है लेकिन Sendmail "अप्रत्याशित साइड इफेक्ट्स" से बचता है क्योंकि मैं "निवेश" करने के लिए तैयार हूं। मैंने इसे Sendmail-8.15.2 के साथ "ड्राई टेस्ट" किया।

प्रवेश प्रविष्टि:

TLS_Rcpt:example.com VERIFY:256+CN1:messagelabs.com

Sendmail.mc ऊपर प्रविष्टि का समर्थन करने के लिए ठीक करें

चेतावनी:R लाइनों में RHS और LHS के बीच TAB (\ t) के बारे में याद रखें ।
यह sendmail.mc केवल के माध्यम से अधिक गंदा कार्यान्वयन है ।

define(`_LOCAL_TLS_RCPT_')dnl
LOCAL_RULESETS
SLocal_tls_rcpt
R$*     $: $&{cn_subject}
R$-.$+  $@ $(macro {cn1_subject}  $@ $2 $)
R$*     $@ $(macro {cn1_subject}  $@ $)    

# Ruleset continued
STLS_req
R<CN1:$&{cn1_subject}> $* $| <$+>               $@ $>"TLS_req" $1 $| <$2>
R<CN1:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " CN-1 " $&{cn_subject} " does not match " $1
ROK                     $@ OK
divert(0)dnl

स्पष्टीकरण:

  1. "पहले डॉट से पहले" भाग के साथ Local_tls_rcptनियम-निर्धारित स्टोर बनाएं${cn_subject}${cn1_subject}
  2. नियम-सेट के ${cn1_subject}"अतिरिक्त भाग" में CN1 उपसर्ग द्वारा ट्रिगर किए गए चेक जोड़ेंTLS_req

इसका परीक्षण करने के लिए नमूना स्क्रिप्ट

#!/bin/sh
# -C sendmail-test.cf -- use non standard cf file
# -d60.5 -- trace (access) map lookus
# -d21.12 -- trace R lines rewriting 
sendmail -C sendmail-test.cf -bt -d60.5 <<END
.D{verify}OK
.D{cn_subject}mail31.messagelabs.com
.D{server_name}mail31.messagelabs.com
tls_rcpt user1@example.com
END

यह स्वीकार किए जाने के बावजूद मैंने अभी तक इसका परीक्षण नहीं किया है; यह वही था जो मुझे विश्वास था कि संभव होना चाहिए, लेकिन यह पता लगाने का प्रबंधन नहीं कर सका कि कैसे करना है।
Law29

1

यह सवाल के जवाब के रूप में बिल्कुल नहीं है, लेकिन यह मुझे लगता है जैसे आप चीजों को कठिन तरीके से कर रहे हैं।

Sendmail कॉन्फ़िगरेशन को इस तरह लिखा गया था कि उस कॉन्फ़िगरेशन को सॉफ़्टवेयर के लिए आसानी और दक्षता को प्राथमिकता दी जाए, न कि मनुष्यों के लिए आसान कॉन्फ़िगरेशन और रखरखाव के लिए। हाल के दशकों में ऐसा करने का कोई अच्छा कारण नहीं है।

सेंडमेल 15 साल पहले एक भयानक रूप से रहस्यमय अवशेष था। कुछ linux distribbutions अभी भी इसे डिफ़ॉल्ट रूप से प्रदान करते हैं, और यह ठीक है यदि डिफ़ॉल्ट कॉन्फिग आपके लिए काम करता है, लेकिन जैसे ही आप अपने आप को कुछ भी करने में कुछ भी करने में सक्षम पाते हैं, आपको Sendmail को फेंकने और एक आधुनिक MTA स्थापित करने के लिए सबसे अच्छा है ।

लगभग 15 साल पहले, क्यूमेल अभी भी एक समझदार प्रतिस्थापन हो सकता है, लेकिन लगभग इतने लंबे समय के लिए मैंने पोस्टफिक्स को एक बेहतर विकल्प माना है। पोस्टफ़िक्स डॉट ओआरजी साइट से प्रलेखन एक बार अच्छा है जब आप अपनी ज़रूरत के अनुसार खोज लेते हैं। आपके मामले में आप इस समस्या के लिए http://www.postfix.org/TLS_README.html चाहते हैं ।

मुझे लगता है कि आपने कुछ समय पहले से ही सेंडमेल में कुछ समस्याओं को हल करने में बिताया होगा, लेकिन उस छेद को और अधिक समय फेंकने के बजाय, जल्द से जल्द अवसर पर स्विच करें। यदि आप कभी पीछे मुड़कर देखेंगे तो आप ऐंठ जाएंगे।


वास्तव में मैं पोस्टफ़िक्स को लंबे समय से प्रशासित कर रहा हूं जितना कि मैं $ मेल कारणों से भेज रहा हूं, और आज मेरे पास निष्क्रिय रूप से अनुकूलित वातावरण में कुछ 16 कोर भेजने वाले सर्वर हैं जो बदलना आसान नहीं है। अंतिम संस्करण में अपग्रेड करना कुछ ही मिनटों का मामला है, लेकिन बदलना एक और मामला है। हालाँकि आप सही हैं कि एक पोस्टफ़िक्स "smtp_tls_policy_maps" का उपयोग करके "example.com safe match = .messagelabs.com" शामिल है, ऐसा लगता है कि यह वह सुरक्षा प्रदान करेगा जिसकी मुझे तलाश है। उपयोग का मामला वास्तव में मुझे वह कारण प्रदान कर सकता है जिसे बदलने के लिए मुझे आवश्यक समय बिताने की आवश्यकता है।
Law29
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.