Sshd "UseDNS" विकल्प का क्या मतलब है?


78

मुझे पता है कि यह क्या करता है, लेकिन मुझे नहीं पता कि क्यों । क्या हमला करता है?

क्या यह सभी तरह के प्रमाणीकरण तरीकों के लिए प्रासंगिक है? (होस्टेड, पासवर्ड, पब्लिके, कीबोर्ड-इंटरेक्टिव ...)


2
मैंने यहां एक को कोर भी जोड़ा: github.com/coreos/bugs/issues/92

जवाबों:


65

UseDNSविकल्प ज्यादातर बेकार है। यदि ग्राहक मशीनें इंटरनेट पर बाहर हैं, तो एक उच्च संभावना है कि उनके पास कोई रिवर्स DNS नहीं है, उनका रिवर्स DNS आगे हल नहीं करता है, या उनका DNS इसके अलावा कोई जानकारी प्रदान नहीं करता है " आईएसपी ”जो कि आईपी एड्रेस आपको पहले ही बता देता है।

सामान्य कॉन्फ़िगरेशन में, DNS का उपयोग केवल लॉगिंग के लिए किया जाता है। यह प्रमाणीकरण के लिए इस्तेमाल किया जा सकता है, लेकिन केवल अगर इसमें IgnoreRhosts noनिर्दिष्ट किया गया है sshd_config। इस पुराने प्रतिष्ठानों कि RSH, तुम कहाँ कह सकते हैं "उपयोगकर्ता कहा जाता इस्तेमाल किया साथ संगतता के लिए है bobमशीन कहा पर darkstarके रूप में प्रवेश कर सकते हैं aliceकिसी भी साख दिखाए बिना" (लिख कर darkstar bobमें ~alice/.rhosts)। यह केवल तभी सुरक्षित है जब आप उन सभी मशीनों पर भरोसा करते हैं जो संभवतः ssh सर्वर से कनेक्ट हो सकती हैं। दूसरे शब्दों में, यह बहुत कम ही सुरक्षित तरीके से प्रयोग करने योग्य है।

यह देखते हुए कि डीएनएस लुकअप बहुत अजीब परिस्थितियों को छोड़कर कोई उपयोगी जानकारी प्रदान नहीं करता है, इसे बंद कर दिया जाना चाहिए। जहां तक ​​मैं बता सकता हूं, डिफ़ॉल्ट रूप से इसका एकमात्र कारण यह है कि यह तकनीकी रूप से अधिक सुरक्षित है (यदि आप प्रमाणीकरण के बारे में चिंतित हैं, उपलब्धता नहीं है), भले ही यह परिस्थितियों के एक छोटे से सेट पर लागू हो।

इस सुविधा को बंद करने का एक और तर्क यह है कि प्रत्येक अति-विशिष्ट सुविधा एक अनावश्यक सुरक्षा जोखिम है


तो, UseDNS केवल होस्ट किए गए प्रमाणीकरण के लिए प्रासंगिक है? यदि मैं होस्ट किए गए होस्ट का उपयोग नहीं करता हूं और मुझे परवाह नहीं है कि होस्टनाम या आईपी लॉग में दिखाई देता है, तो UseDNS से ​​कोई फर्क नहीं पड़ता?
user368507

5
@ user368507 हां, यह बात है। UseDNSयदि आप कुंजी-आधारित होस्ट प्रमाणीकरण का उपयोग करते हैं, तब भी उपयोगी नहीं है , यदि आप होस्टनाम-आधारित होस्ट प्रमाणीकरण (यानी बेहद कमजोर प्रमाणीकरण) का उपयोग करते हैं।
गिल्स

3
@ निश्चित रूप से, यदि आप कुंजी-आधारित और होस्टनाम-आधारित प्रमाणीकरण का उपयोग करते हैं, तो UseDNSबहुत उपयोगी है, और महत्वपूर्ण है। आप कुंजी के आधार पर एक उपयोगकर्ता को प्रमाणित करते हैं, और होस्टनाम के आधार पर सर्वर, मैक पते को सौंपा जाता है।
कारा डेनिज़

38

मैंने इस बारे में उबंटू में एक बग रिपोर्ट (पुरानी लेकिन अभी भी चालू) में जोड़ा।

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/424371

मैंने डिफ़ॉल्ट को No में बदलने और उस पर नए दस्तावेज़ जोड़ने का प्रस्ताव दिया:

# UseDNS - Determines whether IP Address to Hostname lookup and comparison is performed
# Default value is No which avoids login delays when the remote client's DNS cannot be resolved
# Value of No implies that the usage of "from=" in authorized_keys will not support DNS host names but only IP addresses.
# Value of Yes supports host names in "from=" for authorized_keys. Additionally if the remote client's IP address does not match the resolved DNS host name (or could not be reverse lookup resolved) then a warning is logged.

