लिनक्स फ़ाइल सुरक्षा में DAC (फ़ाइल अनुमति), ACL और MAC (SELinux) की क्या भूमिकाएँ हैं?


18

मुझे लिनक्स फ़ाइल सुरक्षा में विभिन्न भूमिकाओं DAC, ACL और MAC प्ले पर कुछ स्पष्टीकरण / पुष्टि / विस्तार की आवश्यकता है।

प्रलेखन से कुछ शोध के बाद, यह स्टैक की मेरी समझ है:

  1. SELinux को आपको फ़ाइल ऑब्जेक्ट तक पहुँचने की अनुमति देनी चाहिए।
  2. फ़ाइल के एसीएल (जैसे, अगर setfacl, getfaclएक एसीएल माउंट के लिए) स्पष्ट रूप से अनुमति देता है / वस्तु का उपयोग करने से इनकार करते हैं, तो आगे नहीं संसाधन की आवश्यकता है।
  3. अन्यथा, यह फ़ाइल की अनुमतियों (rwxrwxrwx DAC मॉडल) पर निर्भर है।

क्या मैं कुछ भूल रहा हूँ? क्या ऐसी परिस्थितियां हैं जहां यह मामला नहीं है?


2
मुझे लगता है कि आप सही हैं। क्या आप उस समस्या को पोस्ट कर सकते हैं जो आप कर रहे हैं?
केविन एम।

मैं विकृत प्रश्न के लिए क्षमा चाहता हूँ। मुझे ऐसा लगता है, जब यह बात आती है, तो मैं "परीक्षण और त्रुटि" मोड में जाता हूं। मैं आत्मविश्वास से इसे समझने की कोशिश कर रहा हूं और उम्मीद कर रहा था कि कोई भी स्टैक के प्रत्येक भाग द्वारा निभाई गई भूमिकाओं की एक स्पष्ट तस्वीर साझा कर सकता है।
बेलमिन फर्नांडीज

प्रश्न को संपादित करने के लिए स्पष्ट करें कि मैं उत्तर में क्या देख रहा हूँ।
बेलमिन फर्नांडीज

जवाबों:


19

जब कोई प्रक्रिया किसी फ़ाइल में एक ऑपरेशन करती है, तो लिनक्स कर्नेल निम्नलिखित क्रम में जाँच करता है:

  1. विवेकाधीन अभिगम नियंत्रण (DAC) या उपयोगकर्ता निर्धारित अभिगम नियंत्रण। इसमें क्लासिक UNIX शैली अनुमति जांच और POSIX एक्सेस कंट्रोल लिस्ट (ACL) दोनों शामिल हैं । शास्त्रीय UNIX जाँचें वर्तमान प्रक्रिया की तुलना करती हैं UID और GID बनाम UID और GID फ़ाइल की पहुँच होती है जिसके संबंध में मोड सेट किए गए हैं (पढ़ें / लिखें / eXecute)। अभिगम नियंत्रण के बारे में अधिक विकल्पों की अनुमति देने के लिए एक्सेस कंट्रोल लिस्ट क्लासिक UNIX चेक का विस्तार करती है।

  2. अनिवार्य अभिगम नियंत्रण (मैक) या नीति आधारित अभिगम नियंत्रण। यह लिनक्स सुरक्षा मॉड्यूल (एलएसएम) का उपयोग करके लागू किया जाता है जो अब वास्तविक मॉड्यूल नहीं हैं (वे हुआ करते थे लेकिन इसे गिरा दिया गया था)। वे शास्त्रीय UNIX शैली सुरक्षा जांचों की तुलना में अन्य मॉडलों के आधार पर अतिरिक्त चेक सक्षम करते हैं। वे सभी मॉडल इस बात पर आधारित हैं कि किस संदर्भ में किस प्रक्रिया के लिए किस प्रकार के विकल्प की अनुमति है।

यहां ऑनलाइन लिनक्स क्रॉस संदर्भ के लिंक के साथ मेरे उत्तर को वापस करने के लिए इनकोड एक्सेस (जिसमें फ़ाइल एक्सेस शामिल है) के लिए एक उदाहरण है । function_nameदिए गए " (नाम: लाइन)" लिनक्स कर्नेल के 3.14 संस्करण के लिए हैं।

