كيفية حماية مواقعنا باستخدام أمثلة .htpasswd +

لأسباب عديدة ، قد يكون من المفيد جدًا التحكم في الوصول إلى أدلة معينة على خادم ويب أو ببساطة إلى محتويات صفحتنا أو مدونتنا عن طريق خدمة مصادقة تعتمد على اسم المستخدم وكلمة المرور. أنا أتحدث عن شيء مثل النافذة النموذجية التي تظهر عندما نريد الدخول إلى موقع ويب بخدمات مقيدة.

هناك عدة طرق لإنشاء نوافذ بنموذج مصادقة ولكن يتم توفير حل مثير للاهتمام على مستوى الخادم تباسود. إنها أداة تتمثل وظيفتها في تخزين كلمات المرور في شكل مشفر لاستخدامها بواسطة Apache في خدمات المصادقة. سيسمح لنا استخدامه بإظهار أدلة أو ملفات معينة عبر http فقط للمستخدمين المحددين ودون أن يكون متاحًا مجانًا للجميع.

أفهم أنه ليس موضوعًا مبهرجًا جدًا ولكنه قد يكون مفيدًا للبعض. لكي لا أقتلهم بالملل ، سأستخدم الصور لجعلها تعليمية أكثر.

الاعتبارات السابقة: سأستخدم أوبونتو خادم 12.04.1 y أباتشي 2.2.22 في بيئة خاضعة للرقابة.

نحن نبدأ.

كما قد يعرف البعض بالفعل ، يتم تخزين مواقع Apache المتاحة افتراضيًا في الدليل / فار / على شبكة الاتصالات العالمية / وفي هذا المثال ، سأقوم بإنشاء دليل بقالب HTML وسأحاول حمايته باستخدام htpasswd.

الدليل المطلوب حمايته هو / var / www / example / حيث وضعت الصفحة التالية.

على الخادم في المتصفح

1. سنقوم بإنشاء ملف .htpasswd.

المكان الذي سيتم وضعه فيه ذو أهمية مناسبة ووضعه خارج دليل عام يمكن أن يكون أكثر من الموصى به. في حالتي ، سأضعه في مجلدي الشخصي (وهو ليس دليل Apache عام) وباسم htpasswd. (بداهة ، ليس من الضروري تسميتها بهذه الطريقة ، لكن الشيء المخفي دائمًا ما يكون جيدًا).

للمستخدمين الجدد على Linux. لإخفاء دليل أو ملف ، من الضروري فقط بدء اسمه بنقطة (.).

باستخدام الأمر التالي ، أقوم بإنشاء ملف .htpasswd لمستخدم ويب قمت بتسميته باسم: "Luke".

# htpasswd -c /home/krel/.htpasswd Luke

سيطلب منا توفير كلمة المرور مرتين ، في حالتي وضعت "skywalker" (بدون علامات اقتباس). في بيئة غير خاضعة للرقابة ، يجب علينا إنشاء كلمات مرور أقوى. التشفير الافتراضي على Linux هو MD5 ولكن في Unix يعد تطبيقًا قياسيًا لـ crypt () وكلمات المرور التي تقل عن 8 أحرف يمكن أن تكون ضعيفة. الآن لدي شك إذا كان هو نفسه في BSD.

الأمر له هذا الهيكل:

  • -c → لإنشاء الملف
  • /home/krel/.htpasswd → المسار المطلق للملف.
  • Luke → اسم المستخدم (يمكن أن يكون ما تريد)

وبالمثل ، أنا لا أجبر أي شخص على استخدام الجهاز عند وجود خدمات له على الإنترنت:
http://www.web2generators.com/apache/htpasswd_generator

http://www.htaccesstools.com/htpasswd-generator/

نقوم بنسخ النتيجة في ملف نصي وباسم .htpasswd إذا كنت ترغب في ذلك. بخصوص هذه الطريقة ، لا تتوقف عن قراءة ما أعلق عليه في الفقرة التالية.

