कंटेनर त्याचा बोगदा उघडत नव्हता, म्हणून विशेषाधिकार ध्वज जोडला गेला आणि आता तो चालतो। त्या क्रमाने फक्त एवढेच सिद्ध झाले की किमान एक परवानगी गायब होती, आणि कोणती हे त्याबद्दल काहीच सांगत नाही। विशेषाधिकार मोड बोगदा इंटरफेसला लागण्यापेक्षा खूपच व्यापक क्षमता आणि उपकरण प्रवेश देतो।

ध्वज प्रत्यक्षात काय बदलतो

विशेषाधिकार असलेल्या कंटेनरला व्यापक क्षमता आणि होस्ट उपकरणांमध्ये प्रवेश मिळतो, जी नेटवर्क मार्गाला लागण्यापेक्षा खूप मोठी परवानगी आहे। नेमकी संच दंतकथा नाही, रनटाइम दस्तऐवजीकरण करतो, आणि Docker चे कंटेनर चालवण्याचे दस्तऐवज उपलब्ध विशेषाधिकार पर्याय स्पष्ट करतात। एकदा वाचले तर बोगदा संपूर्णतेचा लहान भाग आहे हे पाहण्यासाठी पुरते।

दोन अधिक अरुंद आवश्यकता बहुतेक VPN कंटेनर व्यापतात। इंटरफेस कॉन्फिगर करण्यासाठी नेटवर्क प्रशासन क्षमता लागते, आणि बोगदा उपकरण उघडण्यासाठी त्या विशिष्ट उपकरण नोडमध्ये प्रवेश लागतो। या स्वतंत्र परवानग्या आहेत, आणि दोन्ही दिल्यासही ते सर्वव्यापी पर्यायापेक्षा अरुंदच राहते। विशेषाधिकार संचाच्या उर्वरित भागाचा बोगद्याशी काहीही संबंध नाही। ते खऱ्या अर्थाने होस्ट-स्तरीय प्रवेश आवश्यक असलेल्या कामांसाठी आहे, आणि VPN कंटेनर सामान्यतः त्यापैकी एक नसतो।

प्रत्येक त्रुटी एका पूर्वअटीशी जुळवा

त्रुटी संदेश दाबण्यापूर्वी वाचल्यास कोणती पूर्वअट गायब आहे ते सांगतो। उपकरण नोडबद्दलचा संदेश उपकरणाचे नाव घेतो, परवानगी नसलेल्या क्रियेबद्दलचा संदेश क्षमतेचे नाव घेतो, आणि मॉड्यूल किंवा sysctl बद्दलचा संदेश कर्नल समर्थनाचे नाव घेतो। यापैकी प्रत्येकाचा वेगळा उपाय आहे, आणि यापैकी फक्त एकच क्षमता आहे।

गायब कॉन्फिगरेशन फाइल सर्व क्षमता दिल्यानंतरही गायबच राहते, म्हणून विशेषाधिकार मोड कधीकधी काहीच बदलत नाही। कंटेनर सुरू होतो, बोगदा तरीही अयशस्वी होतो, आणि खरी त्रुटी कधीही परवानग्यांबद्दल नव्हती। कर्नल समर्थन ही तिसरी परिस्थिती आहे आणि चुकीच्या वाचनास सर्वात सोपी। होस्टवर लोड न केलेले मॉड्यूल विशेषाधिकार नसलेल्या कंटेनरच्या आतून लोड करता येत नाही, आणि कंटेनरच्या आत अधिक क्षमता दिल्याने होस्टची स्थिती बदलत नाही।

लक्षण नाही, आवश्यकता तपासा

इमेज दस्तऐवजीकरण करते त्या किमान कॉलपासून सुरुवात करा, तो चालवा, आणि अयशस्वीतेचा नेमका मजकूर ठेवा। नंतर एका वेळी एक परवानगी जोडा आणि कोणत्या जोडणीने निकाल बदलला ते नोंदवा।

ls -l /dev/net/tun
docker run --rm --cap-add NET_ADMIN --device /dev/net/tun image:tag
ip -br link show type tun

उपकरण पाहू शकणारा आणि क्षमता असलेला पण तरीही अयशस्वी होणारा कंटेनर तुम्हाला सांगतो की समस्या दुसरीकडे आहे। हा उपयुक्त निकाल आहे, आणि विशेषाधिकार मोड तो लपवला असता।

होस्टवरील उपकरणाच्या परवानग्याही तपासा, कारण योग्यरित्या दिलेला उपकरण नोड चुकीच्या गट-मालकीने गायब परवानगीसारखीच त्रुटी निर्माण करतो।

चालणारी सर्वात अरुंद परवानगी नोंदवा

तैनातीला लागणारे प्रत्येक उपकरण आणि क्षमता, त्यांना न्याय देणाऱ्या त्रुटीसह लिहा। तीच नोंद पुढच्या व्यक्तीला काहीतरी सुरक्षितपणे काढण्यास अनुमती देते, आणि कंटेनर विशेषाधिकारित असल्याचे नोंदवले जाते तेव्हा लेखापरीक्षक मागणार तीच नोंद।

आजूबाजूचा संदर्भही तपासा, कारण होस्ट नेटवर्किंग, होस्ट माउंट आणि रनटाइम पर्याय यापैकी प्रत्येक परवानगीचा प्रभाव वाढवू शकतो। त्या सर्वांचा संगम असलेला वेगळा प्रयोगशाळा कॉल, कितीही चांगला चालला तरी, उत्पादन कॉन्फिगरेशन नाही। तैनाती पूर्ण झाली असे जाहीर करण्यापूर्वी अनुप्रयोग, त्याचे DNS वर्तन आणि बोगदा अयशस्वी होणे तपासा। इंटरफेस तयार करण्याची परवानगी बाहेर जाण्याचे धोरण नाही, आणि उत्तम बोगदा करू शकणारा कंटेनर तरीही अनुप्रयोग जे पाठवतो ते सर्व मार्गित करतो।

संबंधित लेख