मेरा आईपी परिवर्तन एक अलग डी वर्ग करता है, इसलिए मैं एक सीमा निर्धारित करना चाहता हूं:
123.123.123.xxx जहां अंतिम खंड 0-255 हो सकता है।
अभी, अपाचे कहता है:
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
मेरा आईपी परिवर्तन एक अलग डी वर्ग करता है, इसलिए मैं एक सीमा निर्धारित करना चाहता हूं:
123.123.123.xxx जहां अंतिम खंड 0-255 हो सकता है।
अभी, अपाचे कहता है:
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
जवाबों:
सबसे पहले, मैं आपको अपाचे 2.4 का मतलब "अपाचे -२.२" टैग के बावजूद मान रहा हूं क्योंकि आपने जो सिंटैक्स पोस्ट किया है वह २.४ से है।
अपाचे प्रलेखन से:
ip.address एक IP पता, एक आंशिक IP पता, एक नेटवर्क / नेटमैस्क जोड़ी, या एक नेटवर्क / nn CIDR विनिर्देश है।
मुझे लगता है कि आप मतलब चाहते हैं कि आप कक्षा 24 को मल्टीकास्ट पते हैं और 90 के दशक में क्लासफुल नेटवर्किंग की मृत्यु हो गई है। / 24 को अनुमति देने के लिए, आप निम्न में से किसी का उपयोग कर सकते हैं:
Require ip 123.123.123
Require ip 123.123.123.0/255.255.255.0
Require ip 123.123.123.0/24
व्यक्तिगत रूप से, मैं पहले की तुलना में कम अस्पष्ट हूं, और दूसरे की तुलना में पढ़ने में आसान हूं।
आपको दस्तावेज़ का यह भाग उपयोगी लग सकता है: http://httpd.apache.org/docs/2.4/howto/acc.html.html
Require
Apache 2.2 में सीमित समर्थन है, Apache 2.2 Require ip
या तो समर्थन नहीं करता है या <RequireAny>
। जैसा कि अपाचे HTTP सर्वर 2.4 में नई सुविधाओं के अवलोकन में उल्लेख किया गया है , "उन्नत प्राधिकरण तर्क अब Require
निर्देश और संबंधित कंटेनर निर्देशों का उपयोग करके निर्दिष्ट किया जा सकता है , जैसे <RequireAll>
।" पूर्व अपाचे 2.4 में जोड़े गए उन सुधारों में से हैं।
अपाचे 2.2 और नीचे में, आप इसके साथ काम कर सकते हैं:
Order deny,allow
Deny from all
Allow from 24.18 # allow access from home
Allow from 162.12 # allow access from work
अपने .htacess में, सीधे बेस लेवल पर (किसी के भीतर नहीं <directive>
)।
अपाचे 2.4 और इसके बाद के संस्करण के रूप में, आप यहाँ जाते हैं:
<RequireAny>
#IPv4 range at my work
Require ip 207.100
#IPv4 range I usually get through my mobile provider
Require ip 29.11
#IPv6 from home
Require ip 2a02:4126:2aa4::/48
</RequireAny>
(सभी संख्याएँ काल्पनिक, कोई चिंता नहीं; ;-)
मैं कई वर्षों से इसका उपयोग कर रहा हूं, 99% संभावित उपयोगकर्ताओं के खिलाफ अपने बैकएंड फ़ोल्डर्स को ढालने के लिए। (बहुत अच्छी तरह से काम करना, जब तक आप यात्रा करते समय एक शौकीन ब्लॉगर नहीं हैं। यदि आप एक जीमेल उपयोगकर्ता हैं: "अंतिम खाता गतिविधि" बहुत नीचे स्थित लिंक अपने खुद के "आईपी हैबिट्स" का पता लगाने का एक शानदार तरीका है)।
Require ip 2a02:4126:2aa4::/48
और Require ip 2a02:4126:2aa4::
? दोनों मेरे लिए वाक्यविन्यास त्रुटियों का उत्पादन नहीं करते हैं, लेकिन केवल पूर्व काम करता है।
यह देखते हुए कि आपने अब Apache 2.2 का उपयोग करके पुष्टि की है , Apache 2.2 Require ip
या तो समर्थन नहीं करता है या <RequireAny>
। जैसा कि अपाचे HTTP सर्वर 2.4 में नई सुविधाओं के अवलोकन में कहा गया है , "उन्नत प्राधिकरण तर्क को अब Require
निर्देश और संबंधित कंटेनर निर्देशों का उपयोग करके निर्दिष्ट किया जा सकता है , जैसे <RequireAll>
।" पूर्व अपाचे 2.4 में जोड़े गए उन सुधारों में से हैं।
अपाचे 2.2 में इससे निपटने के लिए, आपको शायद कुछ ऐसा करने की आवश्यकता होगी:
Order allow,deny
Allow from 123.123.123
जो पूरी सीमा को निर्दिष्ट करेगा।
नोट: मैं इसे यहाँ छोड़ रहा हूँ क्योंकि अन्य लोग इससे लाभान्वित हो सकते हैं; यह सवाल का सीधा जवाब नहीं है।
उदाहरण के लिए:
आईपी 192.168.100.0/22 की आवश्यकता है
काम करता है, जबकि
IP 192.168.100.0/22 #localnetwork की आवश्यकता है
विफल रहता है!
Httpd आउटपुट को पुनरारंभ करना:
Httpd.service के लिए नौकरी विफल रही क्योंकि नियंत्रण प्रक्रिया त्रुटि कोड के साथ बाहर निकल गई। विवरण के लिए "systemctl स्टेटस httpd.service" और "journalctl -xe" देखें।
तो, ऐसा लगता है कि उस लाइन पर किसी भी टिप्पणी की अनुमति नहीं है ।
अपाचे की आवश्यकता निर्देश का उपयोग प्राधिकरण चरण के दौरान किया जाता है ताकि यह सुनिश्चित किया जा सके कि किसी उपयोगकर्ता को संसाधन तक पहुंचने की अनुमति है या अस्वीकार कर दिया गया है। mod_authz_host आईपी, होस्ट, फ़ॉरवर्ड-डीएनएस और स्थानीय के साथ प्राधिकरण प्रकारों का विस्तार करता है। अन्य प्राधिकरण प्रकारों का भी उपयोग किया जा सकता है, लेकिन इसके लिए अतिरिक्त प्राधिकरण मॉड्यूल लोड करने की आवश्यकता हो सकती है।
ये प्राधिकरण प्रदाता प्रभावित करते हैं कि कौन सा होस्ट सर्वर के एक क्षेत्र तक पहुंच सकता है। एक्सेस को होस्टनाम, आईपी एड्रेस या आईपी एड्रेस रेंज द्वारा नियंत्रित किया जा सकता है।
V2.4.8 के बाद से, होस्ट के भीतर अभिव्यक्तियों का समर्थन किया जाता है, निर्देशों की आवश्यकता होती है। आईपी की आवश्यकता है
आईपी प्रदाता रिमोट क्लाइंट के आईपी पते के आधार पर सर्वर को नियंत्रित करने की अनुमति देता है। जब आईपी पते की आवश्यकता होती है, तब आईपी पते से मेल खाने पर अनुरोध को अनुमति दी जाती है।
एक पूर्ण आईपी पता:
Require ip 10.1.2.3
Require ip 192.168.1.104 192.168.1.205
एक मेजबान के एक आईपी पते की अनुमति दी
एक आंशिक आईपी पता:
Require ip 10.1
Require ip 10 172.20 192.168.2
सबनेट प्रतिबंध के लिए आईपी पते का पहला 1 से 3 बाइट्स।
एक नेटवर्क / नेटमास्क जोड़ी:
Require ip 10.1.0.0/255.255.0.0
एक नेटवर्क abcd, और अधिक बारीक सबनेट प्रतिबंध के लिए एक netmask wxyz।
एक नेटवर्क / nn CIDR विनिर्देश:
Require ip 10.1.0.0/16
पिछले मामले के समान, नेटमास्क को छोड़कर nnn उच्च-क्रम 1 बिट्स होते हैं।
ध्यान दें कि ऊपर दिए गए अंतिम तीन उदाहरण मेजबान के समान सेट से मेल खाते हैं।
IPv6 पते और IPv6 सबनेट को नीचे दिखाए अनुसार निर्दिष्ट किया जा सकता है:
Require ip 2001:db8::a00:20ff:fea7:ccea
Require ip 2001:db8:1:1::a
Require ip 2001:db8:2:1::/64
Require ip 2001:db8:3::/48
नोट: चूंकि आईपी पते स्टार्टअप पर पार्स किए गए हैं, इसलिए अनुरोध समय पर अभिव्यक्तियों का मूल्यांकन नहीं किया जाता है।
स्रोत: https://httpd.apache.org/docs/trunk/mod/mod_authz_host.html