एपर्मर क्या है?


93

मैं apparmor के बारे में बहुत सारी बातें सुनता हूं, मैं निम्नलिखित जानना चाहता हूं:

  • एपर्मर क्या है?
  • एप्रोमर कैसे काम करता है?

जवाबों:


92

यह क्या है

अपरमोर एक अनिवार्य प्रवेश नियंत्रण (या मैक) प्रणाली है। यह प्रोग्राम को कुछ संसाधनों तक सीमित रखने के लिए एलएसएम कर्नेल संवर्द्धन का उपयोग करता है। सिस्टम शुरू होने पर AppArmor कर्नेल में लोड प्रोफाइल के साथ ऐसा करता है। Apparmor में दो प्रकार के प्रोफ़ाइल मोड, प्रवर्तन और शिकायत हैं। प्रवर्तन मोड में प्रोफाइल उस प्रोफाइल के नियमों को लागू करते हैं और उल्लंघन के प्रयासों की रिपोर्ट करते हैं syslogया auditd। शिकायत मोड में प्रोफाइल किसी भी प्रोफाइल नियम को लागू नहीं करती है, बस उल्लंघन के प्रयासों को लॉग करें।

Ubuntu में Apparmor डिफ़ॉल्ट रूप से स्थापित है। यह उन फ़ाइलों और अनुमतियों को निर्धारित करने के लिए प्रोफाइल तक सीमित करता है, जिनके लिए एक प्रोग्राम की आवश्यकता होती है। कुछ एप्लिकेशन अपने स्वयं के गुणों के साथ आएंगे और अधिक apparmor-profilesपैकेज में पाए जा सकते हैं ।

आप apparmor-profilesचलाकर स्थापित कर सकते हैं sudo apt-get install apparmor-profiles

मुझे उबंटू मंचों पर अप्पमोर का एक अच्छा उदाहरण मिला, जिसे मैंने इस पोस्ट के लिए फिर से लिखा था।

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

यह काम किस प्रकार करता है

apparmor-utilsपैकेज AppArmor विन्यस्त करने के लिए कमांड लाइन उपकरण शामिल हैं। इसका उपयोग करके आप अप्पर्मर के निष्पादन मोड को बदल सकते हैं, प्रोफ़ाइल की स्थिति ज्ञात कर सकते हैं, नई प्रोफ़ाइल बना सकते हैं, आदि।

ये सबसे सामान्य आदेश हैं:

