CentOS / RHEL 7 में हार्ड और प्रतीकात्मक लिंक की सुरक्षा कैसे करें


लिनक्स में, हार्ड और सॉफ्ट लिंक को फ़ाइलों के लिए संदर्भित किया जाता है, जो बहुत महत्वपूर्ण हैं, अगर बहुत अच्छी तरह से संरक्षित नहीं किया गया है, तो उनमें किसी भी कमजोरियों का दुर्भावनापूर्ण सिस्टम उपयोगकर्ताओं या हमलावरों द्वारा शोषण किया जा सकता है।

एक सामान्य भेद्यता है सहिष्णु दौड़ । यह सॉफ़्टवेयर में सुरक्षा भेद्यता है, जो उस समय के बारे में आता है जब कोई प्रोग्राम असुरक्षित रूप से फ़ाइलें (विशेष रूप से अस्थायी फ़ाइलें) बनाता है, और एक दुर्भावनापूर्ण सिस्टम उपयोगकर्ता ऐसी फ़ाइल के लिए एक प्रतीकात्मक (नरम) लिंक बना सकता है।

यह व्यावहारिक रूप से होता है; यदि कोई अस्थायी फ़ाइल मौजूद है या नहीं, तो यह जाँचता है कि यह फ़ाइल बनाता है या नहीं। लेकिन फ़ाइल की जाँच और इसे बनाने के बीच की उस छोटी सी अवधि में, एक हमलावर संभवतः किसी फ़ाइल का प्रतीकात्मक लिंक बना सकता है और उसे एक्सेस करने की अनुमति नहीं है।

इसलिए जब प्रोग्राम मान्य विशेषाधिकारों के साथ चलता है तो फाइल को उसी नाम से बनाता है जैसा कि हमलावर द्वारा बनाया गया था, यह शाब्दिक रूप से लक्ष्य (लिंक्ड-इन) फाइल को बनाता है जिसे हमलावर एक्सेस करना चाहता था। इसलिए, यह हमलावर को रूट खाते से संवेदनशील जानकारी को चोरी करने या सिस्टम पर एक दुर्भावनापूर्ण कार्यक्रम को निष्पादित करने का एक रास्ता दे सकता है।

इसलिए, इस लेख में, हम आपको दिखाएंगे कि कैसे CentOS/RHEL 7 वितरण में दुर्भावनापूर्ण उपयोगकर्ताओं या हैकर्स से कड़ी और प्रतीकात्मक लिंक सुरक्षित करें।

CentOS/RHEL 7 पर एक महत्वपूर्ण सुरक्षा सुविधा मौजूद है जो केवल लिंक बनाने की अनुमति देती है या कार्यक्रमों के बाद ही बनाई जाती है यदि कुछ शर्तों को नीचे वर्णित के अनुसार संतुष्ट किया जाता है।

लिंक बनाने के लिए सिस्टम उपयोगकर्ता के लिए, निम्न में से एक शर्त को पूरा करना होगा।

  • the user can only link to files that he or she owns.
  • the user must first have read and write access to a file, that he or she wants to link to.

प्रक्रियाओं को केवल उन लिंक का पालन करने की अनुमति है जो विश्व-लेखन के बाहर हैं (अन्य उपयोगकर्ताओं को लिखने की अनुमति है) निर्देशिका जो चिपचिपा बिट्स है, या निम्न में से एक को सच होना चाहिए।

  • the process following the symbolic link is the owner of the symbolic link.
  • the owner of the directory is also the owner of the symbolic link.

हार्ड और सिम्बोलिक लिंक पर सुरक्षा को सक्षम या अक्षम करें

महत्वपूर्ण रूप से, डिफ़ॉल्ट रूप से, यह सुविधा फ़ाइल में कर्नेल मापदंडों का उपयोग करने में सक्षम है /usr/lib/sysctl.d/50-default.conf ( 1

fs.protected_hardlinks = 1
fs.protected_symlinks = 1

हालाँकि, एक कारण या दूसरे के लिए, यदि आप इस सुरक्षा सुविधा को निष्क्रिय करना चाहते हैं; नीचे इन कर्नेल विकल्पों के साथ /etc/sysctl.d/51-no-protect-links.conf नामक फ़ाइल बनाएं (मान 0 का अर्थ अक्षम)।

फ़ाइल नाम में उस 51 का ध्यान रखें ( 51-no-protect-links.conf ), डिफ़ॉल्ट सेटिंग्स को ओवरराइड करने के लिए डिफ़ॉल्ट फ़ाइल के बाद इसे पढ़ना होगा।

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

फ़ाइल को सहेजें और बंद करें। फिर उपरोक्त परिवर्तनों को प्रभावित करने के लिए नीचे दिए गए आदेश का उपयोग करें (यह कमांड वास्तव में प्रत्येक और हर सिस्टम कॉन्फ़िगरेशन फ़ाइल से सेटिंग्स लोड करता है)।

# sysctl --system
OR
# sysctl -p  #on older systems

आप इन निम्नलिखित लेखों को पढ़ना पसंद कर सकते हैं।

  1. How to Password Protect a Vim File in Linux
  2. 5 ‘chattr’ Commands to Make Important Files IMMUTABLE (Unchangeable) in Linux

बस इतना ही! आप अपने प्रश्नों को पोस्ट कर सकते हैं या नीचे दिए गए फीडबैक फॉर्म के माध्यम से इस विषय से संबंधित कोई भी विचार साझा कर सकते हैं।