यदि हम सेलिनक्स को निष्क्रिय कर देते हैं तो क्या गलत हो सकता है [बंद]


9

हमें दूसरी टीम के उपयोग किए गए सर्वरों का एक समूह विरासत में मिला है। उनमें से कुछ पर SELinux सक्षम है, कुछ नहीं। SELinux के कारण, हमें पासवर्ड रहित ssh, हमारे वेबसर्वर आदि को सेट करने में समस्या हो रही है, हमने इस स्टैकएक्सचेंज साइट पर एक काम ढूँढा , जिसे चलाना है:

restorecon -R -v ~/.ssh

हालाँकि, जब से हम क्या करते हैं, इसके लिए हमें SELinux को चलाने की आवश्यकता नहीं है, तो यह याद रखना आसान हो सकता है कि हमारे लिए यह याद रखना कि सभी को उपरोक्त cmd को चलाने के लिए जो dir की अनुमति की आवश्यकता है।

क्या हम SELinux को w / o से मोड़कर सड़क के किसी भी मोड़ को बंद कर सकते हैं या क्या सर्वर को री-इमेज करना बेहतर है? एक बात ध्यान दें; हमारा आईटी समूह वास्तव में व्यस्त है इसलिए एक सर्वर को उनकी सूची में फिर से इमेजिंग करने के लिए उच्च नहीं है जब तक कि यह बिल्कुल आवश्यक न हो (एक बहुत अच्छा व्यापार मामला है) ... या कोई व्यक्ति स्कॉच या व्हिस्की की बोतल के साथ अपने मालिक को रिश्वत देता है।

अद्यतन: सभी के सुझाव और सलाह के लिए धन्यवाद। ये सर्वर सभी आंतरिक देव सर्वर के रूप में उपयोग किए जा रहे हैं। इन मशीनों तक कोई बाहरी पहुँच नहीं है, इसलिए सुरक्षा हमारे लिए उच्च चिंता का विषय नहीं है। हमारे वर्तमान सर्वर जिनका हम उपयोग कर रहे हैं (मेरे सर्वोत्तम ज्ञान के लिए) SELinux सक्षम नहीं है। उनमें से कुछ जो मेरे प्रबंधक ने अभी हासिल किए हैं और वे हैं जिन्हें हम अपने क्लस्टर में सब कुछ अक्षम करने के लिए देख रहे हैं।


1
मैंने Android.se पर एक समान प्रश्न का उत्तर दिया: यह तथ्य कितना खतरनाक है कि SELinux "Permissive" मोड में है? मुझे किस चीज़ से सावधान रहना चाहिए? । "अनुमेय" मोड और SELinux को अक्षम करने के बीच मुख्य अंतर यह है कि आपको AVC लॉग संदेश अब नहीं मिलेंगे और SELinux फ़ाइलों को अप-टू-डेट नहीं रखेगा, इसलिए आपको इसे फिर से सक्षम करने से पहले अपनी फ़ाइलों को पुनः वितरित करना होगा।
व्हाइटविंटरवुल्फ

"क्या गलत होने की सम्भावना है?"
scai

3
@ संसाई वास्तव में एक अच्छा प्रश्न है। जैसा कि सातो कैटसुरा बताते हैं, SELinux का प्रभावी ढंग से उपयोग करना कठिन है। सुरक्षा की गलत भावना सुरक्षा के लिए हानिकारक है।
12

जवाबों:


14

SELinux ऑपरेटिंग सिस्टम की एक सुरक्षा विशेषता है। यह सर्वर के कुछ हिस्सों को दूसरे हिस्सों से बचाने में मदद करने के लिए बनाया गया है।

उदाहरण के लिए, यदि आप एक वेब सर्वर चलाते हैं और कुछ "असुरक्षित" कोड हैं, जो एक हमलावर को मनमाना आदेशों को चलाने की अनुमति देता है, तो SELinux इसे कम करने में मदद कर सकता है, आपके वेब सर्वर को फाइलों तक पहुंचने से रोकने के लिए इसे देखने की अनुमति नहीं है।

अब आप SELinux को निष्क्रिय कर सकते हैं और इसे कुछ भी नहीं तोड़ना चाहिए। सर्वर सामान्य की तरह काम करता रहेगा।

लेकिन आपने सुरक्षा सुविधाओं में से एक को अक्षम कर दिया होगा।


10
ठीक से कॉन्फ़िगर किए जाने पर ही SELinux अच्छा काम करता है। हालांकि, SELinux इतना जटिल है कि किसी के पास इसे ठीक से कॉन्फ़िगर करने के लिए समय और / या ज्ञान नहीं है, और इस प्रकार यह या तो अक्षम हो जाता है, या व्यवस्थापक के लिए रियर में एक स्थायी दर्द के रूप में। फिर भी आप लोग एक सुरक्षा सुविधा के रूप में इसमें विश्वास करते रहते हैं।
सातु कटुरा

3
मैं सहमत हूं कि सेलाइनक्स प्रशासन करने के लिए एक पीआईटीए है, फिर भी यह अभी भी उचित है और इसे सुरक्षा सुविधा कहने के लिए पूरी तरह से सटीक है। जो चाहते हैं उन या के लिए की जरूरत है दुनिया भर में स्क्रिप्ट kiddies के लिए एक बड़े, हाई-प्रोफाइल वेब साइट के लिए एक आकर्षक लक्ष्य उर्फ के लिए जैसे sysadmins - सीखने और (मुझे नहीं) यह प्रशासन में समय निवेश करने के लिए, यह अमूल्य है।
कैस

