मैं एक वेब सर्वर स्थापित कर रहा हूं जो कई अलग-अलग वेब साइटों को Apache VirtualHosts के रूप में होस्ट करेगा, इनमें से प्रत्येक में स्क्रिप्ट चलाने की संभावना होगी (मुख्य रूप से PHP, possiblu अन्य)।
मेरा सवाल यह है कि मैं इन VirtualHosts में से प्रत्येक को अलग-अलग और बाकी सिस्टम से कैसे अलग करूं? मैं नहीं चाहता कि वेबसाइट X को वेबसाइट Y या किसी सर्वर की "निजी" फाइलों के विन्यास को पढ़ें।
फिलहाल मैंने FastCGI, PHP और SUExec के साथ VirtualHosts की स्थापना की है, जैसा कि यहाँ वर्णित है ( http://x10hosting.com/forums/vps-tutorials/148894-debian-apache-2-2-fastpgi-php-5-suexec -easy-way.html ), लेकिन SUExec केवल उपयोगकर्ताओं को अपने स्वयं के अलावा फ़ाइलों को संपादित / निष्पादित करने से रोकता है - उपयोगकर्ता अभी भी संवेदनशील जानकारी जैसे कि कॉन्फिग फाइलों को पढ़ सकते हैं।
मैंने सर्वर पर सभी फ़ाइलों के लिए UNIX वैश्विक रीड अनुमति को हटाने के बारे में सोचा है, क्योंकि यह उपरोक्त समस्या को ठीक करेगा, लेकिन मुझे यकीन नहीं है कि मैं सर्वर फ़ंक्शन को बाधित किए बिना सुरक्षित रूप से कर सकता हूं।
मैंने चेरोट का उपयोग करने पर भी ध्यान दिया, लेकिन ऐसा लगता है कि यह केवल प्रति-सर्वर के आधार पर किया जा सकता है, न कि प्रति-वर्चुअल-होस्ट के आधार पर।
मैं ऐसे किसी भी सुझाव की तलाश कर रहा हूँ जो मेरे VirtualHosts को बाकी सिस्टम से अलग कर दे।
PS मैं Ubuntu 12.04 सर्वर चला रहा हूं
मेरे उत्तर: मैं अपने वर्तमान कॉन्फ़िगरेशन का अनुसरण करते हुए लगभग समाप्त हो गया, लेकिन सभी वर्चुअल मेजबानों के लिए चिरोट जेल कर रहा हूं, जैसे कि चिरोट जेल में /var/www
और फिर उप-प्रहरियों में सभी उपयोगकर्ताओं का डेटा समूह / अन्य के साथ r / w / x अनुमतियाँ विकलांग। यह विकल्प विशेष रूप से वांछनीय था क्योंकि स्रोत कोड के किसी भी संशोधन के बिना यह संभव है।
मैंने @ क्रिस के उत्तर का चयन किया, क्योंकि यह पूरी तरह से लिखा गया था और इसे एफ़टीपी और SELinux भी माना जाता था
mod_userdir
अलग डोमेन की वर्चुअल होस्टिंग कैसे प्रदान करता है। इसके अलावा, मैं अलगाव के संदर्भ में सुरक्षा के बारे में चिंता करता हूं क्योंकि मैं Apache के भीतर उपयोगकर्ता निर्देशिकाओं के बीच कुछ भी नहीं पा रहा हूं। ऐसा लगता है कि यह सुविधा प्रदान नहीं करता है।