कई कारणों से वेब सर्वर पर कुछ निर्देशिकाओं तक या केवल हमारे पेज या ब्लॉग की सामग्री तक उपयोगकर्ता नाम और पासवर्ड के आधार पर एक प्रमाणीकरण सेवा के माध्यम से नियंत्रित पहुंच होना बहुत उपयोगी हो सकता है। मैं उस विशिष्ट विंडो के बारे में बात कर रहा हूं, जो तब दिखाई देती है जब हम प्रतिबंधित सेवाओं के साथ एक वेबसाइट दर्ज करना चाहते हैं।
प्रमाणीकरण फ़ॉर्म के साथ विंडोज़ उत्पन्न करने के कई तरीके हैं लेकिन सर्वर स्तर पर एक दिलचस्प समाधान प्रदान किया गया है htpasswd। यह एक उपयोगिता है जिसका कार्य पासवर्डों को प्रमाणीकरण सेवाओं में अपाचे द्वारा उपयोग किए जाने वाले एन्क्रिप्टेड रूप में संग्रहीत करना है। इसका उपयोग हमें कुछ निर्देशिकाओं या फ़ाइलों को http के माध्यम से केवल उपयोगकर्ताओं को पहचानने और आवश्यक रूप से सभी के लिए स्वतंत्र रूप से उपलब्ध होने की अनुमति देगा।
मैं समझता हूं कि यह बहुत ही आकर्षक विषय नहीं है, लेकिन यह कुछ के लिए उपयोगी हो सकता है। बोरियत के साथ उन्हें मारने के लिए नहीं, मैं इसे और अधिक काम करने के लिए छवियों का उपयोग करूंगा।
पिछले विचार: मैं उपयोग करूंगा उबंटु सर्वर 12.04.1 y अपाचे 2.2.22 एक नियंत्रित वातावरण में।
हम शुरू करते है।
जैसा कि कुछ पहले से ही जानते हैं, डिफ़ॉल्ट रूप से उपलब्ध Apache साइटें निर्देशिका में संग्रहीत की जाती हैं / Var / www / और इस उदाहरण के लिए मैं एक HTML टेम्पलेट के साथ एक निर्देशिका बनाऊंगा और इसे .htpasswd के साथ ढालने का प्रयास करूंगा।
रक्षा करने के लिए निर्देशिका है / var / www / उदाहरण / जहाँ मैंने अगला पृष्ठ रखा है।
1. हम .htpasswd बनाने जा रहे हैं।
जिस स्थान पर यह स्थित होगा वह प्रासंगिक महत्व का है और इसे सार्वजनिक निर्देशिका के बाहर रखने की सिफारिश की जा सकती है। मेरे मामले में मैं इसे अपने व्यक्तिगत फ़ोल्डर (जो सार्वजनिक Apache निर्देशिका नहीं है) और .htpassw नाम के साथ रखूँगा। (एक प्राथमिकता यह आवश्यक नहीं है कि इसे इस तरह से कॉल करें, लेकिन जो छिपा हुआ है वह हमेशा अच्छा होता है)।
निम्नलिखित कमांड के साथ मैं एक वेब उपयोगकर्ता के लिए .htpasswd फ़ाइल बनाता हूं जिसे मैंने नाम दिया है: "ल्यूक"।
# htpasswd -c /home/krel/.htpasswd Luke
यह हमें पासवर्ड को दो बार आपूर्ति करने के लिए कहेगा, मेरे मामले में मैंने "स्काईवॉकर" (उद्धरण के बिना) डाल दिया है। अनियंत्रित वातावरण में हमें मजबूत पासवर्ड स्थापित करना चाहिए। लिनक्स पर डिफ़ॉल्ट एन्क्रिप्शन एमडी 5 है, लेकिन यूनिक्स पर यह क्रिप्ट () का मानक कार्यान्वयन है और 8 से कम वर्णों वाले पासवर्ड के लिए यह असुरक्षित हो सकता है। अब सवाल उठता है कि क्या बीएसडी में भी ऐसा ही है।
- -c → फ़ाइल बनाने के लिए
- /home/krel/.htpasswd → फ़ाइल का पूर्ण पथ।
- ल्यूक → उपयोगकर्ता नाम (यह आप जो चाहते हैं हो सकता है)
इसी तरह, मैं किसी को भी टर्मिनल का उपयोग करने के लिए मजबूर नहीं करता जब उसके लिए इंटरनेट पर सेवाएं हों:
http://www.web2generators.com/apache/htpasswd_generator
http://www.htaccesstools.com/htpasswd-generator/
यदि आप चाहें तो हम परिणाम को एक पाठ फ़ाइल में और .htpasswd नाम के साथ कॉपी कर सकते हैं। इस पद्धति के बारे में, अगले पैराग्राफ में मैं जो भी टिप्पणी करता हूं, उसे पढ़ना बंद न करें।
हमारे मामले में हम देखेंगे कि फ़ाइल जनरेट की गई है जहाँ हमें उनसे /home/krel/.htpasswd की उम्मीद थी। छवि में मैंने हाइलाइट किया है कि इस पद्धति के साथ फाइल अपाचे समूह और उपयोगकर्ता की है, जिसे उबंटू में www-data कहा जाता है। यह महत्वपूर्ण है क्योंकि अगर हमने .htpasswd को किसी अन्य तरीके से जनरेट किया है, तो हमें यह सुनिश्चित करना होगा कि इसकी 644 अनुमतियां हैं।
इस तरह से हमने पहले ही उपयोगकर्ता ल्यूक के लिए .htpasswd बनाया और डिज़ाइन किया है, अंत में यह पासवर्ड के लिए कंटेनर से ज्यादा कुछ नहीं है। "ऑल विथ वन कमांड" एक अच्छा कैचफ्रेज़ होगा।
2. अपाचे को साइट पर उस सेवा का उपयोग करने और अनुमति देने के लिए कॉन्फ़िगर करें।
# nano /etc/apache2/sites-available/default
यदि आपके पास कई होस्ट हैं, तो उनमें से प्रत्येक पर काम करना होगा, मेरे मामले में मेरे पास केवल वही है जो डिफ़ॉल्ट रूप से आता है। यह मत भूलो कि उस फ़ाइल का बैकअप बनाना हमेशा अच्छा होता है।
उस फ़ाइल में डिफ़ॉल्ट संरचना है:
ServerAdmin वेबमास्टर @ localhost
..................
..................
यह वर्चुअलीहोस्ट हेडिंग के भीतर ठीक है कि एक निश्चित निर्देशिका तक पहुंचने के लिए .htpasswd का उपयोग निर्दिष्ट किया जाएगा। हम इसे नीचे दी गई छवि के रूप में देखते हैं और हमारे उदाहरण के लिए उपयुक्त है:
आपको सुरक्षा के लिए निर्देशिका रखनी होगी।
AuthType बेसिक
यह ब्राउज़र के साथ उपयोगकर्ता और पासवर्ड का प्रकार है, इस मामले में यह बिना एन्क्रिप्शन के बेसिक है।
एक अन्य प्रकार की बातचीत है: डाइजेस्ट, यह उपयोगकर्ता नाम और पासवर्ड को एन्क्रिप्ट करता है, हालांकि अंतिम शब्द ब्राउज़र है कि क्या यह सेवा का समर्थन करता है। डाइजेस्ट कहा जा सकता है कि यह स्निफर्स के खिलाफ थोड़ा अधिक मजबूत कार्यान्वयन है। मैं आपको इसमें शामिल होने के लिए आमंत्रित करता हूं।
"नाम दर्ज करने से पहले दरवाजे पर दस्तक।"
यह एक संदेश है जो उपयोगकर्ता को लॉगिन फ़ॉर्म के साथ ब्राउज़र में दिखाई देगा और यह वह हो सकता है जिसे हम चाहते हैं।
ऑथरुसेफाइल / क्वार / डब्ल्यूडब्ल्यू / .पास /.टवज्वड
.Htpasswd फ़ाइल पथ। उस कारण से, मैं कहता हूं कि इसे नाम देना भी आवश्यक नहीं है। बस पास करने के लिए, यह एक ही काम करेगा।
वैध उपयोगकर्ता की आवश्यकता
यह लाइन व्यक्तिगत पासवर्ड वाले कई उपयोगकर्ताओं के लिए डिज़ाइन की गई है। यदि यह एकल उपयोगकर्ता है, तो इसे निम्नलिखित प्रकार के रूप में संक्षेपित किया जा सकता है।
उपयोगकर्ता el_que_sea की आवश्यकता है
मेरे उदाहरण में यह हो सकता है: उपयोगकर्ता ल्यूक की आवश्यकता है
और अंत में हम सब कुछ के साथ संलग्न हैं
हम पुनः आरंभ करते हैं:
# service apache2 restart
कोशिश करते हैं।
यदि हम सही तरीके से प्रमाणित नहीं करते हैं, तो हमें एक त्रुटि 401 मिलेगी।
अतिरिक्त सुझाव।
- पहले से निर्मित htpasswd फ़ाइल में अधिक उपयोगकर्ता जोड़ने के लिए आप इस कमांड का उपयोग कर सकते हैं
htpasswd -mb /home/krel/.htpasswd उपयोगकर्ता पासवर्ड
यदि आपने "उपयोगकर्ता की आवश्यकता है" सेट किया है और "वैध-उपयोगकर्ता की आवश्यकता नहीं है" तो आपको नए उपयोगकर्ता को पिछले एक के बाद जोड़ना होगा और एक स्थान से अलग करना होगा। उदाहरण:
उपयोगकर्ता ल्यूक अनाकिन की आवश्यकता है
- उपयोगकर्ता समूहों का उपयोग करें
यदि अलग-अलग उपयोगकर्ताओं के बजाय हम पसंद करते हैं या निम्नलिखित वेबसाइट पर समूहों के साथ काम करने की आवश्यकता है, तो वे इसे बहुत विस्तार से बताते हैं और यह एक उत्कृष्ट लेख है।
http://www.juanfelipe.net/node/23
- हम एक अन्य प्रकार का एन्क्रिप्शन भी सेट कर सकते हैं, उदाहरण के लिए: SHA
htpasswd -sb /home/krel/.htpasswd उपयोगकर्ता पासवर्ड
यहाँ एक छवि है कि कैसे SHA पासवर्ड का पंजीकरण .htpasswd में परिलक्षित होगा। दोनों में यह "स्काईवॉकर" था।
अधिक जानें.
htpasswd - -help
यदि आप इस विषय पर गहराई से जाना चाहते हैं, तो RTFM हमेशा अच्छा है!
http://httpd.apache.org/docs/2.0/es/howto/auth.html
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html
मुझे यह PHP स्क्रिप्ट ग्रेनेडा विश्वविद्यालय के पेज से htaccess और htpasswd जनरेटर बनाने के लिए उत्सुक लगी है। मैं इसे व्यवहार में नहीं ला पा रहा हूं लेकिन मैं आपको "बुद्धिमत्ता के साथ शिकार करने" के लिए आमंत्रित करता हूं।
किसी को भी दिलचस्पी होने की स्थिति में HTML टेम्पलेट मुझे इस पृष्ठ से मिला है।
http://www.templatemo.com/
आशा है आपको यह htpasswd प्रस्तुति पसंद आई होगी।
14 टिप्पणियाँ, तुम्हारा छोड़ दो
अब फिर से पोस्ट पढ़कर मुझे एहसास हुआ कि मैंने एक छोटी सी गड़बड़ कर दी है। जब मैं साइट कॉन्फ़िगरेशन में लाइनों को समझाता हूं, तो AuthUserFile में मैंने /var/www/.pass/.htpasswd डाल दिया जब यह होना चाहिए:
/home/krel/.htpasswd
छवि में यह ठीक है, लेकिन यह मुझे बच गया, यह है कि मैंने पहले उस मार्ग के साथ लेख बनाया था, लेकिन आखिरी मिनट में मैंने इसे बदल दिया और ऐसा लगता है कि मैं इसे ठीक कर सकता हूं।
मैं पहले ही माफी माँगता हूं।
नॉटिलस के लिए कोई विकल्प ??
आप जो पूछते हैं मुझे लगता है कि दूसरा रास्ता जाता है लेकिन मैं आपको वैसे भी जवाब देता हूं।
मेरा मानना है कि क्रिप्टकीपर के साथ यह निर्देशिका और उस तरह की चीजों की रक्षा के लिए उपयोगी होगा।
अगर मैं ईमानदार हूँ अगर मैं कुछ सूक्ति के बारे में नफरत करता हूँ तो वह भोलापन है। डॉल्फिन (केडीई) रक्षा की इन चीजों के लिए बहुत अधिक शक्तिशाली है, जीपीजी के साथ एन्क्रिप्ट करना, आदि ...
Krel, पूर्ण ट्यूटोरियल के लिए धन्यवाद जो आप यहां लाते हैं और विशेष रूप से इतने सामान्य विषयों के लिए नहीं ...
चियर्स !!! ...
हैलो सब कुछ ठीक चला लेकिन .. जब मैं क्रोम टैब को बंद करता हूं और एक और एक को खोलता हूं, तो मैं पता लिखता हूं और यह पासवर्ड के लिए नहीं पूछता है ...
किसने कहा कि यह आकर्षक नहीं था।
यह वही था जो मैं देख रहा था, और बेहतर समझा असंभव
बहुत बहुत धन्यवाद.
एक ग्रीटिंग
नमस्कार, मैं जानकारी के लिए आपका बहुत-बहुत धन्यवाद करता हूं, विशेष रूप से .htpasswd में कई उपयोगकर्ताओं को जोड़ने का हिस्सा।
भगवान आपका भला करे!
बधाई हो, यह एक बहुत अच्छा लेख है, स्पष्ट और सुपाच्य है। बहुत बहुत धन्यवाद
उपयोगकर्ता नाम और पासवर्ड दर्ज करने पर यह मुझे 500 त्रुटि देता है
AuthType बेसिक
प्रामाणिक "टोके टो"
AuthUserFile /var/www/html/.pass/.htpasswd
उपयोगकर्ता अकीरा की आवश्यकता है
पेरोडना अन्य टिप्पणियों को देखे बिना टिप्पणी करने के लिए मेरे लिए कितना अच्छा होता है।
महान महान पोस्ट काम करता है
नमस्ते, अच्छा ट्यूटोरियल, लेकिन क्या "htpasswd" का विकल्प है? मैं पूछता हूं कि मैं लिनक्स मिंट 17.3 का उपयोग क्यों कर रहा हूं और मेरे पास कमांड नहीं है ... क्या मुझे इसे स्थापित करना है?
ठीक है, मुझे यह समझ में आया ... मुझे सूडो एप्ट के साथ इसे स्थापित करना था - अपाचे 2-बर्तन स्थापित करें
नमस्कार, उत्कृष्ट ट्यूटोरियल, मैंने इसे बिल्कुल यहाँ इंगित किया था, केवल एक चीज यह है कि बिंदु 2 में इंगित किए गए कार्य को निष्पादित करने के बजाय:
नैनो / etc / apache2 / साइट-उपलब्ध / डिफ़ॉल्ट
इसने मेरे साथ काम किया
नैनो /etc/apache2/sites-enabled/000-default.conf
अभिवादन, यह मेरे लिए काम नहीं करता है does मेरा फ़ोल्डर मेरे सर्वर पर दिखाई नहीं देता है, अर्थात, मैंने अपने / var / 222 / html / सामग्री फ़ोल्डर की सुरक्षा की है, और जब मैं ब्राउज़र से प्रवेश करता हूं तो सामग्री फ़ोल्डर प्रकट नहीं होता है। मदद