परिचय
कुछ हफ्ते पहले, मैंने AppArmor हार्डनिंग टूल का एक बुनियादी अवलोकन प्रदान करने वाला एक लेख लिखा था, जिसमें बताया गया था कि यह कैसे काम करता है और Firefox ब्राउज़र को सीमित और हार्डन करने का एक व्यावहारिक उदाहरण दिखाया गया था। लेकिन ध्यान दें, यह सिर्फ कोई Firefox नहीं है, बल्कि विशेष रूप से Mozilla से डाउनलोड किया जाने वाला टारबॉल संस्करण है। मैं टार आर्काइव की बात कर रहा हूँ। डाउनलोड करें, निकालें, चलाएँ।
समस्या विस्तार से
तो होता क्या है: यदि आप Firefox के टार संस्करण का उपयोग करते हैं, तो इसमें Windows की तरह स्वचालित अपडेट का विकल्प होता है। ब्राउज़र को अपडेट मिलता है, आप इसे पुनरारंभ करते हैं, काम हो जाता है। आपको मैन्युअल रूप से कुछ भी पुनर्स्थापित करने की आवश्यकता नहीं है, आप बस ब्राउज़र को वहीं से चलाते रहते हैं जहाँ आपने इसे पहली बार निकाला था, जैसे ~/Firefox/।
हालाँकि, मेरे AppArmor प्रोफ़ाइल के साथ, ब्राउज़र स्व-अपडेट नहीं कर सकता (ऊपर स्क्रीनशॉट देखें)। यह आपको बताएगा कि अपडेट उपलब्ध हैं, और आप उन्हें मैन्युअली डाउनलोड कर सकते हैं। वास्तव में, कुछ समाधान हैं:
- आप AppArmor नियम को हटा सकते हैं, और अगले ब्राउज़र पुनरारंभ पर, Firefox स्व-अपडेट करने में सक्षम होगा। लेकिन यह बोझिल है। और आपको बाद में नियम को फिर से लागू करना होगा।
sudo apparmor_parser -R "आपके Firefox टार संस्करण प्रोफ़ाइल का नाम"
- आप आधिकारिक साइट पर मैन्युअली जा सकते हैं, नया टारबॉल आर्काइव डाउनलोड कर सकते हैं, और फिर इसे पुराने के ऊपर निकाल सकते हैं, या बस इसे निकालें और नए फ़ोल्डर से सभी फ़ाइलों को मैन्युअली कॉपी करें जहाँ आप Firefox रखते हैं। यह आपके Firefox प्रोफ़ाइल को किसी भी तरह से प्रभावित नहीं करेगा।
tar -xvf "टारबॉल"
cp -ar "टारबॉल निकाला गया फ़ोल्डर"/* "Firefox इंस्टॉलेशन फ़ोल्डर"/
हालाँकि, ये केवल (आसान) अर्ध-समाधान हैं, और हम कुछ अधिक ठोस चाहते हैं।
समाधान
असली समाधान AppArmor प्रोफ़ाइल के माध्यम से जाना और यह समझना है कि मौजूदा नियमों में से कौन सा संघर्ष पैदा करता है। सामान्यतः, प्रोफ़ाइल में प्रत्येक पंक्ति एक नियम है जो चुनिंदा रूप से कुछ अनुमति देता है (जैसे निर्देशिका को पढ़ना लेकिन लिखना नहीं), या किसी विशिष्ट संसाधन तक पहुंच को पूरी तरह से अस्वीकार करता है। जो कुछ भी स्पष्ट रूप से लिखा नहीं गया है, वह प्रोफ़ाइल द्वारा कवर नहीं किया जाएगा।
फ़ाइल में डिफ़ॉल्ट नियमों में से एक है Firefox इंस्टॉलेशन निर्देशिका के अंदर फ़ाइलों और फ़ोल्डरों तक लिखने की पहुंच को अस्वीकार करना। यह डिफ़ॉल्ट प्रोफ़ाइल के लिए समझ में आता है जब और जहाँ Firefox सिस्टम निर्देशिका में स्थापित होता है, लेकिन जरूरी नहीं कि यदि आप Firefox को अपने अलग स्थान पर इंस्टॉल करते हैं।
deny @{MOZ_LIBDIR}/** w,
हम इस नियम को टिप्पणी कर सकते हैं, Firefox प्रोफ़ाइल को पुनः लोड कर सकते हैं, और काम हो गया:
sudo apparmor_parser -r "प्रोफ़ाइल नाम"


निष्कर्ष
काम हो गया। यह छोटा और सरल परिवर्तन Firefox टार संस्करण को उसकी स्व-अपडेट क्षमता वापस देने के लिए पर्याप्त है। अब, यदि आप सुपर-सुरक्षा-जागरूक हैं, तो आप कह सकते हैं कि यह अच्छा नहीं है, और आप जरूरत पड़ने पर मैन्युअल अपडेट करने में सहज हैं। आप हमेशा उस तरकीब का सहारा ले सकते हैं। लेकिन यदि आप कुछ सुविधा चाहते हैं, और फिर भी AppArmor प्रोफ़ाइल हार्डनिंग का बड़ा हिस्सा आपके लिए काम कर रहा है, तो आप ब्राउज़र को अपने इंस्टॉलेशन फ़ोल्डर में लिखने की अनुमति दे सकते हैं। बस संभावित परिणामों से अवगत रहें।
उम्मीद है, यह गाइड इस विषय पर आपके कुछ सवालों को स्पष्ट या रहस्यमय करता है। लेकिन फिर से, हम अभी खत्म नहीं हुए हैं। अगली बार, हम D-Bus के बारे में बात करेंगे, और विशेष रूप से, Firefox को KDE/Plasma एकीकरण सुविधाओं का उपयोग करने की क्षमता देने के लिए आवश्यक कोई भी नियम। शायद यह KDE-विशिष्ट लगता है, लेकिन मैं यह सुनिश्चित करूंगा कि ट्यूटोरियल किसी भी प्रकार की ब्राउज़र एकीकरण कार्यक्षमता के लिए लागू होने के लिए पर्याप्त सामान्य है। अगली बार तक, प्रिय साथी नर्ड्स।
चीयर्स।