समारोह inode_permission( एफएस / namei.c: 449 ) फाइल सिस्टम पर ही पढ़ने की अनुमति के लिए पहले चेक ( sb_permissionमें एफएस / namei.c: 425 ), तो कॉल __inode_permission( एफएस / namei.c: 394 ) पढ़ने / लिखने के लिए जाँच करने के लिए / निष्पादित अनुमतियाँ और POSIX ACL इनकोड परdo_inode_permission ( fs / namei.c: 368 ) (DAC) और फिर security_inode_permission( सुरक्षा / सुरक्षा . c : 550 ) में LSM- संबंधित अनुमतियाँ (MAC )।

इस आदेश का केवल एक अपवाद था (DAC तब MAC): यह mmap जाँच के लिए था। लेकिन यह लिनक्स कर्नेल ( प्रासंगिक प्रतिबद्ध ) के 3.15 संस्करण में तय किया गया है ।


विहित स्रोतों के साथ उत्कृष्ट रूप से विस्तृत उत्तर। धन्यवाद!
बेलमिन फर्नांडीज

15

DAC== Discretionary Access Control, http://en.wikipedia.org/wiki/Discretionary_access_control
MAC == Mandatory Access Control, http://en.wikipedia.org/wiki/Mandatory_access_control
ACL == Access Control List, http://en.wikipedia.org/wiki/Access_control_list

ACLनिर्दिष्ट नियंत्रण नियंत्रण की विधि द्वारा लागू किया जाना है, DACया MACMACस्पष्ट, केंद्रीय रूप से नियंत्रित है, और उपयोगकर्ताओं को किसी वस्तु को अधिकार देने की अनुमति नहीं देता है जब तक कि उनके पास ऐसा करने की स्पष्ट अनुमति नहीं है, जबकि DACउपयोगकर्ताओं को अन्य उपयोगकर्ताओं को उन वस्तुओं तक पहुंच प्रदान करने की अनुमति देता है जो वे उपयोग कर सकते हैं।

MAC ACLs हमेशा एक अनुरोध पर पहले लागू किया जाएगा, और यदि पहुंच से इनकार किया जाता है तो प्रसंस्करण बंद हो जाता है। यदि एक्सेस की अनुमति है, तो DAC ACLएस को लागू किया जाता है, और यदि एक्सेस से इनकार किया जाता है तो प्रसंस्करण बंद हो जाता है। केवल तभी जब एक्सेस दोनों द्वारा प्रदान किया जाता है MACऔर DAC ACLउपयोगकर्ता अपने द्वारा अनुरोधित वस्तु तक पहुँच प्राप्त कर सकता है।

SELinuxMACलिनक्स के लिए एक कार्यान्वयन है (अन्य हैं), जबकि पारंपरिक rwxफ़ाइल अनुमतियाँ, मालिक उपयोगकर्ता और समूह के साथ संयुक्त रूप से पूर्ण होती हैं DAC ACLSELinux'नीति' अनिवार्य रूप से है MAC ACL


1
ACL (जैसे setfacl) फ़ाइल कहाँ आती है?
बेलमिन फर्नांडीज

1
setaclफ़ाइलों और निर्देशिकाओं के लिए ACLएक से अधिक उपयोगकर्ता या समूह को असाइन करने की अनुमति देने के लिए मूल फाइल सिस्टम को विस्तारित करता है ACL। यह भी एक DACकार्यान्वयन है, और इसलिए SELinux MAC ACLs के बाद लागू किया जाता है ।
माइक इंशाल

धन्यवाद माइक। एक और सवाल: जहां तक ​​मैं अपने परीक्षण के माध्यम से बता सकता हूं, स्पष्ट रूप से सेट setfaclACLs पारंपरिक अनुमतियों को ओवरराइड करता है। क्या यह हर मामले में सच है?
बेलमिन फर्नांडीज

जहाँ तक मुझे पता है, हाँ, setacl/ setfacl ACLs ACLफ़ाइल में पारंपरिक 'सरल' को ओवरराइड करेगा ।
माइक इंशाल

1
माइक, आपके नोट के बारे setfaclमें जवाब है।
पावेल Paमेरदा

5

क्षमा करने के लिए क्षमा करें, लेकिन मुझे लगता है कि यहाँ कुछ उत्तर गलत हो सकते हैं। सीधे फेडोरा से http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html :

डीएसी नियमों के बाद SELinux नीति नियमों की जाँच की जाती है। यदि डीएसी नियम पहले पहुंच से इनकार करते हैं, तो SELinux नीति नियमों का उपयोग नहीं किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.