साझा होस्टिंग पर Drupal साइटों के लिए सबसे उपयुक्त उपयोगकर्ता और अनुमति स्तर क्या हैं?


14

हालाँकि Drupal साइट अनुमतियों और सुरक्षा के बारे में बहुत विस्तार से बताती है, लेकिन साझा होस्टिंग के लिए केवल अस्पष्ट / अस्पष्ट संदर्भ हैं । Drupal के दृष्टिकोण से, साझा होस्टिंग पर किसी साइट के लिए सबसे सुरक्षित सेट-अप (स्वामित्व और अनुमति स्तर) क्या है?

मुझे जिस तरह की जानकारी मिल रही है, उसके उदाहरण के रूप में, वर्डप्रेस निम्नलिखित साझा होस्टिंग सेटिंग्स का सुझाव देता है:

  • सभी फाइलें वास्तविक उपयोगकर्ता के खाते के स्वामित्व में होनी चाहिए, न कि httpd प्रक्रिया के लिए उपयोग किए गए उपयोगकर्ता खाते की।
  • समूह स्वामित्व अप्रासंगिक है, जब तक कि वेब-सर्वर प्रक्रिया अनुमतियों की जाँच के लिए विशिष्ट समूह आवश्यकताएँ नहीं हैं। यह आमतौर पर मामला नहीं है।
  • सभी निर्देशिकाएं 755 या 750 होनी चाहिए।
  • सभी फ़ाइलों को 644 या 640 होना चाहिए। अपवाद: wp-config.php सर्वर पर अन्य उपयोगकर्ताओं को इसे पढ़ने से रोकने के लिए 600 होना चाहिए।
  • कोई भी निर्देशिका कभी भी 777 नहीं दी जानी चाहिए, यहां तक ​​कि निर्देशिका भी अपलोड करें। चूंकि php प्रक्रिया फाइलों के मालिक के रूप में चल रही है, इसलिए इसे मालिकों की अनुमति मिल जाती है और यह 755 निर्देशिका तक भी लिख सकता है।

2
मुझे लगता है कि आप Wordpress में कुछ Hacking से मिल चुके हैं;) Drupal में ऐसी चीजों की संभावना कम है।
निकमासैक


अभी भी वास्तव में समझ में नहीं आता। यदि आपका नाम जॉनी है और आपके साझा होस्टिंग प्रदाता ने आपको उपयोगकर्ता नाम johnny99 दिया है, तो इसका मतलब है कि आपको अपलोड करने से पहले फ़ाइलों को "johnny99: www-data" में बदल देना चाहिए? या यह साझा होस्टिंग पर अप्रासंगिक है?
साइमन होरे

जवाबों:


9

होस्टिंग विकल्प

वेबसाइट साइट के लिए होस्टिंग विकल्प आम तौर पर निम्नलिखित में से एक है:

  • समर्पित सर्वर
  • वर्चुअल प्राइवेट सर्वर (VPS)
  • साझी मेजबानी

एक समर्पित सर्वर के साथ, केवल एक साइट को भौतिक कंप्यूटर पर होस्ट किया जाता है, और कॉन्फ़िगरेशन कंप्यूटर के समान ही सुरक्षित है।

VPS के साथ, आपका सॉफ़्टवेयर अन्य उपयोगकर्ताओं की वर्चुअल मशीन के समान भौतिक कंप्यूटर पर चलता है। हालांकि, यह कार्यात्मक रूप से एक समर्पित सर्वर के बराबर है। सबसे महत्वपूर्ण, एक वीपीएस में एक समर्पित सर्वर की गोपनीयता और सुरक्षा है।

साझा होस्टिंग के साथ, आपकी वेब साइट अन्य उपयोगकर्ताओं के साथ साझा की गई फ़ाइल सिस्टम पर रहती है। यह, दुर्भाग्य से, जब यह एक समर्पित सर्वर या वीपीएस पर चल रहा है, तो इसे कम सुरक्षित बनाता है। इस लेख के बाकी हिस्सों में साझा होस्टिंग वातावरण में एक WCMS की सुरक्षा पर चर्चा की गई है।

वातावरण

एक साझा होस्टिंग वातावरण को एक वेब सर्वर, एक फाइल सिस्टम, एक सेटिंग फाइल, एक डेटाबेस और कुछ उपयोगकर्ताओं से मिलकर माना जा सकता है।