2
@SatoKatsura केवल इसलिए कि कॉन्फ़िगर करना मुश्किल है या समझना मुश्किल है, सुरक्षा तंत्र को अक्षम करने का औचित्य नहीं है। बशर्ते कि इस सुरक्षा तंत्र की वास्तव में जरूरत हो, जिसे तय करना हमेशा आसान न हो।
scai

@scai मैंने यह नहीं कहा कि इसे (या नहीं) अक्षम किया जाना चाहिए। मैं जो कह रहा हूं वह SELinux का अंतर्निहित मॉडल त्रुटिपूर्ण है। कुछ लोगों का तर्क है कि अक्षम किए जा सकने वाले सभी सुरक्षा तंत्र त्रुटिपूर्ण हैं।
सातु कटुरा

@SatoKatsura हाँ, इसीलिए पासवर्ड रखना पूरी तरह से और पूरी तरह से व्यर्थ है क्योंकि उन्हें निष्क्रिय किया जा सकता है (जैसे pam या nss के साथ या सिर्फ एक खाली पासवर्ड होने से)। BTW, मैंने कभी दावा नहीं किया कि आपने कहा था कि सेलिनक्स को निष्क्रिय कर दिया जाना चाहिए। मैं सिर्फ आपके दावे पर विवाद कर रहा था कि यह वास्तविक सुरक्षा विशेषता नहीं है।
कैस

8

SELinux के अलग-अलग विचार हैं। कई मामलों में, कुछ एप्लिकेशन SELinux के साथ अच्छा नहीं खेलते हैं, ताकि यह निर्णय मूट (Oracle एक उदाहरण है)।
आमतौर पर, SELinux आपके सिस्टम को खराब करने के इच्छुक एक बुरे आदमी के रास्ते में एक और बाधा डालने के लिए एक सुरक्षा तंत्र है।

बड़ी कंपनियों में सिस्टम एडमिनिस्ट्रेटर के रूप में मेरी पिछली भूमिकाओं में ... मैंने आमतौर पर SELinux को निष्क्रिय कर दिया है। मेरे पास उपयोगकर्ताओं, डेवलपर्स और प्रबंधकों द्वारा उपयोग की जा रही सभी प्रणालियों पर सभी SELinux त्रुटियों को ट्रैक करने का समय नहीं था।

चीजों को अक्षम करने से पहले, आप सिस्टम पर मौजूद फाइलों को वापस लाकर शुरू करना चाह सकते हैं जो उन्हें होना चाहिए। सबसे आसान तरीका जो मुझे मिला है वह है कमांड दर्ज करना:

 # /sbin/fixfiles onboot

या

 # touch /.autorelabel

फिर, सिस्टम में गलत SELinux लेबल को सत्यापित करने और रीसेट करने में सिस्टम के लिए लगभग उतनी ही समय लगेगा, रिबूट करें और प्रतीक्षा करें। उसके बाद आप ठीक हो सकते हैं क्योंकि यह गैर-अनुरूपता वाले SELinux लेबल को ठीक करता है और ठीक करता है जो आपके सर्वर के प्रयास प्रशासन से पहले संशोधित किया गया हो सकता है।

हालाँकि, यदि ऐसा नहीं होता है, तो सिस्टम को सेल्फिंग मोड में सेलेक्स न होने से सिस्टम को कोई नुकसान नहीं होगा। यह सुरक्षा की एक अतिरिक्त परत है।


3
मूट, मूक नहीं। लेकिन पूरी तरह से सही; सभी प्रणालियों को सेलिनक्स की आवश्यकता नहीं होती है।
phyrfox

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

धन्यवाद! /sbin/fixfiles onbootCentOS पर मेरे लिए काम किया, ऐसा नहीं है touch /.autorelabel। रनिंग sealert -a /var/log/audit/audit.logअब 0 अलर्ट दिखाता है। @mdpc उन दो आदेशों के बीच क्या अंतर है?
जोसेफ के।

5

सीधे शब्दों में कहें तो SELinux जैसे अनिवार्य एक्सेस कंट्रोल (MAC) मैकेनिज्म को डिसेबल करना एक अच्छा आइडिया नहीं है और अगर आप एक बुरा आदमी सफलतापूर्वक नाम-आधारित एक्सेस कंट्रोल को दरकिनार कर देते हैं, तो यह विवेकाधीन एक्सेस कंट्रोल (DAC) द्वारा लागू किया जा सकता है।

मेरे थे, मैं कुछ ऐसा करूंगा

semanage fcontext -a -t ssh_home_t ~/.ssh # Adding the policy
restorecon -R -v ~/.ssh # Applying the policy

अतिरिक्त लेबल से पुनरावर्ती रूप से सौंपे जाने के बारे में सुनिश्चित होना~/.ssh


1
यह स्टाइल "SELinux" है। लिनक्स एक परिचित नहीं है, और "एसई" भाग एक इनिशियलिज़्म है।
11

@ राइमोइड: यह वास्तव में एक अच्छा नोट है .. वास्तव में मैंने जो लिखा वह आकस्मिक था।
sjsam

2

आम तौर पर बोलते हुए आपको SELinux को अक्षम नहीं करना चाहिए। ऐसे उपकरण हैं जो आपको यह समझने में मदद कर सकते हैं कि क्या गलत हुआ। मेरा पसंदीदा सीलर्ट उदाहरण उपयोग है:

sealert -a /var/log/audit/audit.log

ओएफसी आप डिबग के लिए हमेशा SELinux को परमिशन मोड में सेट कर सकते हैं, लेकिन SELinux को डिसेबल या परमिशन पर रखना Red Red द्वारा गंभीर सुरक्षा दोष के रूप में सिखाया जाता है।

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