2
अप अपवोट ... यह अधिक उपयोगी है, क्योंकि इसमें जानकारी का एक टुकड़ा शामिल है जिसकी मुझे तलाश थी।
0xC0000022L

1
इसी तरह यदि UseDNS नहीं है तो होस्टनामों को pam_access नियमों में मेल नहीं किया जा सकता है और इसके बजाय IPs का उपयोग किया जाना चाहिए।
कॉलिनएम

1
मैंने कुछ साल पहले इस उत्तर को उकेरा था लेकिन आज केवल मैंने देखा कि, डिफ़ॉल्ट को ओपनएसएसएच 6.8p1 में "यूटीडीएनएस नो" में बदल दिया गया था, जो कि उबंटू में 15.10 और बाद में है
एंथोनी जोगेगन

RedHat (RHEL7 में) ने हाल ही में डिफ़ॉल्ट को नहीं के रूप में अच्छी तरह से बदल दिया है, जो होस्टनाम-आधारित एक्सेस कंट्रोल को तोड़ता है (जो इंट्रानेट पर ज्यादातर सलाहकार नियंत्रण के रूप में उपयोगी होते हैं, जाहिर है कि एकमात्र एक्सेस कंट्रोल तंत्र के रूप में नहीं)।
dannysauer

8

के मैनपेज से sshd_config(5):

 UseDNS  Specifies whether sshd(8) should look up the remote host name and
         check that the resolved host name for the remote IP address maps
         back to the very same IP address.  The default is “yes”.

इसे सक्षम करना उचित (आगे और पीछे) के बिना किसी स्थान से पहुंच बनाता है DNS लॉग्स में एक चेतावनी उत्पन्न करता है।

इसलिए यह किसी भी हमले को नहीं रोकता है, सिवाय इसके कि किसी चेतावनी को लॉग न करने के लिए क्लाइंट के कुछ योग्य रिमोट पते की आवश्यकता होगी। इस तरह की चेतावनी आपको हमलावर को नीचे गिराने में मदद कर सकती है केवल तभी जब पीटीआर रिकॉर्ड कोई मायने रखता है।

संपादित करें: एंड्री वोइटेनकोव की टिप्पणी के अनुसार अपडेट किया गया ।


तो यह एक फिल्टर है जो DNS सर्वर में जो कुछ भी है, उसके आधार पर कनेक्ट करने की अनुमति है?
22:36 पर user368507

2
यह असंभव क्यों हो जाएगा? sshd सिर्फ चेतावनी उत्पन्न करता है अगर DNS A / PTR रिकॉर्ड मेल नहीं खाते हैं। समस्याओं को हल करने के मामले में लॉगऑन अनुक्रम धीमा होगा।
एंड्री वोइटेनकोव

यह तब तक पहुंच को रोकता है यदि अधिकृत कुंजी से समझौता किया गया है जब तक कि हमलावर from=प्रश्न में अधिकृत कुंजी (यदि उपयोग किया जाता है) से पहले क्षेत्र में मूल्यों को खराब नहीं कर सकता है ।
अलेक्सी

7

यह आवश्यक है जब आप किसी अधिकृत_की फ़ाइल में FROM विकल्प का उपयोग करते हैं और आप नामों से फ़िल्टर करना चाहते हैं न कि केवल IP से।

अधिकृत_की फ़ाइल की एक पंक्ति में FROM विकल्प आपको उन होस्ट को सीमित करने की अनुमति देता है जो एक विशिष्ट कुंजी का उपयोग कर सकते हैं।
यह कई सर्वरों के प्रबंधन की क्षमता को बढ़ाता है जो एक मशीन के क्लोन को मूल रूप से प्रतिरूपण करने की अनुमति के बिना एक-दूसरे तक पहुंचते हैं, आमतौर पर अनजाने में (बचे हुए crontabs, मानव त्रुटि)।


3

मुझे लगता है कि जोड़ने के लिए CentOS 7 (1503/07/01) और इसलिए रेड हैट एंटरप्राइज लिनक्स 7 पर करना चाहते हैं, मैं था असमर्थ की डिफ़ॉल्ट सेटिंग से लॉग इन करने yesके लिए UseDNS। असहज करने और इसे सेट करने के बाद no, मैं लॉग इन करने में सक्षम था। इस प्रकार यह प्रतीत होता है कि DNS को सही तरीके से काम नहीं करने पर किसी को वास्तव में सेवा से वंचित किया जा सकता है! CentOS 6 में, ऐसा प्रतीत होता है कि डिफ़ॉल्ट है noऔर इसलिए मैं sshबिना किसी कार्यशील DNS के साथ कर सकता हूं !

मैं जोड़ना चाहूंगा कि मेरा प्रयोग LXC कंटेनरों पर था न कि भौतिक मशीन के मामले में, इससे फर्क पड़ता है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.