في حالتنا سنرى أن الملف قد تم إنشاؤه حيث توقعنا منهم /home/krel/.htpasswd. لقد أبرزت في الصورة أنه بهذه الطريقة ، ينتمي الملف إلى مجموعة apache والمستخدم ، والتي تسمى في Ubuntu www-data. هذا مهم لأننا إذا أنشأنا ملف .htpasswd بأي طريقة أخرى ، يجب أن نتأكد من أن لديه أذونات 644.

حسنًا ، سنرى الآن كيف تبدو شجاعتهم: كما ترى ، يوجد المستخدم (لوك) لكن كلمة المرور مشفرة.

بهذه الطريقة قمنا بالفعل بإنشاء وتصميم .htpasswd للمستخدم Luke ، وفي النهاية لا يعدو كونه حاوية لكلمة المرور. ستكون عبارة "الكل بأمر واحد" عبارة عن شعار جيد.

2. تكوين Apache لاستخدام تلك الخدمة والسماح بها على الموقع.

# nano /etc/apache2/sites-available/default

 

إذا كان لديك العديد من المضيفين ، فيجب أن يعملوا على كل منهم ، وفي حالتي ليس لدي سوى المضيف الذي يأتي افتراضيًا. لا تنس أنه من الجيد دائمًا عمل نسخة احتياطية من هذا الملف.

هذا الملف له الهيكل الافتراضي:

ServerAdmin webmaster @ localhost

..................

..................

سيتم تحديد استخدام .htpasswd للوصول إلى دليل معين ضمن عناوين Virtualhost. نقوم بذلك كما تظهر الصورة أدناه ومناسبة لمثالنا: حسن. أشرح السطور:

عليك أن تضع الدليل للحماية.

AuthType الأساسية

إنه نوع المستخدم وكلمة المرور التي يتم التفاوض عليها مع المتصفح ، وفي هذه الحالة يكون أساسيًا ، بدون تشفير.

هناك نوع آخر من التفاوض: الملخص ، هذا يقوم بتشفير اسم المستخدم وكلمة المرور ، ولكن الكلمة الأخيرة هي أن المتصفح لديه ما إذا كان يدعم الخدمة المذكورة. يمكن القول أن Digest هو تطبيق أكثر قوة إلى حد ما ضد المتشممون. أدعوكم للخوض في هذا.

AuthName "اطرق الباب قبل الدخول."

إنها رسالة ستظهر للمستخدم في المتصفح مع نموذج تسجيل الدخول ويمكن أن تكون هي الرسالة التي نريدها.

AuthUserFile /var/www/.pass/.htpasswd

مسار ملف .htpasswd. لهذا السبب أقول إنه ليس من الضروري حتى تسميته .htpasswd ، فإن مجرد وضع المسار سيعمل بنفس الطريقة.

تتطلب صالحة للمستخدم

تم تصميم هذا الخط لعدة مستخدمين بكلمات مرور فردية. إذا كان مستخدمًا واحدًا ، فيمكن تلخيصه على أنه المتغير التالي.

يتطلب المستخدم el_que_sea

في المثال الخاص بي يمكن أن يكون: تتطلب المستخدم Luke

وأخيرًا نرفق كل شيء به

نعيد تشغيل اباتشي:

# service apache2 restart

لنجرب.

إذا لم نحقق المصادقة بشكل صحيح ، فسنحصل على خطأ 401. على الجانب الآخر ، إذا وضعنا اسم المستخدم وكلمة المرور الصحيحين ، فسنسمح لنا بالمرور دون أي إزعاج كبير.

 

نصائح إضافية.

  • لإضافة المزيد من المستخدمين إلى ملف htpasswd تم إنشاؤه بالفعل ، يمكنك استخدام هذا الأمر

htpasswd -mb /home/krel/.htpasswd كلمة مرور المستخدم

إذا قمت بتعيين "مطلوب مستخدم" وليس "مطلوب مستخدم صالح" ، يجب إضافة المستخدم الجديد متبوعًا بالمستخدم السابق ومفصولة بمسافة. مثال:

طلب المستخدم Luke Anakin

  • استخدم مجموعات المستخدمين

