लिनक्स आईएएनए एपेमेरल पोर्ट रेंज का उपयोग क्यों नहीं करता है?


30

विकिपीडिया के अनुसार

इंटरनेट निरुपित संख्या प्राधिकरण (IANA) गतिशील या निजी बंदरगाहों के लिए सीमा 49152 से 65535 तक का सुझाव देता है। कई लिनक्स कर्नेल पोर्ट रेंज 32768 से 61000 तक का उपयोग करते हैं।

भले ही आईएएनए की सुझाई गई सीमा से कुछ ऐतिहासिक विचलन लगता है, यह अजीब लगता है कि विंडोज विस्टा, विंडोज 7, विंडोज सर्वर 2008, फ्रीबीएसडी 4.6+ और कई अन्य सभी इस सीमा पर सहमत हुए हैं और अभी भी लिनक्स अभी भी बाहर खड़ा है।

हालांकि, यह देखते हुए लो और निहारना:

$ cat /proc/sys/net/ipv4/ip_local_port_range 
32768   61000

लिनक्स ने मानक सीमा क्यों नहीं अपनाई?

जवाबों:


21

एक समय था जब IANA केवल बंदरगाहों 1023. देखने के लिए ऊपर सौंपा था RFC1700 । एक समय में यह एक मानक था। जब मुझे RFC की धारा में परिवर्तन होता है लेकिन 1024 से 49152 तक पंजीकृत बंदरगाहों को बदलने से लेकर असाइन किए गए असाइन किए जाने तक के प्रश्नों के लिए मुझे कोई परेशानी नहीं होती है।

लिनक्स इतिहास के संदर्भ में, 2007 में डिफ़ॉल्ट ip_local_port_range के बारे में एक सवाल उठाया गया था। उस समय यह डर के लिए आपके द्वारा उल्लिखित लिनक्स रेंज का उपयोग करने का निर्णय लिया गया था कि उच्च पोर्ट संख्या में समस्या हो सकती है और 49152 पर सीमा शुरू करना बहुत कम हो सकता है। पूल में पोर्ट नंबर। इसे और इसके धागे को देखें । उस समय व्यक्त विचार यह था कि 32768 में शुरू करना IANA की प्रक्रियाओं की भावना के भीतर था, अगर पूरी तरह से अनुरूप नहीं है। इसे पढ़ने में मुझे अनुमान है कि डेवलपर्स ने माना कि अधिकांश असाइनमेंट रेंज के नीचे से होते हैं और ऊपर जाते हैं। इस लेखन में मैं 32768 और 49152 के बीच 100 से अधिक पोर्ट संख्याओं (अलग-अलग प्रोटोकॉल को अलग-अलग गिनते हुए नहीं) को गिनता हूं, जिससे कि पिछले पांच वर्षों में बहुत अच्छा हुआ है।

मुझे नहीं पता कि सीमा को बहुत छोटा क्यों माना गया, लेकिन मैं दो कारणों की कल्पना कर सकता हूं:

  1. कुछ हमलों को विफल करने के लिए पोर्ट संख्या यादृच्छिक हैं। पूल में जितने अधिक पते होंगे, यह रक्षा उतना ही बेहतर होगा।
  2. उच्च गतिविधि सर्वरों को पोर्ट नंबर थकावट से परेशानी हो सकती है। जबकि पोर्ट अल्पकालिक हो सकते हैं, उनका उपयोग तात्कालिक नहीं है। टीसीपी बंद होने के बाद विशेष रूप से सॉकेट कई मिनट तक चल सकते हैं।

यह ब्लॉग पोस्ट नंबर 2 पर छूता है, और सुझाव देता है कि आपको अपने लिनक्स सिस्टम को स्थानीय पोर्ट की एक अलग श्रेणी का उपयोग करना चाहिए। (आपके द्वारा पसंद की जाने वाली सीमा को परिभाषित करने के लिए /etc/sysctl.d का उपयोग करना। एक ip_local_reserved_ports प्रविष्टि भी है जो किसी विशेष संघर्ष के गिरफ्तार होने पर उपयोग की हो सकती है। ये आपके द्वारा बोली जाने वाली / proc / sys प्रविष्टि के साथ मेल खाते हैं।)

संक्षेप में। लिनक्स डिफॉल्ट वर्तमान IANA विनिर्देशों से मेल नहीं खाता है, लेकिन किसी भी विशेष लिनक्स सिस्टम, अगर उसके मालिक की इच्छा है।


1
RFC 6056 के अनुसार , "जैसा कि धारा 2.1 में उल्लिखित है, डायनेमिक पोर्ट में 49152-65535 रेंज शामिल हैं। हालांकि, एपेरमल पोर्ट सिलेक्शन एल्गोरिदम को पूरी रेंज 1024-65535 का उपयोग करना चाहिए।" - ऐसा लगता है कि मूल्य का ip_local_port_rangeउपयोग वैसे भी नहीं किया जाना चाहिए।
इवान कैरोल


@evan RFC 6056 यह बताता है कि "पोर्ट नंबर जिन्हें स्थानीय होस्ट SHOULD में एक विशेष सेवा प्रदान करने के लिए आवश्यक हो सकता है, उन्हें पंचांग रैंडमाइजेशन के लिए उपलब्ध पोर्ट नंबर के पूल में शामिल नहीं किया जाना चाहिए" और यह कि "व्यवस्थापक सेवाओं की पहचान कर सकते हैं स्थानीय होस्ट द्वारा प्रस्तुत किया जाना चाहिए और केवल पंजीकृत बंदरगाहों को ही छोड़ देना चाहिए " लेकिन ऐसा कुछ नहीं है जो ओएस आमतौर पर आपको करने के लिए प्रदान करता है। केवल व्यावहारिक बहिष्करण तंत्र निचली सीमा को ऊपर उठाना है।
जम्बू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.