2008-09-28 10 views
18

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

तो यहां सबसे अच्छा, आसान सेट अप करना, समाधान को बनाए रखने में आसान क्या है? क्या डेबियन पर उपयोगकर्ता-मोड लिनक्स सैंडबॉक्स सेट करना आसान है? या शायद एक chroot जेल? मैं बाहर से sadbox के अंदर फ़ाइलों तक आसान पहुंच प्राप्त करना चाहता हूं। यह उन समयों में से एक है जहां यह मेरे लिए बहुत स्पष्ट हो जाता है कि मैं एक प्रोग्रामर हूं, सिसडमिन नहीं। कोई भी सहायताकाफी प्रशंसनीय होगी!

उत्तर

15

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

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

मैं व्यक्तिगत रूप से मेरे सारे सेवाओं की जुदाई के लिए लिनक्स VServer का उपयोग करें और वहाँ केवल मुश्किल से नजर प्रदर्शन मतभेद हैं।

स्थापना के निर्देश के लिए linux-vserver wiki पर एक नज़र डालें।

संबंध है, डेनिस

3

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

0

वर्चुअल मशीन बनाएं। VMware या qemu

3

सुनिश्चित करने के लिए कहा जाता है कि chroot जेलों शायद ही कभी एक अच्छा विचार यह है कर रहे हैं, इरादा के बावजूद, बहुत आसान से बाहर तोड़, वास्तव में मैंने देखा यह उपयोगकर्ताओं को गलती से द्वारा किया जाता है!

3

कोई अपराध, लेकिन यदि आप सुरक्षा पैच के लिए देखते हैं, और सुरक्षा के मुद्दों के बारे में पता रहने के लिए समय नहीं है, यदि आप चिंतित हैं, कोई बात नहीं क्या आपके सेटअप होना चाहिए। दूसरी ओर, केवल इन तथ्यों के बारे में आप सोच रहे हैं कि आप इस तरह के मशीनों के 99.9% मालिकों से अलग हैं। आप सही रास्ते पर हैं!

4

मैं दूसरा क्या xardias कहते हैं, लेकिन इसके बजाय OpenVZ सलाह देते हैं।

यह लिनक्स Vserver के समान है, इसलिए आप जब इस मार्ग जा रहा उन दोनों के बीच तुलना कर सकते हैं।

मैंने प्रॉक्सी http सर्वर (nginx) के साथ एक वेबसर्वर सेट किया है, जो तब विभिन्न ओपनवीजेड कंटेनर (होस्टनाम या अनुरोधित पथ के आधार पर) यातायात का प्रतिनिधित्व करता है। प्रत्येक कंटेनर के अंदर आप अपाचे या किसी अन्य वेबसर्वर को सेट कर सकते हैं (उदा। Nginx, lighttpd, ..)। इस तरह से आप सब कुछ के लिए एक अपाचे की जरूरत नहीं है, लेकिन किसी भी सेवा के सबसेट के लिए एक कंटेनर (जैसे प्रति परियोजना) बना सकते हैं।

OpenVZ कंटेनर काफी आसानी से पूरी तरह अद्यतन प्राप्त कर सकते हैं ("के लिए मैं में $ (vzlist); कर vzctl कार्यकारी apt-get उन्नयन काम पूर्ण हो जाए")

विभिन्न कंटेनरों की फ़ाइलों हार्डवेयर नोड में जमा हो जाती है और इसलिए आप हार्डवेयर नोड में SFTPing द्वारा उन्हें आसानी से एक्सेस कर सकते हैं। अलावा कि आप अपने कंटेनर में से कुछ के लिए एक सार्वजनिक आईपी पते जोड़ सकते हैं, वहाँ SSH स्थापित करने और फिर उन्हें कंटेनर से सीधे पहुंचें। मैंने एसएसएच प्रॉक्सी से भी सुना है, इसलिए अतिरिक्त सार्वजनिक आईपी पता भी उस मामले में अनावश्यक हो सकता है।

0

आप वास्तव में हल करने की कोशिश कर रहे हैं? यदि आप उस सर्वर पर क्या देखते हैं, तो आपको घुसपैठियों को इसमें शामिल होने से रोकने की आवश्यकता है। यदि आप अपने सर्वर के साथ घुसपैठियों के बारे में परवाह करते हैं, तो आपको सर्वर की क्षमताओं को सीमित करने की आवश्यकता है।