إذا فضلنا أو احتجنا العمل مع مجموعات على الموقع التالي بدلاً من المستخدمين الفرديين ، فإنهم يشرحون ذلك بتفصيل كبير وهو مقال ممتاز.
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 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني.

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   كريل قال

    الآن بعد قراءة المنشور مرة أخرى ، أدركت أنني أحدثت فوضى صغيرة. عندما أشرح الأسطر في تكوين الموقع ، في AuthUserFile ، أضع /var/www/.pass/.htpasswd عندما يجب أن يكون:
    /home/krel/.htpasswd.

    في الصورة ، كل شيء على ما يرام ولكن هناك تهرب مني ، لأنني قد كتبت المقال مسبقًا بهذا المسار ، لكن في اللحظة الأخيرة غيرته ويبدو أنني فاتني تصحيحه.

    أعتذر مقدما.

  2.   فرناندو قال

    أي بديل عن نوتيلوس ؟؟

    1.    كريل قال

      أعتقد أن ما تسأل عنه يسير في الاتجاه الآخر ولكني أجيب عليك على أي حال.
      أعتقد أنه مع Cryptkeeper سيكون من المفيد حماية الأدلة والأشياء من هذا القبيل.

      إذا كنت صادقًا إذا كان هناك شيء أكرهه في جنوم هو نوتيلوس. Dolphin (KDE) أقوى بكثير على وجه التحديد لهذه الأشياء من الحماية والتشفير باستخدام gpg وما إلى ذلك ...

  3.   DMoZ قال

    Krel ، شكرًا على البرامج التعليمية الكاملة التي تحضرها هنا وخاصة لكونها ليست مواضيع شائعة جدًا ...

    في صحتك !!! ...

  4.   خوان كارلوس قال

    مرحبًا ، سار كل شيء على ما يرام ولكن .. عندما أغلق علامة تبويب chrome وفتح علامة تبويب أخرى ، أكتب العنوان ولا يطلب مني كلمة المرور ...

  5.   الصديق قال

    الذي قال أنه لم يكن براقة.
    كان هذا فقط ما كنت أبحث عنه ، وأوضح بشكل أفضل أنه مستحيل
    شكرا جزيلا.
    تحية

  6.   باسكو 7 قال

    مرحبًا ، أشكرك كثيرًا على المعلومات ، خاصة الجزء المتعلق بإضافة مستخدمين متعددين في ملف .htpasswd.

    باركك الله!

  7.   مهتدي قال

    مبروك مقال جيد جدا وواضح وسهل الهضم. شكرا جزيلا

  8.   إدواردو قال

    يعطيني خطأ 500 عندما أدخل اسم المستخدم وكلمة المرور

    AuthType الأساسية
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    يتطلب المستخدم أكيرا

  9.   إدواردو قال

    ما أعظم ما يحدث لي للتعليق دون النظر إلى التعليقات الأخرى perodna.
    تعمل وظيفة رائعة رائعة

  10.   سومنوس سينيور قال

    مرحبًا ، برنامج تعليمي جيد ، ولكن هل يوجد بديل لـ "htpasswd"؟ أسأل لأنني أستخدم linux mint 17.3 وليس لدي الأمر ... هل يتعين علي تثبيته؟

  11.   سومنوس سينيور قال

    حسنًا ، لقد اكتشفت ذلك ... اضطررت إلى تثبيته باستخدام sudo apt-get install apache2-utils

  12.   فرناندو مونتيلا قال

    مرحبًا ، برنامج تعليمي ممتاز ، لقد فعلت ذلك تمامًا كما هو موضح هنا ، الشيء الوحيد هو أنه بدلاً من تنفيذ ما هو مذكور في النقطة 2:

    nano / etc / apache2 / sites-available / default

    عملت معي

    nano /etc/apache2/sites-enabled/000-default.conf

  13.   خورخي رودريجو توريز ارامايو قال

    تحياتي ، إنه لا يعمل بالنسبة لي 🙁 لا يظهر مجلدي على الخادم الخاص بي ، أي أنني قمت بحماية مجلد / var / 222 / html / content ، وعندما أدخل من المستعرض لا يظهر مجلد المحتوى. مساعدة