लिनक्स से पूरी तरह से गतिशील रूप से IPv4 स्टैक को निष्क्रिय कैसे करें?


17

मैं लिनक्स से IPv4 स्टैक को कैसे निष्क्रिय कर सकता हूं ? मैं इसे गतिशील रूप से करना चाहता हूं , यानी कभी-कभी मैं इसे सक्षम करना चाहता हूं और कभी-कभी मैं केवल आईपीवी 6 स्टैक चाहता हूं । क्या ऐसा करने का कोई पोर्टेबल तरीका है? यदि आप जानते हैं कि किसी भी वितरण में यह कैसे करना है, तो यह मुझे बहुत मदद करेगा।


2
@kasperd कुछ भी नहीं है के बाद से 2011 से बदल गया है
माइकल हैम्पटन

जवाबों:


21

आईआरसी पर एक छोटी सी चैट के बाद आम राय यह है कि लिनक्स कर्नेल ipv4 और ipv6 के बीच कुछ कोड साझा करता है, और यह पूरी तरह से असंभव IPv4 को अक्षम कर सकता है। आप कर्नेल को ipv4 भागों के बिना संकलित करने का प्रयास कर सकते हैं लेकिन इस मामले में ipv6 संकलन नहीं कर सकता है (लेकिन कुछ भी आपको प्रयास करने से रोकता है!)।

आप इंटरफेस, AFAIK से ipv4 पतों को हटा सकते हैं, लेकिन मुझे नहीं लगता कि इस समय ipv4 को पूरी तरह से अक्षम करना संभव है।

संपादित करें:make menuconfig कर्नेल 2.6.36 पर एक त्वरित जांच के बाद मैं पूरे टीसीपी / आईपी स्टैक (और इसलिए, आईपीवी 6) को अक्षम किए बिना आईपीवी 4 को अक्षम करने का एक तरीका नहीं ढूंढ सका।


4

यदि यह डेवलपर्स के लिए है, तो "लाइब्रेरी इंटरपोजिशन" का उपयोग किया जा सकता है, जिसमें LD_PRELOAD स्टड फ़ंक्शंस के साथ कुछ सिद्ध पुस्तकालय हैं जो केवल त्रुटियां लौटाते हैं (या जो सप्ताह के दिन या कुछ अन्य बाहरी मानदंड के आधार पर वास्तविक कॉल करते हैं)।


2

मुझे नहीं लगता कि IPv4 को पूरी तरह से अक्षम करना संभव है, लेकिन आपके लक्ष्य के आधार पर, सभी IPv4 ट्रैफ़िक का उपयोग iptablesकरना पर्याप्त हो सकता है, नहीं?

कुछ इस तरह से काम करना चाहिए। मैंने किसी भी मशीन पर इसका परीक्षण नहीं किया है, क्योंकि मैं उन्हें आईपीवी 4 के माध्यम से एक्सेस कर रहा हूं।

sudo iptables -I INPUT -j DROP
sudo iptables -O OUTPUT -j DROP

1
यह यातायात को अवरुद्ध करेगा, जो कभी-कभी उपयोगी हो सकता है। लेकिन यह प्रोग्रामों को IPv4 सॉकेट से बांधने से नहीं रोकेगा। IPv4 को पूरी तरह से अक्षम करने के लिए यह आवश्यक है।
माइकल हैम्पटन

मैंने एक मशीन पर क्या किया, जहां मुझे IPv6 चलाने की जरूरत थी-केवल DHCP क्लाइंट को निष्क्रिय करना था /etc/network/interfaces.d। यह IPv4 को अक्षम करने के समान नहीं है क्योंकि systemd-resolvedअभी भी सुन रहा है 127.0.0.53:53। लेकिन यह मेरी तात्कालिक जरूरतों को संबोधित करने के लिए पर्याप्त था और इसके साथ खिलवाड़ करना ज्यादा पसंद था iptables
कैस्परल्ड

1

ज्यादातर आपको ipv4 मॉड्यूल के बिना अपने कर्नेल को फिर से जोड़ना चाहिए। फेडोरा

आप इसे पूरी तरह से अक्षम नहीं कर सकते क्योंकि सिस्टम 127.0.0.1 लूपबैक इंटरफ़ेस का उपयोग करता है।
लेकिन आप if-cfg कमांड से कुछ ipv4 फंक्शन्स को डिसेबल कर सकते हैं।

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