Apache, suexec, PHP, suPHP


13

जबकि मैं लिनक्स उपयोगकर्ता के रूप में काफी सहज हूं , मेरा लिनक्स एडमिन-फू थोड़ा कमजोर है। इस प्रकार, मैं यहाँ एक CentOS सर्वर के साथ मार्गदर्शन की तलाश में हूँ जिसका मैं निर्माण करने वाला हूँ।

मुझे अपने कुछ ग्राहकों के लिए Apache2 वेब सर्वर सेटअप करने की आवश्यकता है। मैं चाहता हूं कि प्रत्येक क्लाइंट की वेब सामग्री उनके होम डायरेक्टरी के तहत हो ( USERDIRस्थैतिक HTML साइटों के लिए apache.conf, राइट?) में। मैं चाहता हूं कि अपाचे क्लाइंट के रूप में चला जाए ( suexec?)। उनके कुछ सामान PHP एप्स होंगे और मैं इस धारणा के तहत हूं कि मैं suphpतब भी देखना चाहता हूं ।

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

तो सवाल (किसी भी या सभी का जवाब देने के लिए स्वतंत्र महसूस):

  1. किसी के पास वर्तमान / आधुनिक गाइड के कुछ ठोस लिंक हैं जो मुझे यह सब सेट करने में मदद करेंगे? नहीं, अपाचे प्रलेखन साइट एक गाइड नहीं है ;-)
  2. चूंकि मेरे पास स्थैतिक साइटों और PHP ऐप्स का मिश्रण है, जो मुझे चाहिए / suexec और suphp दोनों को स्थापित करने की आवश्यकता है? यदि ऐसा है, तो क्या मुझे ऐसी किसी भी चुनौती का परिचय देना चाहिए जिसकी मुझे जानकारी होनी चाहिए?
  3. क्या मुझे suexec और suphp के बजाय अन्य विकल्पों को देखना चाहिए?

मैं अंतिम उपयोगकर्ताओं को एसएसएच, एसएफटीपी या एससीपी को उनके सामान तक पहुंच देने की योजना (यदि ऐसा कुछ भी प्रभावित करता है)।

आपकी सहायता के लिये पहले से ही धन्यवाद।

[संपादित करें] मुझे इसका पहले उल्लेख करना चाहिए था: फ़ाइल परमिट और स्वामित्व से संबंधित साझा होस्टिंग प्रदाता का अनुकरण करने के लिए मेरी खोज का एक प्रमुख लक्ष्य। मैं वास्तव में उपयोगकर्ताओं को ऐसी चीजों को बदलने की आवश्यकता के बारे में पढ़ाने से बचना चाहूंगा जो केवल उनके परिवर्धन / परिवर्तन को देख सकें।

जवाबों:


15

Suexec और suphp का उपयोग करना डिफ़ॉल्ट की तुलना में एक अलग प्रकार के विशेषाधिकार अलगाव को लागू करता है।

डिफ़ॉल्ट उपयोगकर्ता की अनुमति को वेब सर्वर से अलग करना है। यही है, उपयोगकर्ता फ़ाइलों का मालिक है, और उसे देखने और बदलने के लिए उसे वेब सर्वर की अनुमति प्रदान करनी होगी।

Suexec / suphp मॉडल यह है कि वेबसर्वर (जब स्क्रिप्ट चल रहा हो) उपयोगकर्ता के खाते में चलता है, इसलिए वेबसाइट के पास कुछ भी करने की अनुमति होती है जिसे उपयोगकर्ता को करने की अनुमति है। कुछ हद तक, यह उपयोगकर्ता और वेबसर्वर के बीच के अलगाव को हटा देता है, लेकिन बदले में यह एक अलग अलगाव को लागू करता है: अर्थात्, एक उपयोगकर्ता की वेबसाइट और एक ही बॉक्स पर एक अलग उपयोगकर्ता की वेबसाइट के बीच।

