Ntpd इतने सारे पोर्ट / एड्रेस पर क्यों सुनता है?


18

मैंने कुछ समय के लिए इस पर ध्यान दिया है, और इससे मुझे कोई मतलब नहीं है:

ntpdइतने पते पर सुनने की जरूरत क्यों है ?

उदाहरण के लिए, एक डेबियन मशीन:

$ नेटस्टैट
प्रोटो लोकल एड्रेस फॉरेन एड्रेस प्रोग्राम नाम
udp 0.0.0.0:123 0.0.0.0:* ntpd
udp 127.0.0.1.1123 0.0.0.0:* ntpd
udp [LAN]: 123 0.0.0.0:* ntpd
udp [IPv4]: 123 0.0.0.0:* ntpd
udp6 ::: 123 ::: * ntpd
udp6 :: 1: 123 ::: * ntpd
udp6 [लिंक-स्थानीय] ::: * ntpd
udp6 [IPv6] ::: * ntpd

यह (redacted) netstatसूची nptdIPv4 और IPv6 के प्रसारण, स्थानीय, LAN और वैश्विक पतों पर सुन रही है।

क्यों है ntpdइतना प्रांतीय?

जवाबों:


15

इस पृष्ठ के मेरे पढ़ने से , ऐसा प्रतीत होता है कि ntp 0.0.0.0विशेष रूप से सुरक्षा कारणों से और आंशिक रूप से प्रमाणीकरण कारणों से INADDR_ANY पते का उपयोग नहीं करता है।

पहला पोर्ट 123, 1024 से नीचे है, और इसलिए इसे एक विशेषाधिकार प्राप्त पोर्ट माना जाता है, और केवल रूट ही उस पोर्ट को बाँध सकता है। प्रारंभ करने के बाद विशेष रूप से विशेषाधिकार छोड़ने के लिए Ntp सेट किया गया है। मेल सूचियों से मुझे जो समझ में आता है, और लेख एक बार विशेषाधिकार गिराए जाने के बाद 123 के सही स्रोत पोर्ट से उत्तर देने के लिए सॉकेट नहीं खोल सकता है, इसलिए ntp विशेषाधिकारों को छोड़ने से पहले हर असाइन किए गए पते के लिए सॉकेट खोल देता है।

जो मैंने ntp के लिए कुछ प्रमाणीकरण तंत्रों को पढ़ा है, उनमें मूल रूप से स्रोत और गंतव्य पोर्ट 123 होना चाहिए, और कुछ नहीं।

मामला पूरी तरह से स्पष्ट नहीं है। वाइल्डकार्ड पते के बारे में अनुभाग देखें 0.0.0.0, यह किसी कारण से ntpd द्वारा खोला गया है, लेकिन टिप्पणियों से वास्तव में कभी भी उपयोग नहीं किया जाना चाहिए, कुछ विशेष दुर्लभ मामलों में संभव को छोड़कर, देव पूरी तरह से निश्चित नहीं हैं, लेकिन, वे डॉन ' टी सॉकेट को हटाना चाहते हैं, बस अगर वे चीजों को तोड़ देते हैं।

ध्यान दें कि आमतौर पर ntpd वाइल्डकार्ड पतों पर पैकेट को स्वीकार नहीं करना चाहिए क्योंकि यदि आप प्रेषक के अनुरोधित पते से अलग पते पर रिटर्न पैकेट भेजना चाहते हैं तो कई समस्याएं हैं। डैनीमेयर - 27 अप्रैल 2009

मुझे लगता है कि आपके प्रश्न का मुख्य उत्तर उपरोक्त टिप्पणी में है।


16

यह बिल्कुल भी उचित नहीं है। यह सिर्फ इंटरफ़ेस आईपी पते और लोकलहोस्ट के लिए बाध्यकारी है, दोनों आईपीवी 4 और आईपीवी 6 प्रोटोकॉल पर। यदि आपको लगता है कि यह उन लोगों में से कुछ को नहीं सुनना चाहिए, listenतो मैनुअल में बताए गए अनुसार कॉन्फ़िगरेशन को बदल दें (यह एक अलग संस्करण के लिए हो सकता है जिसे आप उपयोग कर रहे हैं):

 listen on address
         Specify a local IP address or a hostname the ntpd(8) daemon
         should listen on. If it appears multiple times, ntpd(8) will
         listen on each given address. If the exact string '*' is given as
         an address, ntpd(8) will listen on all local addresses. Other-
         wise, address can be followed by an asterisk ('*') and a UDP port
         number to listen on instead of the default 123. ntpd(8) does not
         listen on any address by default. For example:

               listen on *
               listen on 127.0.0.1
               listen on ::1

कुछ अन्य संस्करणों में आप के लिए विकल्पों को बदलने की आवश्यकता होगी ntpdक्या प्रोटोकॉल / इंटरफेस सुनने के लिए पर परिवर्तन करने के लिए डेमॉन ही (विकल्प की तरह -4, -6, -I)


1
फेलिज एनो नोवो!
user9517

1
मुझे नहीं लगता कि यह वास्तव में इस सवाल का जवाब देता है। मुझे लगता है कि सवाल मूल रूप से पूछ INADDR_ANYरहा है कि लगभग हर दूसरे प्रोटोकॉल की तरह इसका उपयोग क्यों नहीं किया जा रहा है। लेख मैं अपने उत्तर में लिंक करता हूं, यह स्पष्ट करता है कि यह आंशिक रूप से एक सुरक्षा सुविधा है, और आंशिक रूप से प्रोटोकॉल पोर्ट 123 पर उत्तर की उम्मीद करने के लिए डिज़ाइन किया गया है।
Zoredache

यह बहुत उपयोगी जानकारी है जिसे मैं जानना चाहता था, और मैं इसके लिए आपको धन्यवाद देता हूं, लेकिन @ ज़ोर्डचे का जवाब वास्तव में मेरे द्वारा पूछे गए प्रश्न का उत्तर देता है, इसलिए मैंने इसे उत्तर के रूप में चिह्नित किया है। हालांकि, चारों ओर अपवोट्स। ;)
अब्राहम वेग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.