Nginx هو خادم ويب مجاني ومفتوح المصدر يُستخدم لـ موازنة التحميل، والتخزين المؤقت، وحفظ البيانات مؤقتًا (Caching). منذ إنشائه في عام 2004، اكتسب Nginx شعبية كبيرة في توسيع نطاق خوادم الويب والوكيل العكسي (reverse proxying). ونظرًا لأدائه العالي وقدراته الممتازة على التعامل مع حجم كبير من الاتصالات، فإنه يُستخدم لإدارة حركة المرور الواردة والتحكم فيها.
كيف تعمل مصادقة HTTP؟
في مصادقة HTTP الأساسية، يتم حظر جميع المسارات على الخادم وتتطلب بيانات الاعتماد المناسبة للمصادقة. كلما حاول مستخدم الوصول إلى مورد آمن، يرسل الخادم للمستخدم ترويسة WWW-Authenticate و 401 Unauthorized . إذا كان اسم المستخدم وكلمة المرور اللذان استخدمهما المستخدم صحيحين ومتطابقين مع ملف المفتاح، يتم إنشاء الاتصال، وإلا فسيتم رفضه.
في هذا البرنامج التعليمي، سنرشدك خلال خطوات إعداد مصادقة HTTP الأساسية باستخدام Nginx على Ubuntu 20.04.
المتطلبات الأساسية
لمتابعة هذا البرنامج التعليمي، ستحتاج إلى ما يلي:
- أحدث إصدار من تثبيت Ubuntu على نظامك.
- يجب أن يتمتع مستخدمو النظام بـ امتيازات sudo.
- تثبيت وتكوين Nginx على خادمك.
الخطوة 1: تحديث مستودعات البرامج
قبل تثبيت أي برنامج جديد أو حزمة واجهة برمجة تطبيقات (API) على نظامك، قم بتحديث المستودعات لتجنب الأخطاء أو أي تعارض في الحزم. في البداية، سنقوم بتحديث البرنامج باستخدام الأمر sudo :
|
1 |
sudo apt-get update |
الآن بعد أن قمنا بتحديث مستودعات البرامج، فلنقم بتثبيت حزم apache2 اللازمة.
الخطوة 2: تثبيت الحزم اللازمة
بما أننا نقوم بإعداد مصادقة HTTP لدليل ما، فسنستخدم الأمر htpasswd لإنشاء كلمة مرور مشفرة. قم بتثبيت حزمة apache2-utils باستخدام الأمر التالي:
|
1 |
sudo apt-get install apache2-utils |
الخطوة 3: إنشاء مستخدم وكلمة مرور
في هذه الخطوة، سنقوم بإعداد بيانات اعتماد مصادقة HTTP الأساسية. تحت الدليل الرئيسي، قم بإنشاء ملف .htpasswd المرتبط بالمستخدم. ستكون كلمة المرور مشفرة، ويمكن أن يكون اسم الملف أي شيء من اختيارك. استخدم الأمر التالي لإنشاء الملف وإضافة المستخدم بكلمة مرور مشفرة:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

بعد ذلك، تحقق من الملف الذي تم إنشاؤه حديثًا باستخدام الأمر التالي:
|
1 |
cat /etc/nginx/.htpasswd |
الخطوة 4: تحديث تكوين Nginx
بمجرد حصولنا على بيانات اعتماد مصادقة HTTP الأساسية، فلنقم بإعداد Nginx واستخدامه على موقعنا المستهدف. نحن بحاجة إلى توجيهات auth_basic و auth_basic_user_file لإنشاء مصادقة HTTP الأساسية. قيمة توجيه auth_basic هي بتنسيق سلسلة نصية، بينما قيمة auth_basic_user_file هي المسار إلى ملف كلمة المرور الذي تم إنشاؤه في الخطوة 3.
من المهم تضمين التوجيهين في ملف التكوين الخاص بالموقع المستهدف. ستجد موقع الموقع المستهدف في دليل /etc/nginx/sites-available . افتح ملف التكوين باستخدام محرر nano:
|
1 |
sudo nano /etc/nginx/sites-available/default |
بعد ذلك، أضف كلا التوجيهين تحت قسم location :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # المحاولة الأولى لخدمة الطلب كملف، ثم # كدليل، ثم العودة إلى عرض خطأ 404. try_files $uri $uri/ =404; # قم بإلغاء التعليق لتمكين naxsi في هذا الموقع # include /etc/nginx/naxsi.rules auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
بعد إضافة التوجيه، احفظ ملف التكوين وأغلقه.
الخطوة 5: إعادة تشغيل Nginx
بعد ذلك، أعد تحميل خدمات Nginx أو أعد تشغيلها لتطبيق التغييرات على المضيف الافتراضي الخاص بنا. بعد ذلك، سنحاول الوصول إلى النطاق الآمن باستخدام مصادقة HTTP الأساسية الخاصة بنا. استخدم الأمر التالي لتنشيط خدمات Nginx:
|
1 |
sudo service nginx reload |
الخطوة 6: تأمين الوصول إلى الويب
بمجرد إعادة تشغيل Nginx، فإن الخطوة التالية هي محاولة الوصول إلى عنوان IP أو اسم النطاق في متصفحك المفضل. عند النقر فوق عنوان IP http://your_domain_name/ في متصفحك، ستفتح نافذة تطلب منك إدخال بيانات الاعتماد للمصادقة. بمجرد إدخال اسم المستخدم وكلمة المرور الصحيحين، سترى صفحة Nginx الرئيسية الافتراضية.
خاتمة
في هذا البرنامج التعليمي، تعلمنا كيفية تكوين مصادقة HTTP الأساسية باستخدام Nginx. تعد مصادقة اسم المستخدم/كلمة المرور الأساسية مجرد خيار واحد من بين العديد من خيارات المصادقة لإنشاء اتصال آمن في Nginx.
هناك خيارات قوية أخرى تُستخدم لمصادقة الخادم. على سبيل المثال، تتضمن بعض الطرق الشائعة التي يمكنك استخدامها تكاملات API، وJSON Web Tokens، والمصادقة القائمة على مفتاح SSH. على الرغم من أن الحصول على آليات أمان قوية قد يبدو أمرًا صعبًا في البداية، إلا أنها فعالة للغاية لحماية خصوصيتك.
علاوة على ذلك، هناك العديد من المواد التعليمية والبرامج التعليمية الأخرى حول Nginx والتي يمكنك الوصول إليها من مدوناتنا:
- نظرة عامة على خوارزميات اختيار خادم Nginx وLocation Block
- تثبيت وتكوين Laravel مع Nginx على Ubuntu 20.04
- إعداد Django مع PostgreSQL وNginx وGunicorn على Ubuntu 20.04
حوسبة سعيدة!

التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.