डिफ़ॉल्ट रूप से, PHP हमेशा Apache के उपयोगकर्ता खाते के अंतर्गत चलती है, इसलिए एक वेबसाइट की PHP स्क्रिप्ट किसी भी फाइल को एक्सेस कर सकती है जो किसी अन्य साइट की PHP स्क्रिप्ट कर सकती है। इसलिए, यदि सर्वर पर एक खाता हैक हो जाता है, तो संक्रमण दूसरों में फैल सकता है। SuPHP इसे रोकता है।

न तो suexec और न ही suphp, अपाचे को स्थैतिक सामग्री के कार्य करने के तरीके को प्रभावित करेगा । सभी पुराने नियम अभी भी लागू होते हैं। इसके बजाय, suexec और suphp उस खाते को बदलते हैं जिसके तहत CGI और PHP (क्रमशः) चलेंगे। Suexec CGI को स्वामी के खाते के तहत चलाने योग्य बनाता है, जबकि SuPHP मालिक के खाते में PHP स्क्रिप्ट को चलाता है।

जरूरी नहीं है कि Suexec और SuPHP बेहतर हों । वे बस अलग हैं । वे किसी वेबसाइट को हैक होने से नहीं रोकेंगे (और यकीनन साइट को हैक करना आसान बना सकते हैं ), लेकिन वे एक साइट पर किसी अन्य व्यक्ति को फैलने से रोकने से बचेंगे। साइट व्यवस्थापक के लिए, यह अलगाव यकीनन अधिक महत्वपूर्ण है, यही वजह है कि कुछ साझा किए गए होस्टिंग सिस्टम डिफ़ॉल्ट रूप से suexec और suphp बनाते हैं।

एक बहुत ही सामान्य "गोचा" यह है कि SuPHP किसी स्क्रिप्ट के स्वामित्व और अनुमतियों की जाँच करता है, इससे पहले कि वह चलता है, और यदि अनुमति उचित नहीं है तो वह 500 त्रुटि लौटाएगा।

विशेष रूप से:

  • फ़ाइल के स्वामी और समूह को वेबसाइट के स्वामी (अपाचे कॉन्फ़िगरेशन में सेटिंग के रूप में) से मेल खाना चाहिए
  • फ़ाइल विश्व-योग्य नहीं होनी चाहिए
  • मूल निर्देशिका विश्व-योग्य नहीं होनी चाहिए

इसलिए, यह जानते हुए कि मैं एक साझा होस्टिंग मॉडल का अनुकरण करना चाहता हूं (जैसा कि आपने बताया, एक दूसरे से उपयोगकर्ताओं को रखना) suexec / suphp मॉडल है जिस तरह से मैं जाना चाहता हूं या क्या आपको लगता है कि बेहतर विकल्प हैं? मैंने यह संकेत देने के लिए पोस्ट को भी संपादित किया है कि एक प्रमुख लक्ष्य उपयोगकर्ताओं को फ़ाइल परमिट या मालिकों को संशोधित करने के बारे में सिखाने से बचने के लिए है बस उनके परिवर्तन या परिवर्धन को देखने के लिए।
क्रिस_के

2
suexec / suphp आपके बाद के लिए एक अच्छा समाधान है।
टायलरल

मैं suhpec को suphp पसंद करूंगा। यह सुरक्षित है मुझे लगता है।
व्लादिस्लाव रास्ट्रुसनी

@FractalizeR: आम तौर पर आप एक ही समय में दोनों का उपयोग करते हैं। SuPHP PHP के लिए है, suexec CGI के लिए है। आप PHP को CGI के रूप में चलाकर PHP को suexec पर चला सकते हैं, लेकिन PHP के लिए बेहतर (अधिक सुरक्षित, अधिक कुशल) विकल्पों के बाद से यह थोड़ा अनावश्यक है।
tylerl

@tylerl: आपके उत्तर के लिए बहुत बहुत धन्यवाद। आपके द्वारा बताए जा रहे PHP के लिए और अधिक सुरक्षित / कुशल समाधान क्या हैं?
बेंजामिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.