चेरोट कमांड सभी चल रही प्रक्रियाओं के लिए रूट डायरेक्टरी को बदलकर लिनक्स पर एक अलग वातावरण बनाता है।
क्या आप लिनक्स पर एक अलग जगह में एप्लिकेशन या सेवाएं चलाना चाहते हैं? या हो सकता है कि आप अपने सिस्टम के बाकी हिस्सों में हस्तक्षेप किए बिना किसी एप्लिकेशन का परीक्षण और डीबग करना चाहते हों? यदि ऐसा है, तो आप chroot के बारे में सीखना चाहेंगे, Linux में निर्मित एक शक्तिशाली तंत्र जो आपको अपने सिस्टम के भीतर एक अलग वातावरण बनाने की अनुमति देता है।
आइए चेरोट के बारे में विस्तार से जानें, इसके लाभों के बारे में जानें, मामलों का उपयोग करें, इसे लिनक्स सिस्टम पर कैसे सेट करें, और यदि आवश्यक हो, तो इससे कैसे बचा जाए।
लिनक्स में क्रोट क्या है?
क्रोट या चेंज-रूट यकीनन कंटेनरीकरण सॉफ्टवेयर के सबसे आसान और प्राचीन रूपों में से एक है जो उपयोगकर्ता को सुरक्षित रूप से सैंडबॉक्स एप्लिकेशन और सेवाओं की अनुमति देता है। सैंडबॉक्सिंग, कंप्यूटिंग के संदर्भ में, पूर्व-परिभाषित संसाधनों के साथ एक सीमित स्थान में एक कार्यक्रम को अलग करने की प्रक्रिया है।
यदि आप परिचित हैं डॉकर और यह कैसे काम करता है, आप चेरोट को इसके भारी-भरकम संस्करण के रूप में सोच सकते हैं। chroot एक प्रोग्राम की रूट डायरेक्टरी को बदलकर काम करता है, पहुंच और दृश्यता को प्रतिबंधित करता है, और इस प्रकार अलगाव और सुरक्षा की एक अतिरिक्त परत प्रदान करता है।
अनिवार्य रूप से, आप एक अलग निर्देशिका बनाते हैं, सभी प्रोग्राम की निर्भरताओं को नई निर्देशिका में कॉपी करते हैं, और फिर चेरोट कमांड चलाते हैं। यह प्रोग्राम को ठीक से काम करने की अनुमति देता है जबकि बेस फाइल सिस्टम तक कोई पहुंच नहीं है।
किसी प्रोग्राम को क्रोट करना वास्तविक सिस्टम की फाइलों में बदलाव किए बिना एक सुरक्षित स्थान में इसकी विश्वसनीयता का परीक्षण करने का एक शानदार तरीका है। इसके अलावा, आप एक समझौता किए गए पैकेज के कारण होने वाले सुरक्षा जोखिम को भी कम कर सकते हैं क्योंकि एक चिरोटेड वातावरण में, समझौता किया गया पैकेज संवेदनशील सिस्टम फ़ाइलों को एक्सेस और संशोधित करने में सक्षम नहीं होगा।
प्रोग्राम केवल चिरोट की गई निर्देशिका में आयात की गई फ़ाइलों तक पहुँचने और देखने में सक्षम होगा, अन्यथा "चेरोट जेल" के रूप में जाना जाता है। यह प्रोग्राम और उसकी उप-प्रक्रियाओं को आधार प्रणाली में हस्तक्षेप करने से रोकता है।
चुरोट जेल क्या है?
एक चेरोट जेल एक अलग वातावरण है जहां चेरोट प्रोग्राम रहते हैं और निष्पादित होते हैं। चेरोट जेल शब्द इस अवधारणा से लिया गया है कि चेरोटेड पर्यावरण के अंदर प्रक्रिया और इसकी उप-प्रक्रियाएं बेस फाइल सिस्टम तक कोई पहुंच या दृश्यता नहीं है और पूर्व-निर्धारित चुरोट की सीमा के भीतर फंस गए हैं संसाधन।
अब जब आपके लिए क्रोट की अवधारणा स्पष्ट हो गई है, तो आइए जानें कि कैसे आप चेरोट जेल बना सकते हैं और इसमें प्रक्रियाओं को स्पॉन कर सकते हैं।
क्रोट जेल कैसे बनायें और उसमें प्रोग्राम कैसे चलायें
एक चेरोट जेल अनिवार्य रूप से एक निर्देशिका है जिसमें सभी आवश्यक संसाधन, फाइलें, बायनेरिज़ और अन्य निर्भरताएँ होती हैं, जिन्हें प्रोग्राम को ठीक से काम करने की आवश्यकता होती है।
हालांकि, एक नियमित लिनक्स वातावरण के विपरीत, चेरोट जेल का वातावरण अत्यधिक प्रतिबंधित है और प्रोग्राम बाहरी या अतिरिक्त फाइलों और सिस्टम संसाधनों तक नहीं पहुंच सकता है।
उदाहरण के लिए, बैश शेल को क्रोट जेल में चलाने के लिए, आपको बैश बाइनरी और इसकी सभी निर्भरताओं को चेरोट निर्देशिका में कॉपी करने की आवश्यकता होगी।
यहाँ चेरोट जेल बनाने और बैश शेल बनाने के चरण दिए गए हैं:
- किसी प्रोग्राम को सफलतापूर्वक चलाने के लिए, आपको उसकी सभी निर्भरताओं को चिरोटेड डायरेक्टरी में कॉपी करना होगा। आइए बाइनरी खोजें, इस मामले में, बैश, और जो और ldd कमांड का उपयोग करके इसकी सभी निर्भरताओं का स्थान:
कौन सा बैश
एलडीडी /usr/bin/bash - अब जब आप बाइनरी और इसकी निर्भरताओं के स्थानों को जानते हैं, तो उन्हें उस निर्देशिका में कॉपी करें जिसे आप चेरोट जेल में बदलना चाहते हैं। Mkdir कमांड का उपयोग करके आवश्यक निर्देशिकाएँ बनाएँ और उपयोग करें सीपी कमांड, सभी फाइलों को संबंधित निर्देशिकाओं में कॉपी करें:
mkdir बिन lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* /lib64/ && cp /bin/bash /bin/
- अंत में, प्रोग्राम और इसकी निर्भरताओं की प्रतिलिपि के साथ, आप चयनित निर्देशिका में चेरोट पर्यावरण को बढ़ाने के लिए सुडो उपसर्ग का उपयोग करके उन्नत विशेषाधिकारों के साथ चेरोट कमांड चला सकते हैं। डिफ़ॉल्ट रूप से, यह बैश खोल उत्पन्न करेगा। यहाँ टाइप करने का आदेश दिया गया है:
सुडो क्रोट निर्देशिका_नाम
चेरोट जेल बनाने और उसके अंदर एक प्रोग्राम चलाने के लिए बस इतना ही कदम है।
चेरोट जेल से कैसे बाहर निकलें
जबकि चेरोट जेल अस्थिर सॉफ़्टवेयर के परीक्षण के लिए अच्छे हैं, वे SSH कनेक्शन को संभालते समय भी उपयोगी होते हैं क्योंकि कनेक्टेड उपयोगकर्ताओं को चेरोटिंग करना कई में से एक है अपने SSH सर्वर को सुरक्षित करने के तरीके.
दूसरी तरफ, यदि आप एक पैठ परीक्षक हैं और आपने अपने लक्ष्य के SSH सर्वर में लॉग इन किया है, तो इसे एक चिरोटेड वातावरण के रूप में खोजना निराशाजनक हो सकता है और एक मृत अंत की तरह महसूस हो सकता है।
हालाँकि, गलत कॉन्फ़िगर किए गए चेरोट जेल से बचने के लिए बहुत सारे तरीके हैं, कुछ को C प्रोग्रामिंग कौशल की आवश्यकता होती है जबकि अन्य को टूलिंग के साथ स्वचालित किया जा सकता है। चुरोट से बचने के कुछ आसान तरीके हैं:
- नेस्टेड क्रोट कॉल
- सहेजे गए फ़ाइल डिस्क्रिप्टर के साथ नेस्टेड चेरोट कॉल
- माउंट रूट विधि
- प्रोफ्स बच जाते हैं
- ptrace पलायन
ध्यान दें कि इनमें से किसी भी तरीके का उपयोग करके चेरोट एस्केप करने के लिए, आपको सिस्टम में बढ़े हुए विशेषाधिकारों की आवश्यकता होगी। बचने के इन तरीकों के बारे में और जानें chw00t का GitHub रिपॉजिटरी, एक क्रोट एस्केप ऑटोमेशन टूल।
अब आप लिनक्स में क्रोट के बारे में सब कुछ जानते हैं I
अब जब आप जानते हैं कि चेरोट क्या है, यह कैसे काम करता है, और इसे कैसे लागू करना है, तो आपको टर्मिनल से आसानी से सैंडबॉक्स एप्लिकेशन में सक्षम होना चाहिए। ध्यान रखें कि, जैसा कि आप जानते हैं, जड़ जमाए हुए वातावरण से बाहर निकलने के कई तरीके हैं।
इससे पता चलता है कि क्रोट को किसी भी तरह से सुरक्षा सुविधा के रूप में लागू करने के लिए डिज़ाइन नहीं किया गया था। इसलिए आपको बहुत सावधानी के साथ क्रोट का उपयोग करना चाहिए क्योंकि एक अनुचित कॉन्फ़िगरेशन बैकफ़ायरिंग को समाप्त कर सकता है और आपके सिस्टम की सुरक्षा से समझौता कर सकता है।
कंटेनरीकरण सॉफ़्टवेयर या वर्चुअल मशीन जैसे समर्पित सैंडबॉक्सिंग समाधानों से चिपके रहना सबसे अच्छा है। ये दोनों सैंडबॉक्सिंग और सुरक्षा पर केंद्रित हैं, इसलिए जब तक शहर में कोई नया शून्य-दिन न हो, आपको अपने सिस्टम की सुरक्षा और अखंडता के बारे में चिंता करने की आवश्यकता नहीं होगी।
यदि आप सुनिश्चित नहीं हैं कि कंटेनरीकरण और वर्चुअलाइजेशन सॉफ़्टवेयर में से किसे चुनना है, तो आपको दोनों को आज़माकर देखना चाहिए कि कौन सा बेहतर है।