हां, SELinux Red Hat (और कोई अन्य लिनक्स वितरण जो वास्तव में इसका उपयोग करता है) को अधिक सुरक्षित बनाता है, यह मानते हुए कि यह वास्तव में उपयोग में है।
SELinux अनिवार्य पहुँच नियंत्रण को लागू करता है । सामान्य यूनिक्स अनुमतियाँ, एसीएल आदि, विवेकाधीन अभिगम नियंत्रण को लागू करते हैं । दोनों एक दूसरे के पूरक हैं।
काम करने के लिए, SELinux को एक नीति की आवश्यकता होती है, जो यह परिभाषित करती है कि सिस्टम पर क्या कार्रवाई की अनुमति दी जा सकती है। हालांकि, खरोंच से संपूर्ण सिस्टम नीति बनाना संभव है, अधिकांश लिनक्स वितरण तथाकथित संदर्भ नीति के आधार पर एक नीति को शिप करते हैं । इसका मतलब है, अन्य बातों के अलावा, वितरण में SELinux को कॉन्फ़िगर करना बहुत समान होगा। (अधिकांश लिनक्स वितरण अपने पैकेज रिपॉजिटरी में SELinux संदर्भ नीति उपलब्ध कराते हैं, हालांकि यह डिफ़ॉल्ट रूप से स्थापित नहीं किया जा सकता है।)
SELinux उपयोगकर्ताओं और प्रक्रियाओं को प्रतिबंधित करके काम करता है, केवल नीति में उन्हें अनुमत कार्य करने के लिए। डिफ़ॉल्ट रूप से, नीति को अस्वीकार करना है, इसलिए यदि नीति स्पष्ट रूप से कार्रवाई की अनुमति नहीं देती है, तो ऐसा नहीं होता है। यही कारण है कि आप अक्सर SELinux के साथ मुसीबत में भागते हैं जो आप करने की कोशिश कर रहे हैं।
उज्ज्वल पक्ष पर, यह शोषण को रोकता है, यहां तक कि हाथ से निकलने से 0-दिन के कारनामे भी। उदाहरण के लिए, यदि आपके वेब सर्वर (अपाचे) का दोहन हो जाता है, तो नुकसान केवल उन चीजों तक ही सीमित है, जिन्हें अपाचे एक्सेस कर सकता है। /etc/shadow
उदाहरण के लिए, दूरस्थ रूट शोषण के साथ भी यह आपकी फ़ाइल को पढ़ने में सक्षम नहीं होगा । हालांकि यूनिक्स की अनुमति (DAC) रूट को फ़ाइल पढ़ने की अनुमति देती है, SELinux (MAC) समझौता प्रक्रिया को सीमा से बाहर जाने की अनुमति नहीं देता है।
बड़ी गोटा यह है कि सर्विस के लिए SELinux पॉलिसी मॉड्यूल होना चाहिए। यदि आप अपने बॉक्स पर एक सेवा स्थापित करते हैं जिसमें एक SELinux नीति मॉड्यूल शामिल नहीं है, तो यह अपरिभाषित चलेगा और जो चाहे कर सकता है। SELinux उस पर लागू नहीं होगा।
एक और बात जो आपको पता होनी चाहिए वह सब है बुलियन । ये ट्यून करने योग्य पैरामीटर SELinux नीतियों द्वारा प्रदान किए जाते हैं ताकि उन्हें विशेष प्रतिष्ठानों के लिए अनुकूलित किया जा सके, और स्थानीय कॉन्फ़िगरेशन आवश्यकताओं के आधार पर परमिट या अस्वीकार करने की अनुमति दी जा सके। उदाहरण के लिए, आप सांबा के शेयरों को अपाचे एक्सेस दे सकते हैं, सांबा को उपयोगकर्ता के घर निर्देशिकाओं को साझा करने में सक्षम कर सकते हैं, और कई अन्य संभावित उपयोगी चीजें जो कुछ सेटअपों के लिए आवश्यक हैं, लेकिन अन्य नहीं।
SELinux के लिए सबसे अच्छा मार्गदर्शक जो मैंने वर्तमान में देखा है वह Red Hat का सुरक्षा-संवर्धित लिनक्स उपयोगकर्ता गाइड है । यह आपको जल्दी से उठने और दौड़ने में मदद करेगा और साथ ही जो चल रहा है उसकी पृष्ठभूमि के विवरण को भी भरें। इसमें एक व्यापक समस्या निवारण मार्गदर्शिका भी शामिल है जो SELinux के अंतर्गत आपकी प्रक्रिया को चलाने में मदद करती है।
क्या यह उपयोगी है?
SELinux अनपेक्षित चीजों को करने से प्रक्रियाओं (और उपयोगकर्ताओं, यदि आपने अपने उपयोगकर्ताओं को सीमित कर दिया है) से बचाता है। यह गंभीर रूप से उस नुकसान को सीमित करता है जो एक दूरस्थ शोषण कर सकता है। यदि आपने कभी दूरस्थ समझौता नहीं किया है, तो आप (1) भाग्यशाली हैं, और (2) शायद नए हैं। आप तो है एक दूरस्थ समझौता काम किया है, तो आप निश्चित रूप से नहीं है यह कभी दोबारा करना चाहते हैं।
यह घर की सेटिंग में उतना उपयोगी नहीं है , जब तक कि आप घर पर इंटरनेट का सामना करने वाली सेवाएं नहीं चला रहे हों (और कुछ लोग करते हैं)। उस मामले में, ऊपर कहा गया सब कुछ लागू होता है।
SELinux आखिरी चीज हो सकती है जो आपके डेटा और हमलावर के बीच 0 दिन के शोषण के साथ खड़ी हो जो वास्तव में यह चाहती है। यदि आप इसका उपयोग कर सकते हैं, तो आप क्यों नहीं करेंगे?