मुझे पता है कि यह क्या करता है, लेकिन मुझे नहीं पता कि क्यों । क्या हमला करता है?
क्या यह सभी तरह के प्रमाणीकरण तरीकों के लिए प्रासंगिक है? (होस्टेड, पासवर्ड, पब्लिके, कीबोर्ड-इंटरेक्टिव ...)
मुझे पता है कि यह क्या करता है, लेकिन मुझे नहीं पता कि क्यों । क्या हमला करता है?
क्या यह सभी तरह के प्रमाणीकरण तरीकों के लिए प्रासंगिक है? (होस्टेड, पासवर्ड, पब्लिके, कीबोर्ड-इंटरेक्टिव ...)
जवाबों:
UseDNS
विकल्प ज्यादातर बेकार है। यदि ग्राहक मशीनें इंटरनेट पर बाहर हैं, तो एक उच्च संभावना है कि उनके पास कोई रिवर्स DNS नहीं है, उनका रिवर्स DNS आगे हल नहीं करता है, या उनका DNS इसके अलावा कोई जानकारी प्रदान नहीं करता है " आईएसपी ”जो कि आईपी एड्रेस आपको पहले ही बता देता है।
सामान्य कॉन्फ़िगरेशन में, DNS का उपयोग केवल लॉगिंग के लिए किया जाता है। यह प्रमाणीकरण के लिए इस्तेमाल किया जा सकता है, लेकिन केवल अगर इसमें IgnoreRhosts no
निर्दिष्ट किया गया है sshd_config
। इस पुराने प्रतिष्ठानों कि RSH, तुम कहाँ कह सकते हैं "उपयोगकर्ता कहा जाता इस्तेमाल किया साथ संगतता के लिए है bob
मशीन कहा पर darkstar
के रूप में प्रवेश कर सकते हैं alice
किसी भी साख दिखाए बिना" (लिख कर darkstar bob
में ~alice/.rhosts
)। यह केवल तभी सुरक्षित है जब आप उन सभी मशीनों पर भरोसा करते हैं जो संभवतः ssh सर्वर से कनेक्ट हो सकती हैं। दूसरे शब्दों में, यह बहुत कम ही सुरक्षित तरीके से प्रयोग करने योग्य है।
यह देखते हुए कि डीएनएस लुकअप बहुत अजीब परिस्थितियों को छोड़कर कोई उपयोगी जानकारी प्रदान नहीं करता है, इसे बंद कर दिया जाना चाहिए। जहां तक मैं बता सकता हूं, डिफ़ॉल्ट रूप से इसका एकमात्र कारण यह है कि यह तकनीकी रूप से अधिक सुरक्षित है (यदि आप प्रमाणीकरण के बारे में चिंतित हैं, उपलब्धता नहीं है), भले ही यह परिस्थितियों के एक छोटे से सेट पर लागू हो।
इस सुविधा को बंद करने का एक और तर्क यह है कि प्रत्येक अति-विशिष्ट सुविधा एक अनावश्यक सुरक्षा जोखिम है ।
UseDNS
यदि आप कुंजी-आधारित होस्ट प्रमाणीकरण का उपयोग करते हैं, तब भी उपयोगी नहीं है , यदि आप होस्टनाम-आधारित होस्ट प्रमाणीकरण (यानी बेहद कमजोर प्रमाणीकरण) का उपयोग करते हैं।
UseDNS
बहुत उपयोगी है, और महत्वपूर्ण है। आप कुंजी के आधार पर एक उपयोगकर्ता को प्रमाणित करते हैं, और होस्टनाम के आधार पर सर्वर, मैक पते को सौंपा जाता है।
मैंने इस बारे में उबंटू में एक बग रिपोर्ट (पुरानी लेकिन अभी भी चालू) में जोड़ा।
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.
के मैनपेज से 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 लॉग्स में एक चेतावनी उत्पन्न करता है।
इसलिए यह किसी भी हमले को नहीं रोकता है, सिवाय इसके कि किसी चेतावनी को लॉग न करने के लिए क्लाइंट के कुछ योग्य रिमोट पते की आवश्यकता होगी। इस तरह की चेतावनी आपको हमलावर को नीचे गिराने में मदद कर सकती है केवल तभी जब पीटीआर रिकॉर्ड कोई मायने रखता है।
संपादित करें: एंड्री वोइटेनकोव की टिप्पणी के अनुसार अपडेट किया गया ।
from=
प्रश्न में अधिकृत कुंजी (यदि उपयोग किया जाता है) से पहले क्षेत्र में मूल्यों को खराब नहीं कर सकता है ।
यह आवश्यक है जब आप किसी अधिकृत_की फ़ाइल में FROM विकल्प का उपयोग करते हैं और आप नामों से फ़िल्टर करना चाहते हैं न कि केवल IP से।
अधिकृत_की फ़ाइल की एक पंक्ति में FROM विकल्प आपको उन होस्ट को सीमित करने की अनुमति देता है जो एक विशिष्ट कुंजी का उपयोग कर सकते हैं।
यह कई सर्वरों के प्रबंधन की क्षमता को बढ़ाता है जो एक मशीन के क्लोन को मूल रूप से प्रतिरूपण करने की अनुमति के बिना एक-दूसरे तक पहुंचते हैं, आमतौर पर अनजाने में (बचे हुए crontabs, मानव त्रुटि)।
मुझे लगता है कि जोड़ने के लिए CentOS 7 (1503/07/01) और इसलिए रेड हैट एंटरप्राइज लिनक्स 7 पर करना चाहते हैं, मैं था असमर्थ की डिफ़ॉल्ट सेटिंग से लॉग इन करने yes
के लिए UseDNS
। असहज करने और इसे सेट करने के बाद no
, मैं लॉग इन करने में सक्षम था। इस प्रकार यह प्रतीत होता है कि DNS को सही तरीके से काम नहीं करने पर किसी को वास्तव में सेवा से वंचित किया जा सकता है! CentOS 6 में, ऐसा प्रतीत होता है कि डिफ़ॉल्ट है no
और इसलिए मैं ssh
बिना किसी कार्यशील DNS के साथ कर सकता हूं !
मैं जोड़ना चाहूंगा कि मेरा प्रयोग LXC कंटेनरों पर था न कि भौतिक मशीन के मामले में, इससे फर्क पड़ता है!