Linux chattr गाइड: root से भी सुरक्षित रखें फाइल्स

परिचय एवं कार्यप्रणाली

लिनक्स सर्वर पर रूट (root) अकाउंट को असीमित विशेषाधिकार प्राप्त होते हैं, जिसके कारण एक छोटी सी मानवीय भूल या दुर्भावनापूर्ण स्क्रिप्ट पूरी प्रणाली की महत्वपूर्ण फाइलों को नष्ट कर सकती है। साधारण फाइल अनुमतियाँ (permissions) रूट उपयोगकर्ता को रोकने में असमर्थ रहती हैं। यहीं पर chattr (Change Attribute) यूटिलिटी अत्यंत प्रभावी सिद्ध होती है। यह लिनक्स फाइल सिस्टम के एक्सटेंडेड एट्रीब्यूट्स को प्रबंधित करती है। इस गाइड में हम lsattr के साथ फाइलों की स्थिति जांचने, डेटा को पूरी तरह अपरिवर्तनीय (+i) बनाने और लॉग्स की सुरक्षा के लिए केवल डेटा जोड़ने वाले अपेंड-ओनली (+a) मोड का व्यावहारिक उपयोग सीखेंगे।

फाइल एट्रिब्यूट्स की पड़ताल और बुनियादी स्थिति (lsattr)

सुरक्षा परीक्षण के लिए एक पृथक कार्यक्षेत्र तैयार करते हैं। इसके लिए mkdir -p ~/chattr_demo && cd ~/chattr_demo कमांड चलाकर समर्पित डायरेक्टरी बनाएं और उसमें प्रवेश करें।

प्रैक्टिस डायरेक्टरी बनाना और उसमें प्रवेश करना

परीक्षण के उद्देश्य से एक कॉन्फ़िगरेशन फाइल बनाने हेतु touch secure_config.conf निष्पादित करें।

टेस्ट कॉन्फ़िगरेशन फाइल का निर्माण

लिनक्स में फाइल के विशेष एक्सटेंडेड गुणों को देखने के लिए lsattr टूल का प्रयोग किया जाता है।
प्रारंभिक आउटपुट में दिखाई देने वाला e फ्लैग इंगित करता है कि फाइल सिस्टम ब्लॉक आवंटन के लिए एक्सटेंट्स (extents) मैपिंग तकनीक काम में ले रहा है।
⚙️ [उपयोगी विकल्प]

-a : डॉट (.) से प्रारंभ होने वाली सभी गुप्त (hidden) फाइलों के एट्रीब्यूट्स भी प्रदर्शित करता है।
-d : डायरेक्टरी की आंतरिक सामग्रियों के बजाय स्वयं उस डायरेक्टरी के एट्रीब्यूट्स की सूची देता है।
-R : सब-डायरेक्टरीज़ और उनकी फाइलों की रिकर्सिव रूप से पड़ताल करता है।
-v : फाइल के जनरेशन नंबर (संस्करण डेटा) को दर्शाता है।

lsattr द्वारा फाइल के डिफॉल्ट एट्रीब्यूट की जांच

फाइल को अपरिवर्तनीय बनाना: root भी नहीं कर पाएगा डिलीट (+i विकल्प)

फाइल को पूरी तरह लॉक (immutable) करने के लिए sudo chattr +i ~/chattr_demo/secure_config.conf कमांड लागू करें।
एक बार जब +i फ्लैग सक्रिय हो जाता है, तो रूट एडमिनिस्ट्रेटर समेत कोई भी यूजर न तो फाइल में बदलाव कर सकता है, न उसे डिलीट कर सकता है और न ही उसका नाम बदल सकता है।

फाइल पर immutable एट्रिब्यूट लागू करना

निर्धारित सुरक्षा फ्लैग की पुष्टि के लिए lsattr ~/chattr_demo/secure_config.conf चलाएं।
परिणाम में जुड़ा हुआ i अक्षर यह स्पष्ट करता है कि फाइल अब पूर्णतः सुरक्षित और अपरिवर्तनीय स्थिति में पहुँच चुकी है।

अपरिवर्तनीय स्थिति की पुष्टि

सुरक्षा कवच की प्रभावशीलता परखने के लिए जबरन विलोपन का प्रयास करते हैं; rm -f ~/chattr_demo/secure_config.conf रन करें।
सिस्टम फाइल हटाने की अनुमति नहीं देगा और -f (फोर्स) विकल्प का उपयोग करने पर भी डेटा पूरी तरह सुरक्षित बना रहेगा।

फोर्स डिलीट का विफल प्रयास

सुरक्षा हटाना और सामान्य संपादन बहाल करना (-i विकल्प)

जब कॉन्फ़िगरेशन को अपडेट करने की आवश्यकता हो, तो sudo chattr -i ~/chattr_demo/secure_config.conf कमांड की मदद से सुरक्षा प्रतिबंध हटाए जा सकते हैं।
यह -i पैरामीटर फाइल से इम्यूटेबल लॉक को निष्क्रिय कर देता है, जिससे सामान्य संपादन संभव हो जाता है।

फाइल से इम्यूटेबल लॉक हटाना

प्रतिबंध हटने की पुष्टि हेतु पुन: lsattr ~/chattr_demo/secure_config.conf कमांड चलाएं।
आउटपुट से i सिंबल हट चुका होगा, जो यह दर्शाता है कि अब फाइल संशोधन के लिए तैयार है।