निम्नलिखित उदाहरणों में, यह माना जाता है कि स्वामी खाता "टॉम" है, और यह कि सेटिंग फ़ाइल (डेटाबेस क्रेडेंशियल्स को पकड़े हुए) को "settings.php" नाम दिया गया है।

वेब सर्वर की प्रक्रिया उपयोगकर्ता खाते "टॉम" की उपयोगकर्ता अनुमतियों के साथ चल सकती है, या समूह "www" की समूह अनुमतियों के साथ कॉन्फ़िगरेशन पर निर्भर करती है।

इसके अलावा, एक मानक गन्नू / लिनक्स या यूनिक्स वातावरण ग्रहण किया जाता है, और यह माना जाता है कि पाठक यूनिक्स एक्सेस कंट्रोल सिस्टम को अलग रीड (आर), राइट (डब्ल्यू) और एक्ज़िक्यूट / एक्सेस डायरेक्टरी (एक्स) अनुमतियों के साथ तीन खंडों में विभाजित करता है। (उपयोगकर्ता, समूह, अन्य)।

इससे पहले कि मैं विशिष्ट सेटिंग्स पर चर्चा करूं, यह उन स्थितियों को सूचीबद्ध करने में मददगार हो सकता है जिन्हें हम संतुष्ट करना चाहते हैं:

  1. किसी वेब-साइट के चालू होने के लिए, वेब सर्वर को उन सभी फ़ाइलों तक पहुँच पढ़नी चाहिए जो साइट बनाती हैं, और सभी निर्देशिकाओं तक पहुँच को एक्सेस करती हैं जो साइट बनाती हैं।
  2. सुरक्षित संचालन के लिए, वेब सर्वर के पास किसी भी फाइल को लिखने की पहुंच नहीं होनी चाहिए ।
  3. सुरक्षित संचालन के लिए, एक दुष्ट उपयोगकर्ता द्वारा चलाए जा रहे एक वेब स्क्रिप्ट को किसी अन्य उपयोगकर्ता के स्वामित्व वाली फ़ाइलों तक नहीं पढ़ा जाना चाहिए ।
  4. सीएलआई का उपयोग करके मालिक को अपनी साइट पर काम करने के लिए, उपयोगकर्ता को अपनी खुद की फाइलों तक पहुंच को पढ़ना और लिखना होगा ।
  5. सीएलआई का उपयोग करके अन्य उपयोगकर्ताओं द्वारा फ़ाइलों को एक्सेस करने से बचाने के लिए, "अन्य" ब्लॉक में कोई अनुमतियाँ सेट नहीं होनी चाहिए ।

दुर्भाग्य से, एक साझा होस्ट पर, आपके पास केवल 5 में से 4 हो सकते हैं। मुझे पता है कि आप जिस तरह से एक साझा होस्ट पर सभी पांच शर्तों को पूरा कर सकते हैं, उसे कोई रास्ता नहीं है ।

जहां तक ​​मुझे पता है, साझा होस्ट प्रदाताओं द्वारा दो अलग-अलग कॉन्फ़िगरेशन का उपयोग किया जाता है। फ़ाइलों और निर्देशिकाओं की सर्वोत्तम सुरक्षा के लिए अनुमतियों के साथ, और कॉन्फ़िगरेशन को संतुष्ट करने के लिए कौन-सी शर्त विफल है, दोनों पर नीचे चर्चा की गई है।

कॉन्फ़िगरेशन 1: वेब सर्वर स्वामी के रूप में चल रहा है

यह AFAIK सबसे व्यापक रूप से उपयोग किया जाने वाला कॉन्फ़िगरेशन है। वेब सर्वर फ़ाइलों के स्वामी के रूप में चल रहा है। इसका अर्थ है कि एक दुष्ट उपयोगकर्ता अपने वेब सर्वर उपयोगकर्ता का उपयोग किसी अन्य उपयोगकर्ता की फ़ाइलों को पढ़ने के लिए स्क्रिप्ट चलाने के लिए नहीं कर सकता है। इस प्रकार का कॉन्फ़िगरेशन उपयोगकर्ताओं को CLI में एक दूसरे से बचाता है।

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

अनुमतियां:

Directories:  500 r-x --- --- tom.tom
Files:        400 r-- --- --- tom.tom
settings.php: 400 r-- --- --- tom.tom
Upload Dir.:  700 rwx --- --- tom.tom

