एक बात का ध्यान रखें जब अपने विभाजन बाहर रखना विफलता मोड हैं। आमतौर पर वह प्रश्न फॉर्म का होता है: "जब विभाजन x भरता है तो क्या होता है ?" सबसे प्यारे voretaq7 ने /
समस्याओं का निदान करने के लिए किसी भी संख्या में मुश्किल के कारण स्थिति को पूर्ण रूप से लाया । आइए कुछ और विशिष्ट स्थितियों को देखें।
यदि आपका विभाजन भंडारण लॉग से भरा है तो क्या होगा? आप ऑडिटिंग / रिपोर्टिंग डेटा खो देते हैं और कभी-कभी हमलावरों द्वारा उनकी गतिविधि को छिपाने के लिए उपयोग किया जाता है। कुछ मामलों में आपका सिस्टम नए उपयोगकर्ताओं को प्रमाणित नहीं करेगा यदि यह उनके लॉगिन ईवेंट को रिकॉर्ड नहीं कर सकता है।
/var
पूर्ण होने पर RPM आधारित प्रणाली पर क्या होता है? पैकेज प्रबंधक संकुल को स्थापित या अद्यतन नहीं करेगा और, आपके विन्यास के आधार पर, चुपचाप विफल हो सकता है।
विभाजन को भरना आसान है, खासकर जब कोई उपयोगकर्ता इसे लिखने में सक्षम हो। मस्ती के लिए, इस आदेश को चलाने के लिए और देखते हैं कि कैसे जल्दी से आप एक बहुत बड़ी फ़ाइल बना सकते हैं: cat /dev/zero > zerofile
।
यह विभाजन को भरने से भी आगे बढ़ जाता है, जब आप अलग-अलग आरोह बिंदुओं पर स्थान बनाते हैं तो आप उनके माउंट विकल्पों को भी अनुकूलित कर सकते हैं।
जब /dev/
घुड़सवार नहीं होता है तो क्या होता है noexec
? चूंकि /dev
आमतौर पर ओएस द्वारा बनाए रखा जाता है और इसमें केवल वे उपकरण होते हैं जिन्हें अक्सर (और कभी-कभी अभी भी) दुर्भावनापूर्ण कार्यक्रमों को छिपाने के लिए उपयोग किया जाता है। छोड़ने से noexec
आप वहां संग्रहीत बायनेरिज़ लॉन्च कर सकते हैं।
इन सभी कारणों, और अधिक के लिए, कई सख्त गाइड विभाजन के लिए पहले चरणों में से एक के रूप में चर्चा करेंगे। वास्तव में, आप कैसे डिस्क विभाजन के लिए एक नया सर्वर का निर्माण कर रहे है, तो बहुत लगभग ठीक है पहले बात है पर फैसला करने के लिए, और अक्सर सबसे बाद में परिवर्तन करने के लिए मुश्किल। एक समूह मौजूद है जिसे सेंटर फॉर इंटरनेट सिक्योरिटी कहा जाता है जो कॉन्फ़िगरेशन गाइड को पढ़ने के लिए आसान के gobs का उत्पादन करता है। आप संभवतः अपने विशिष्ट ऑपरेटिंग सिस्टम के लिए एक गाइड पा सकते हैं और वे कहे जाने वाले किसी भी विवरण को देख सकते हैं।
यदि हम RedHat Enterprise Linux 6 को देखते हैं, तो अनुशंसित विभाजन योजना यह है:
# Mount point Mount options
/tmp nodev,nosuid,noexec
/var
/var/tmp bind (/tmp)
/var/log
/var/log/audit
/home nodev
/dev/shm nodev,nosuid,noexec
इन सभी परिवर्तनों के पीछे सिद्धांत यह है कि उन्हें एक-दूसरे को प्रभावित करने से रोका जाए और / या एक विशिष्ट विभाजन पर जो किया जा सकता है उसे सीमित किया जाए। /tmp
उदाहरण के लिए विकल्प लें । जो कहता है कि कोई भी डिवाइस नोड्स वहां नहीं बनाया जा सकता है, वहां से कोई भी प्रोग्राम निष्पादित नहीं किया जा सकता है, और सेट-यूआईडी बिट को कुछ भी सेट नहीं किया जा सकता है। अपनी बहुत ही प्रकृति के अनुसार, /tmp
लगभग हमेशा दुनिया के लिए उपयुक्त है और अक्सर एक विशेष प्रकार की फाइल सिस्टम होती है जो केवल स्मृति में मौजूद होती है। इसका मतलब है कि एक हमलावर दुर्भावनापूर्ण कोड को गिराने और निष्पादित करने के लिए एक आसान मंचन के रूप में उपयोग कर सकता है, फिर दुर्घटनाग्रस्त (या बस रीबूटिंग) सिस्टम सभी सबूतों को साफ कर देगा। चूंकि कार्यक्षमता में /tmp
किसी भी कार्यक्षमता की आवश्यकता नहीं होती है, हम आसानी से सुविधाओं को अक्षम कर सकते हैं और उस स्थिति को रोक सकते हैं।
लॉग संग्रहण स्थान, /var/log
और /var/log/audit
उन्हें संसाधन थकावट से बफ़र करने में मदद करने के लिए खुदी हुई हैं। इसके अतिरिक्त, ऑडिट कुछ विशेष चीजें (आमतौर पर उच्च सुरक्षा वातावरण में) कर सकता है, जब उसका लॉग स्टोरेज भरना शुरू हो जाता है। इसे अपने विभाजन पर रखकर यह संसाधन पहचान बेहतर प्रदर्शन करता है।
अधिक क्रियात्मक होने के लिए, और उद्धरण mount(8)
, यह ठीक वही है जो उपरोक्त प्रयुक्त विकल्प हैं:
noexec माउंटेड फ़ाइल सिस्टम पर किसी भी बायनेरिज़ के प्रत्यक्ष निष्पादन की अनुमति न दें। (हाल ही में जब तक /lib/ld*.so / mnt / बाइनरी जैसी कमांड का उपयोग करके बायनेरिज़ को चलाना संभव था। लिनक्स 2.4.25 / 2.6.0 के बाद से यह चाल विफल रहती है।)
नोडv फ़ाइल सिस्टम पर चरित्र की व्याख्या या विशेष उपकरणों को ब्लॉक न करें।
nosuid सेट-उपयोगकर्ता-पहचानकर्ता या सेट-समूह-पहचानकर्ता बिट्स को प्रभावी होने की अनुमति न दें। (यह सुरक्षित लगता है, लेकिन वास्तव में असुरक्षित है यदि आपके पास suidperl (1) स्थापित है।)
सुरक्षा दृष्टिकोण से ये जानने के लिए बहुत अच्छे विकल्प हैं क्योंकि वे आपको फाइल सिस्टम पर सुरक्षा प्रदान करने की अनुमति देंगे। अत्यधिक सुरक्षित वातावरण में आप noexec
विकल्प भी जोड़ सकते हैं /home
। यह आपके मानक उपयोगकर्ता के लिए डेटा को संसाधित करने के लिए शेल स्क्रिप्ट लिखने के लिए कठिन बना देगा, लॉग फ़ाइलों का विश्लेषण करने के लिए कहेंगे, लेकिन यह उन्हें एक बाइनरी निष्पादित करने से भी रोकेगा जो विशेषाधिकारों को ऊंचा करेगा।
इसके अलावा, ध्यान रखें कि रूट उपयोगकर्ता की डिफ़ॉल्ट होम निर्देशिका है /root
। इस का अर्थ है उस में हो जाएगा /
फाइल सिस्टम, नहीं में /home
।
सटीक रूप से आप प्रत्येक विभाजन को कितना देते हैं, सिस्टम वर्कलोड के आधार पर बहुत भिन्न हो सकता है। एक विशिष्ट सर्वर जिसे मैंने प्रबंधित किया है, को शायद ही कभी व्यक्ति के संपर्क की आवश्यकता होगी और जैसे कि /home
विभाजन को बहुत बड़ा होने की आवश्यकता नहीं है। यह उसी पर लागू होता है /var
क्योंकि यह एपर्मेरल डेटा को संग्रहीत करता है जो अक्सर बनाया और हटा दिया जाता है। हालांकि, एक वेब सर्वर आमतौर पर /var/www
अपने खेल के मैदान के रूप में उपयोग करता है , जिसका अर्थ है कि या तो एक अलग विभाजन पर होना चाहिए या /var/
बड़े होने की आवश्यकता है।
अतीत में मैंने आधारभूत के रूप में निम्नलिखित की सिफारिश की है।
# Mount Point Min Size (MB) Max Size (MB)
/ 4000 8000
/home 1000 4000
/tmp 1000 2000
/var 2000 4000
swap 1000 2000
/var/log/audit 250
इन्हें सिस्टम के उद्देश्य के अनुसार समीक्षा और समायोजित करने की आवश्यकता है, और आपका पर्यावरण कैसे संचालित होता है। मैं LVM का उपयोग करने और संपूर्ण डिस्क को आवंटित करने के खिलाफ भी सिफारिश करूंगा। यह आपको आसानी से बढ़ने, या विभाजन करने की अनुमति देगा, अगर ऐसी चीजों की आवश्यकता होती है।