लॉक हटने की पुष्टि हेतु जांच

फाइल में परिवर्तन की जांच करने के लिए echo 'server_port=8080' >> ~/chattr_demo/secure_config.conf निष्पादित करके नई सेटिंग्स जोड़ें।

फाइल में नया कॉन्फ़िगरेशन डेटा जोड़ना

अद्यतन की सफलता जांचने के लिए cat ~/chattr_demo/secure_config.conf कमांड द्वारा सामग्री को स्क्रीन पर देखें।
नया पैरामीटर बिना किसी बाधा के फाइल में सफलतापूर्वक दर्ज हो चुका है।

संपादित सामग्री का सत्यापन

लॉग फाइलों की सुरक्षा: केवल नया डेटा जोड़ने की अनुमति (+a विकल्प)

सिस्टम और एप्लिकेशन ऑडिट लॉग्स के साथ सबसे बड़ा खतरा उनके संपादन या विलोपन का होता है। इसके परीक्षण हेतु touch ~/chattr_demo/app_audit.log कमांड से एक डेमो लॉग फाइल बनाएं।

ऑडिट लॉग फाइल का निर्माण

पूर्व डेटा को सुरक्षित रखते हुए केवल नई प्रविष्टियाँ जोड़ने की अनुमति देने के लिए sudo chattr +a ~/chattr_demo/app_audit.log रन करें।
+a (अपेंड-ओनली) सक्रिय होने पर फाइल को ओवरराइट या ट्रंकेट नहीं किया जा सकता, जिससे साक्ष्यों की सुरक्षा सुनिश्चित होती है।

अपेंड-ओनली सुरक्षा मोड लागू करना

लागू किए गए एट्रीब्यूट की समीक्षा हेतु lsattr ~/chattr_demo/app_audit.log निष्पादित करें।
परिणाम में a फ्लैग की उपस्थिति यह प्रमाणित करती है कि अपेंड-ओनली सुरक्षा सफलतापूर्वक कार्यरत है।

अपेंड-ओनली फ्लैग का सत्यापन

नए लॉग्स दर्ज करने की प्रक्रिया परखने के लिए echo 'Audit Event: System initialized' >> ~/chattr_demo/app_audit.log चलाएं।
>> रीडायरेक्शन ऑपरेटर द्वारा नया डेटा फाइल के अंत में सुचारू रूप से जुड़ जाएगा।

लॉग फाइल में नई प्रविष्टि जोड़ना

लॉग डेटा की पुष्टि के लिए cat ~/chattr_demo/app_audit.log कमांड का प्रयोग करें।
आउटपुट में नया इवेंट सुरक्षित रूप से दर्ज दिखाई देगा।

लॉग प्रविष्टि का सफल प्रदर्शन

संपूर्ण डायरेक्टरी और सब-फाइलों पर रिकर्सिव सुरक्षा (-R विकल्प)

पूरे फोल्डर और उसकी अंतर्निहित सभी फाइलों को एक साथ सुरक्षित करने के लिए mkdir -p ~/chattr_demo/protected_dir && touch ~/chattr_demo/protected_dir/config1.txt ~/chattr_demo/protected_dir/config2.txt चलाकर डायरेक्टरी संरचना तैयार करें।

टेस्ट फोल्डर और फाइल्स का निर्माण

डायरेक्टरी पदानुक्रम के सभी घटकों पर एक साथ अपरिवर्तनीय सुरक्षा थोपने के लिए sudo chattr -R +i ~/chattr_demo/protected_dir निष्पादित करें।
-R विकल्प आंतरिक फाइलों में व्यक्तिगत रूप से जाए बिना संपूर्ण समूह पर एक ही बार में सुरक्षा नीति लागू कर देता है।

रिकर्सिव इम्यूटेबल सुरक्षा लागू करना

सामूहिक सुरक्षा स्थिति की पड़ताल के लिए lsattr ~/chattr_demo/protected_dir चलाएं।
सभी आंतरिक फाइलों के सामने i फ्लैग दिखाई देगा, जो यह दर्शाता है कि बैच प्रोटेक्शन सुचारू रूप से सक्रिय है।

सभी फाइलों पर सक्रिय सुरक्षा की पुष्टि

रखरखाव अथवा संशोधन हेतु डायरेक्टरी और उसकी सभी फाइलों से सुरक्षा हटाने के लिए sudo chattr -R -i ~/chattr_demo/protected_dir निष्पादित करें।
-R -i का संयोजन सुरक्षा प्रतिबंधों को एक साथ समाप्त कर फाइल संरचना को सामान्य कार्यशील स्थिति में लौटा देता है।

रिकर्सिव सुरक्षा प्रतिबंध हटाना

लिनक्स में chattr और lsattr कमांड्स का कुशल उपयोग महत्वपूर्ण सिस्टम फाइलों, डीएनएस सेटिंग्स (/etc/resolv.conf), और ऑडिट लॉग्स को आकस्मिक विलोपन अथवा अनधिकृत छेड़छाड़ से बचाने का एक अचूक माध्यम है। इन टूल्स को अपनी नियमित सर्वर प्रबंधन रणनीति में शामिल करके आप लिनक्स इन्फ्रास्ट्रक्चर की विश्वसनीयता को एक नए स्तर पर ले जा सकते हैं।