वास्तव में अपाचे के "सभी की आवश्यकता है" क्या करता है?


95

मैंने अपने अपाचे सर्वर को अपाचे / 2.4.6 में अपडेट किया है जो उबंटू 13.04 के तहत चल रहा है। मेरे पास एक vhost फ़ाइल थी जो निम्नलिखित थी:

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
</Directory>

लेकिन जब मैंने भाग लिया कि मुझे "मना किया गया है। आपके पास पहुंच / अनुमति नहीं है"

थोड़ा सा गुगली करने के बाद मुझे पता चला कि अपनी साइट को फिर से काम करने के लिए मुझे निम्नलिखित पंक्ति को जोड़ने की आवश्यकता है "सभी की आवश्यकता है" ताकि मेरी vhost इस तरह दिखे:

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
    Require all granted
</Directory>

मैं जानना चाहता हूं कि क्या यह "सुरक्षित" है और किसी भी सुरक्षा के मुद्दे पर नहीं लाता है। मैंने अपाचे के पेज पर पढ़ा कि यह "कार्यक्षमता पहले की 'सभी से अनुमति दें' और 'सभी से अस्वीकार करें' निर्देश द्वारा प्रदान की गई थी। यह प्रदाता दो तर्कों में से एक ले सकता है जो 'स्वीकृत' या 'अस्वीकृत' हैं। निम्नलिखित उदाहरण सभी अनुरोधों तक पहुंच प्रदान करेगा या अस्वीकार करेगा। "

लेकिन यह नहीं कहा कि क्या यह किसी प्रकार का सुरक्षा मुद्दा था या अब हमें ऐसा क्यों करना है जब अतीत में आपके पास नहीं था।


1
अपग्रेड डॉक्स 'एक्सेस कंट्रोल' परिवर्तनों के बारे में विस्तार से बताते हैं। httpd.apache.org/docs/2.4/upmission.html
जॉन मैग्नोलिया

जवाबों:


87

पहुंच नियंत्रण कॉन्फ़िगरेशन 2.4 में बदल गया, और पुराने कॉन्फ़िगरेशन कुछ परिवर्तनों के बिना संगत नहीं हैं। देखें यहाँ

यदि आपका पुराना कॉन्फ़िगरेशन था Allow from all(सेवा तक पहुंचने से कोई आईपी पते अवरुद्ध नहीं), तो Require all grantedनया कार्यात्मक संतुलन है।


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

4
इस तरह के एक बड़े बदलाव के लिए मुझे कॉन्फ़िगरेशन फ़ाइलों को स्वचालित रूप से माइग्रेट करने या कम से कम उन सभी बिंदुओं को दिखाने की आवश्यकता होगी जहां बदलाव की आवश्यकता है।
वोल्फगैंग फ़ाह्ल

1
का कामकाजी प्रदर्शन देखकर अच्छा लगेगा Require all denied
क्रांग प्राइम

5
मुझे नहीं लगता कि यह इसके बराबर है Allow from all। आपको Require all grantedअन्य मौजूदा Requireनियमों के साथ "मर्ज" करना होगा । मेरे मामले में एक मौजूदा Require valid-userको नजरअंदाज कर दिया गया था जब नेत्रहीन रूप से कॉन्फ़िगर करना जैसे कि यह हर जगह अनुशंसित है। यह सबसे बुरी चीज थी, जो हो सकती है ...
रुदमीयर

1
ओपी के सवाल का उचित जवाब देना अच्छा होगा। "सभी समकक्षों से अनुमति दें" बहुत संतोषजनक नहीं है।
शारकोक्स

15

मुझे पता है कि यह एक पुरानी पोस्ट है लेकिन मुझे लगता है कि मैं एक कार्यात्मक उदाहरण के साथ और अधिक मदद कर सकता हूं जिसका मैं हमेशा उपयोग करता हूं!

अपाचे में 2.2 होगा:

    <Location />
       Order deny, allow
       allow from all
    </Location>
    <Location /adm>
        Order deny, allow
        deny from all
        allow from myniceip
    </Location>
    <Location /disabled>
        Order deny, allow
        deny from all
    </Location>

अपाचे में 2.4 होगा:

   <Location />
       require all granted
    </Location>
   #Note that you dont need to use require all denied
   #to require only a group of ips.. 
    <Location /adm>
        require ip myniceip
    </Location>
    <Location /disabled>
        Require all denied
    </Location>

Htacess ऑथेंटिकेशन का उपयोग करते समय सावधानी से रहें , यह नया सिंटैक्स कुछ खराब और अप्रत्याशित चीजें कर सकता है , अगर ऐसा है तो कृपया अपना मामला पढ़ें: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me/ तय-आवश्यकता-वैध-आईपी-या-आवश्यकता-वैध-उपयोगकर्ता और आप ठीक होना चाहिए!


मेरे लिए, require all grantedरोका HTTP प्रमाणीकरण की उपस्थिति ने जानकारी के लिए बहुत धन्यवाद काम किया।
प्रमाणिक

@authentictech न केवल सभी की आवश्यकता है इसे तोड़ सकते हैं। अपेक्षित प्रमाणीकरण पूरी तरह से इस नए सिंटैक्स के साथ टूट सकता है यदि आप रिक्वायरमेंट या रिक्वायरमेंट का ठीक से उपयोग नहीं करते हैं। कृपया पढ़ें: unix.stackexchange.com/questions/413309/… । धन्यवाद प्रतिक्रिया देना के लिए।
लुसियानो एंड्रेस मार्टिनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.