नोट: प्रोफाइल में संग्रहीत हैं/etc/apparmor.d/

  • आप Apparmor की स्थिति की जाँच कर सकते हैं sudo apparmor_status। आपको सभी प्रोफाइल की सूची * भरी हुई, लागू मोड में सभी प्रोफाइल, शिकायत मोड में सभी प्रोफाइल, एनफोर्स / शिकायत में क्या प्रक्रियाएं परिभाषित हैं, आदि।
  • आपके द्वारा उपयोग किए जाने वाले शिकायत मोड में एक प्रोफ़ाइल डालने के लिए sudo aa-complain /path/to/bin, जहां /path/to/binप्रोग्राम binफ़ोल्डर है। उदाहरण के लिए, रनिंग: sudo aa-complain /usr/bin/firefoxफ़ायरफ़ॉक्स को शिकायत मोड में डाल देगा।
  • आप sudo aa-enforce /path/to/binएक प्रोग्राम प्रोफाइल को लागू करने के लिए उपयोग करते हैं ।
  • आप लोड कर सकते हैं सब / शिकायत में प्रोफाइल के साथ मोड को लागू sudo aa-complain /etc/apparmor.d/*और sudo aa-enforce.d/*क्रमशः।

एक प्रोफाइल को कर्नेल में लोड करने के लिए जिसका आप उपयोग करेंगे apparmor_parser। आप -rपैरामीटर का उपयोग करके प्रोफाइल फिर से लोड कर सकते हैं ।

  • एक प्रोफ़ाइल उपयोग को लोड करने के लिए: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -aजो प्रभावी रूप profile.nameसे एपर्मोर के पार्सर में सामग्री को प्रिंट करता है।
  • किसी प्रोफाइल को पुनः लोड करने के लिए आप -rपैरामीटर का उपयोग करते हैं, जैसे:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
  • Apparmor के सभी प्रोफाइल को पुनः लोड करने के लिए: sudo service apparmor reload

किसी प्रोफ़ाइल को अक्षम करने के लिए आप इसे इस तरह से उपयोग करने के लिए लिंक/etc/apparmor.d/disable/ करते lnहैं: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/फिर चलाएँ sudo apparmor_parser -R /etc/apparmor.d/profile.name:।

नोट: भ्रमित नapparmor_parser -rके साथapparmor_parser -R वे एक ही चीज नहीं हैं!

  • किसी प्रोफ़ाइल को फिर से सक्षम करने के लिए, उस पर प्रतीकात्मक लिंक को हटा दें और /etc/apparmor.d/disable/फिर -aपैरामीटर का उपयोग करके इसे लोड करें ।sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • आप Apparmor को निष्क्रिय कर सकते हैं sudo service apparmor stopऔर कर्नेल मॉड्यूल का उपयोग करके हटा सकते हैंsudo update-rc.d -f apparmor defaults
  • के साथ sudo service apparmor startकर्नेल मॉड्यूल शुरू करें और साथ लोड करेंsudo update-rc.d apparmor defaults

प्रोफाइल

प्रोफाइल को /etc/apparmor.d/'' के साथ '/' की जगह, निष्पादन योग्य प्रोफाइल के लिए पूर्ण पथ के नाम पर संग्रहीत किया जाता है । उदाहरण के लिए /etc/apparmor.d/bin.pingमें प्रोफाइल pingहै /bin

प्रोफाइल में उपयोग की जाने वाली दो मुख्य प्रविष्टियाँ हैं:

  1. पथ प्रविष्टियां निर्धारित करती हैं कि कोई एप्लिकेशन किन फ़ाइलों तक पहुंच सकती है।

  2. क्षमता प्रविष्टियाँ निर्धारित करती हैं कि एक प्रक्रिया किन विशेषाधिकारों का उपयोग कर सकती है।

एक उदाहरण के रूप pingमें स्थित प्रोफाइल को etc/apparmor.d/bin.pingदेखें।

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global>globalनिर्देशिका में फ़ाइल शामिल है tunables, यह कई अनुप्रयोगों से संबंधित बयानों को एक सामान्य फ़ाइल में रखने की अनुमति देता है।

/bin/ping flags=(complain)निर्धारित प्रोग्राम के लिए पथ सेट करता है और शिकायत करने के लिए मोड सेट करता है।

capability net_rawCAP_NET_RAW Posix.1eक्षमता के लिए आवेदन का उपयोग करने की अनुमति देता है।

/bin/ping mixr आवेदन को पढ़ने और फ़ाइल तक पहुंच निष्पादित करने की अनुमति देता है।

/etc/modules.conf r,के rलिए आवेदन पढ़ा विशेषाधिकार देता है/etc/modules.conf

नोट: एक प्रोफ़ाइल बनाने / संपादित करने के बाद, आपको प्रभावी होने के लिए प्रोफ़ाइल को फिर से लोड करना होगा।

यहां उन अनुमतियों की सूची दी गई है जिनका आप उपयोग कर सकते हैं:

  • r - पढ़ो
  • w - लिखना
  • ux - अप्रतिबंधित निष्पादन
  • Ux - अप्रतिबंधित निष्पादन - पर्यावरण को साफ़ करें
  • px - असतत प्रोफ़ाइल निष्पादित
  • Px - असतत प्रोफ़ाइल निष्पादन - पर्यावरण को साफ़ करें
  • ix - इन्हेरिट निष्पादित
  • m - कॉल के PROT_EXECसाथ अनुमति देंmmap(2)
  • l - संपर्क

सूत्रों का कहना है


तो यह एक उपयोगकर्ता की तरह काम करने वाले प्रोग्राम की तरह है, और सिस्टम की अधिकांश फाइलों को संशोधित करने की अनुमति नहीं है?
इज़्काता

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

आह, इसलिए प्रोफाइल कार्यक्रमों के लिए उपयोगकर्ता समूह की तरह हैं;)
इजाका

); हाँ ऐसे ही एक बहुत
सेठ

क्या आपको लगता है, एपर्मर का इस्तेमाल हर इंटरनेट कनेक्शन को ब्लॉक करने के लिए किया जा सकता है और कहा जा सकता है कि कौन इसे एक्सेस करना चाह रहा है? और उस लॉग के आधार पर हम प्रत्येक एप्लिकेशन के लिए अनुमतियां बनाते हैं? विचार यह है कि इसे विंडो $ पर जोनलर्म की तरह काम किया जाए, और तेंदुए की तरह पुराने "फायरवॉल्स प्रति एप्लिकेशन" पर तेंदुए की तरह फुर्तीला और प्रोग्रामगार्ड (ये अब मुझे लगता है कि अनिवार्य नहीं हैं) लगता है, और एक नया भी है जिसे ड्यूने कहा जाता है और इसका उपयोग करता है एक कर्नेल मॉड्यूल काम करने के लिए।
कुंभ राशि

6

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

AppArmor लिनक्स पर कुछ अन्य मैक सिस्टमों से अलग है जिसमें यह पथ-आधारित है, प्रवर्तन और शिकायत मोड प्रोफाइल के मिश्रण की अनुमति देता है, विकास को आसान बनाने के लिए फ़ाइलों को शामिल करता है और अन्य लोकप्रिय मैक सिस्टमों की तुलना में प्रवेश के लिए बहुत कम बाधा है।

AppArmor एक स्थापित तकनीक है जिसे पहले Immunix में देखा गया था, और बाद में इसे उबंटू, नोवेल / एसयूएसई, और ट्रिव्रा में एकीकृत किया गया। मुख्य AppArmor कार्यक्षमता मेनलाइन लिनक्स कर्नेल में 2.6.36 के बाद से है; AppArmor, Ubuntu और अन्य डेवलपर्स द्वारा मेनलाइन कर्नेल में अतिरिक्त AppArmor कार्यक्षमता को मर्ज करने के लिए काम जारी है।

मुझे आपके लिए कुछ और उपयोगी लिंक मिले : Wiki.Ubuntu.com Ubuntuforums.org

उबंटू 12.04 और उबुन्टु 12.10 के लिए अप्पमोर गाइड

आशा है कि आपकी मदद करेंगे।


3

यहाँ Apparmor विकि से एक उद्धरण है :

AppArmor एक प्रभावी और उपयोग में आसान लिनक्स अनुप्रयोग सुरक्षा प्रणाली है। AppArmor लगातार ऑपरेटिंग सिस्टम और अनुप्रयोगों को बाहरी या आंतरिक खतरों, यहां तक ​​कि शून्य-दिन के हमलों से बचाता है, अच्छे व्यवहार को लागू करने और यहां तक ​​कि अज्ञात एप्लिकेशन की खामियों को शोषण करने से रोकता है। AppArmor सुरक्षा नीतियां पूरी तरह से परिभाषित करती हैं कि कौन से सिस्टम संसाधन व्यक्तिगत एप्लिकेशन एक्सेस कर सकते हैं, और किन विशेषाधिकारों के साथ। कई डिफ़ॉल्ट नीतियां AppArmor के साथ शामिल हैं, और उन्नत स्थैतिक विश्लेषण और सीखने-आधारित उपकरणों के संयोजन का उपयोग करके, बहुत जटिल अनुप्रयोगों के लिए AppArmor नीतियों को कुछ ही घंटों में सफलतापूर्वक तैनात किया जा सकता है।

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