VPN साठी Linux नेटवर्क नेमस्पेस: ते काय वेगळे करत नाहीत
नेमस्पेस इंटरफेस, रूट आणि सॉकेट हलवतो, फाइल्स किंवा खाती नाही. त्याच्या स्वतःच्या netns मधील VPN काय व्यापते आणि रहदारी कुठून अजूनही बाहेर पडते ते येथे आहे.
VPN त्याच्या स्वतःच्या नेमस्पेसच्या आत सुरू करा, तिथे एक अनुप्रयोग चालवा, तरीही रहदारी होस्टच्या रूटनेच बाहेर जाते. काहीही तुटलेले नाही: नेमस्पेस फक्त त्यात प्रवेश करणाऱ्या प्रक्रियांवर नियंत्रण ठेवतो, आणि गळती अशा प्रक्रियेतून आली जी कधीही प्रवेश करू शकली नाही. इंटरफेस, पत्ते, रूट, फायरवॉल नियम आणि सॉकेट हीच नेमस्पेसची मालमत्ता आहे. फाइल्स, खाती आणि आधीच चालू असलेल्या सेवा नाहीत, आणि बहुतेक आश्चर्ये येथूनच येतात.
नेमस्पेस कशाची मालकी बाळगतो, आणि सॉकेट कुठे जन्म घेतो
इंटरफेस नेमस्पेसकडे हलवा आणि होस्ट तो गमावतो; आत बोगदा बांधा आणि होस्टला तो दिसत नाही. हीच नेमस्पेसने मर्यादित VPN ची यंत्रणा: उपकरण आणि त्याकडे निर्देश करणारे रूट अशा संदर्भात राहतात जिथे फक्त निवडलेल्या प्रक्रियाच पोहोचू शकतात. होस्ट आपला डीफॉल्ट रूट ठेवतो, त्यामुळे बाहेरचे सर्व अभंग राहते.
WireGuard साठी निर्मितीचा संदर्भ सध्याच्या स्थानाइतकाच महत्त्वाचा आहे: UDP सॉकेट ज्या नेमस्पेसमध्ये इंटरफेस तयार झाला तिथेच बांधला जातो, उपकरण दुसरीकडे गेल्यानंतरही. एन्क्रिप्टेड पॅकेट कोणत्या राउटिंग टेबलचे अनुसरण करतात हे त्या जन्मस्थानावर अवलंबून असते. सॉकेट जेव्हा सहकाऱ्याकडे रूट नसलेल्या संदर्भात राहतो, तेव्हा इंटरफेस शोधतो आणि हातमिळवणी कधीच बाहेर जात नाही. प्रथम त्याचे जन्मस्थान, नंतर सध्याचे स्थान तपासा.
नेमस्पेस काय वेगळे करत नाही
येथे काहीही फाइलसिस्टम, खाती किंवा गुपिते वेगळी करत नाही, आणि तुम्ही नेमस्पेस तयार केले म्हणून यापैकी कोणतीही सीमा उद्भवत नाही. रिझॉल्व्हर संरचना एक फाइल आहे, त्यामुळे आतली प्रक्रिया अजूनही होस्ट रिझॉल्व्हरकडे निर्देश करणारी सेटिंग वाचू शकते आणि ती जे सूचित करते त्या रूटने आपली क्वेरी बाहेर पाठवू शकते. विनंती आधीच चालू असलेल्या दलालाला किंवा सिस्टम सेवेला सोपवणारा अनुप्रयोग पूर्णपणे वेगळ्या संदर्भातील प्रक्रिया गुंतवतो. दोन्ही अशा विनंत्या आहेत ज्यांना उत्तर देण्यासाठी सीमा कधीच बनवलेली नव्हती.
उपाय म्हणजे /etc/netns/<name>/resolv.conf येथे प्रति-नेमस्पेस फाइल, किंवा तयार केलेल्या फाइलचे bind mount, जे आतून पोहोचण्याजोग्या रिझॉल्व्हरकडे निर्देश करते. होस्टवरील /etc/resolv.conf संपादित केल्याने नेमस्पेस जे पाहतो त्यात काहीही बदलत नाही.
प्रक्रियांची नियुक्ती हेच नियंत्रण आहे
तुम्हाला मिळणारे अलगीकरण तंतोतंत आत सुरू केलेल्या प्रक्रियांचे अलगीकरण आहे. नेमस्पेसच्या exec सहाय्यकाद्वारे सुरू झालेला शेल, आणि तो निर्माण करतो ते सर्व आतच राहते; होस्ट सत्रातून सुरू केलेला डेस्कटॉप अनुप्रयोग राहत नाही. संदर्भ तयार करा, उपकरण हलवा, मग दोन्ही बाजू सिद्ध करा:
ip netns add vpn1
ip link set wg0 netns vpn1
ip netns exec vpn1 wg show
wg show
नेमस्पेसच्या आतून पहिला wg show आणि होस्टवरून दुसरा वाचा, आणि त्यापैकी फक्त एकच सहकाऱ्याची यादी करेल अशी अपेक्षा ठेवा. दोन्ही करत असतील तर उपकरण कधीच हलले नाही; कोणीही करत नसेल तर ते दुसरीकडे गेले आहे. लाँचर सेवा व्यवस्थापक असेल तर unit फाइल संपादित करायची असते, डेस्कटॉप शॉर्टकट नाही. नेमस्पेस सेटिंगशिवाय unit डिमन होस्ट संदर्भात सुरू करते आणि रचना शांतपणे रद्द करते.
अनुप्रयोगाच्या संदर्भातून चाचणी करा
अनुप्रयोग वापरतो तोच बायनरी आणि तोच वापरकर्ता वापरून नेमस्पेसच्या आत तपासणी चालवा. DNS आणि दोन्ही पत्ता कुटुंबे समाविष्ट करा, कारण तुम्ही कधीही विचार न केलेला IPv6 रूट हा बाहेर पडण्याचा नेहमीचा मार्ग आहे. तुमच्या स्वतःच्या शेलमधून केलेली चाचणी फक्त तुमचे शेल अलग आहे हेच सिद्ध करते.
नंतर होस्टवर तीच तपासणी चालवा आणि उत्तरे वेगळी असल्याची खात्री करा: आत बोगद्याचा पत्ता आणि इच्छित निर्गम, बाहेर होस्ट रूट आणि कार्यालयाचे निर्गम, आणि रिझॉल्व्हर नावाने. नेमस्पेसना प्रोटोकॉलऐवजी तैनातीनुसार नावे द्या, जेणेकरून स्वच्छता स्क्रिप्ट दोन गोष्टींचा गोंधळ करणार नाही.
फॉरवर्डिंग, अपयश धोरण आणि स्वच्छता
गेटवेसाठी फॉरवर्डिंग जाणीवपूर्वक चालू करा आणि बोगदा पडल्यावर काय व्हायला हवे ते ठरवा. नेमस्पेस आत स्थापित केलेले रूट अडवत नाही, त्यामुळे होस्टकडे पर्यायी रूट तयार केल्यास तो वापरला जाईल. हा धोरणाचा निर्णय आहे, आणि व्यत्यय त्याची चाचणी घेण्यापूर्वी तो लिहून ठेवावा.
नेमस्पेसची नावे, इंटरफेस आणि संरचनेचा मालक कोण आहे ते नोंदवा, जेणेकरून स्वच्छता फक्त तैनातीने तयार केलेलेच काढेल. रोलबॅक दरम्यान होस्ट नेटवर्किंग रीसेट केल्याने स्वच्छता व्यत्ययात बदलते. पृष्ठ network_namespaces(7) लहान आहे आणि तो मार्ग रचण्यापूर्वी वाचण्यासारखे आहे.