दुर्भाग्य से, इसका मतलब है कि स्थिति 4 को संतुष्ट नहीं किया जा सकता है। यानी साइट को CLI के माध्यम से बनाए नहीं रखा जा सकता है। साइट को एक्सेस करने के लिए मालिक को किसी प्रकार के वेब-आधारित डैशबोर्ड का उपयोग करने के लिए विवश किया जाएगा (मेरी सिफारिश यह है कि मालिक कुछ स्टेजिंग सर्वर पर एक प्रतिलिपि रखता है जहां उसके पास अप्रतिबंधित एक्सेस है, और साझा होस्ट के लिए स्टेजिंग सर्वर पर किए गए दर्पण परिवर्तन )।

कॉन्फ़िगरेशन 2: वेब सर्वर www समूह के सदस्य के रूप में चल रहा है

इस कॉन्फ़िगरेशन का उपयोग कुछ (IMHO) साझा होस्ट समाधान के कम पेशेवर प्रदाताओं द्वारा किया जाता है। वेब सर्वर www समूह के सदस्य के रूप में चल रहा है, और समूह ब्लॉक के माध्यम से आवश्यक रीड एक्सेस दिया जाता है:

अनुमतियां:

Directories:  750 rwx r-x --- tom.www
Files:        640 rw- r-- --- tom.www
settings.php: 640 rw- r-- --- tom.www
Upload Dir.:  770 rwx rwx --- tom.www

इन सेटिंग्स का लाभ स्वामी को सीएलआई के माध्यम से अपनी फ़ाइलों तक पूर्ण पहुंच प्रदान करने के लिए है, और केवल पढ़ने के लिए वेब सर्वर को प्रतिबंधित करता है।

हालाँकि, यह शर्त को पूरा करने में भी विफल रहता है। 3. यानी यह साझा होस्ट (या किसी हैकर जो होस्ट को साझा करने वाले किसी अन्य उपयोगकर्ता की साइट से समझौता करता है) पर एक दुष्ट उपयोगकर्ता को किसी भी फ़ाइल को पढ़ने के लिए एक स्क्रिप्ट चलाने के लिए अनुमति देता है जिसे पढ़ा जा सकता है वेब सर्वर। यह डेटाबेस सेटिंग्स के साथ फ़ाइल सेटिंग्स.php के लिए दुष्ट स्क्रिप्ट का उपयोग देता है, जो पूरी तरह से साइट को संभालने के लिए तुच्छ बनाता है।

इस प्रकार के विन्यास से बचने के लिए मेरी सिफारिश है।

परिशिष्ट: एक साझा होस्ट का उपयोग करना कितना खतरनाक है?

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

"कॉन्फ़िगरेशन 2" के साथ, मुख्य समस्या अन्य है । यदि कुछ अन्य वेबसाइट जिसे आप होस्ट के साथ साझा करते हैं समझौता हो जाता है, तो आपकी वेबसाइट भी दोपहर का भोजन है। सुरक्षा बनाना किसी अन्य पार्टी पर निर्भर करता है जिसे आप नहीं जानते हैं और जिस पर कोई नियंत्रण नहीं है वह एक अच्छा विचार नहीं है। यही कारण है कि मेरी सिफारिश "कॉन्फ़िगरेशन 2" से बचने के लिए-होस्टिंग व्यवस्था से है।

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

और यदि आपका वेब एप्लिकेशन संवेदनशील डेटा संभाल रहा है, तो सुनिश्चित करें कि आपका बजट एक समर्पित होस्ट या वीपीएस के लिए अनुमति देता है।

आप Drupal.org पर फ़ाइल की अनुमति और स्वामित्व सुरक्षित करने के लिए भी इस गाइड को देखना चाह सकते हैं ।


ठीक है, मैंने आपको 50 अंक दिए हैं। आपके विस्तृत उत्तर के लिए धन्यवाद। क्या इसका मतलब यह है कि साझा होस्टिंग अनिवार्य रूप से बचा जाना चाहिए, क्योंकि इसे सुरक्षित नहीं किया जा सकता है?
साइमन होरे

वास्तव में अब मैं इसे फिर से पढ़ता हूं, आप प्रभावी रूप से कह रहे हैं कि इस व्यवस्था के तहत फाइलों को लाइव वातावरण में संशोधित / संशोधित नहीं किया जाना चाहिए और बस एक स्टेज के माहौल में काम करना चाहिए जिनकी संशोधित फाइलें आवश्यकतानुसार और लाइव साइट को बदल देंगी। । दूसरे शब्दों में, कोई भी लाइव साइट को संशोधित नहीं कर सकता है।
साइमन होरे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.