न तो इन समस्याओं का वर्चुअलाइजेशन के साथ हल किया जा सकता है, severly सर्वर पर ही criplling बिना। मुझे लगता है कि आपकी समस्या का असली जवाब यह है:

  1. एक ओएस चलाएं जो आपको ओएस अपडेट के लिए एक आसान तंत्र प्रदान करता है।
  2. विक्रेता द्वारा प्रदान किए गए सॉफ़्टवेयर का उपयोग करें।
  3. बैकअप सबकुछ अक्सर।
+0

हालांकि यह सब मूल रूप से सच है, कुछ प्रकार का सैंडबॉक्स सुरक्षा की उपयोगी अतिरिक्त परत प्रदान करता है। चाहे यह करने योग्य है इस पर निर्भर करता है कि सर्वर पर और कितना है - यदि मशीन का एकमात्र उपयोग वेब सर्वर होना है तो वेब सर्वर को सैंडबॉक्स में डालने में बहुत कुछ नहीं है। –

3

मैं इसे आश्चर्यजनक है कि कोई भी उल्लेख किया mod_chroot और suEXEC है, जो बुनियादी बातें आप के साथ शुरू करना चाहिए रहे हैं, और, सबसे अधिक संभावना केवल बातें आप की जरूरत है।

+0

अगर मैं गलत हूं तो मुझे सही करें, लेकिन क्रोट को कभी भी सुरक्षा सुविधा नहीं माना गया था। chroot जेल सुरक्षित नहीं हैं। – Alexander

+1

यूनिक्स क्रोट (8) प्रोग्राम * सुरक्षा * के रूप में डिज़ाइन नहीं किया गया है - आप सही हैं, लेकिन अपाचे mod_chroot के पास उस प्रोग्राम से कोई लेना देना नहीं है।यह बस सिस्टम के बाकी हिस्सों से अपाचे को अलग करने के लिए क्रोट (2) सिस्टम कॉल का उपयोग करता है। – Terminus

+1

mod_chroot का उपयोग करते समय, अपाचे किसी भी वातावरण से बाहर निकलता है जो बाहरी दुनिया को संशोधित कर सकता है। suexec तब एक तरीका देता है जिसमें आप किसी भिन्न उपयोगकर्ता के तहत कोई वर्चुअलहोस्ट चला सकते हैं, इसलिए वे एक दूसरे के साथ गड़बड़ नहीं कर सकते हैं। – Terminus

1

आपको SELinux का उपयोग करना चाहिए। मुझे नहीं पता कि यह डेबियन पर कितनी अच्छी तरह से समर्थित है; यदि ऐसा नहीं है, तो बस एक वीएम में सक्षम SELinux के साथ एक Centos 5.2 स्थापित करें। बहुत ज्यादा काम नहीं होना चाहिए, और किसी भी शौकिया chrooting से कहीं अधिक सुरक्षित नहीं होना चाहिए, जो ज्यादातर लोगों के विश्वास के रूप में सुरक्षित नहीं है। SELinux को व्यवस्थापक के लिए मुश्किल होने की प्रतिष्ठा है, लेकिन यदि आप बस एक वेबसर्वर चला रहे हैं, तो यह कोई मुद्दा नहीं होना चाहिए। HttpD को डीबी से कनेक्ट करने के लिए आपको बस कुछ "sebool" करना पड़ सकता है, लेकिन यह इसके बारे में है।

+0

एलएसएम हुक बल्कि मस्तिष्क मृत हैं और वास्तव में यहां लागू नहीं होते हैं। –

1

जबकि ऊपर के सभी अच्छे सुझाव दिए गए हैं, मैं भी एक iptables जोड़ने का सुझाव अप्रत्याशित बाहर जाने वाले नेटवर्क कनेक्शन अस्वीकृत करने के लिए राज करते हैं। चूंकि सबसे स्वचालित वेब शोषण करने वाली पहली चीज़ उनके पेलोड को डाउनलोड करती है, इसलिए नेटवर्क कनेक्शन को रोकने से हमलावर धीमा हो सकता है।

कुछ इन के समान नियम का इस्तेमाल किया जा सकता है (सावधान रहें, अपने वेब सर्वर अन्य प्रोटोकॉल के लिए उपयोग की आवश्यकता हो सकती): iptables --append आउटपुट मी मालिक --uid मालिक अपाचे -m राज्य की स्थापना से संबंधित --state - -jump स्वीकार iptables --append आउटपुट मी मालिक --uid मालिक अपाचे --protocol udp --destination बंदरगाह 53 --jump स्वीकार iptables --append आउटपुट मी मालिक --uid मालिक अपाचे --jump अस्वीकार

1

तो डेबियन का उपयोग कर, debootstrap अपने दोस्त QEMU, एक्सईएन, OpenVZ, Lguest या दूसरों की अधिकता के साथ युग्मित है।

संबंधित मुद्दे