الأخبار التكنولوجية والاستعراضات والنصائح!

كيفية منع هجوم DDoS مع Nginx

تقوم هجمات "رفض الخدمة" أو هجمات "DDoS" بتفكيك موارد الخادم عبر تكتيكات الاتصالات الرقمية المسيئة. هذه الأنواع من الهجمات هي الغارة المنظمة لعالم الكمبيوتر. تتحد العديد من الإجراءات المضادة المزعجة المذهلة لتكوين تهديد هائل بما يكفي لإيقاف خادم محنك في مساراته. والأسوأ من ذلك كله ، أن هناك وسائل متعددة لشن حرب العصابات على شبكة الإنترنت ضد الخوادم المطمئنة. لحسن الحظ ، يمكن تكوين الخوادم للرد.

Nginx ، نظام خادم مشهور للغاية لأجهزة Unix ، يأتي بوظائف مدمجة كافية للحد من فعالية هجمات DDoS.

فيما يلي بعض الخيارات الفعالة للتعامل مع مثل هذه التهديدات على خادم يعمل بنظام Nginx:

نسخ احتياطي ملف التكوين الخاص بك

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

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

تكوين نسخة Nginx

بمجرد الانتهاء ، تكون مستعدًا للمضي قدمًا.

فحص حركة المرور

مراقبة حركة مرور الخادم الخاص بك يجعل من السهل تحسين الأمن وتنفيذ تكتيكات إضافية أسفل الخط. Nginx لديه وحدة صنعت خصيصا لهذا الغرض.

إعداد صفحة الحالة

عادةً ما يأتي Nginx مع وحدة نمطية تسمى "حالة كعب الروتين" (http_stub_status_module) التي تتيح دمج هذا النوع من الوظائف في بيئة الخادم الخاصة بك بسهولة. أولاً ، تحقق من ذلك باستخدام الأمر التالي:

العثور على وحدة Nginx

أو قم بتوجيه ما سبق إلى grep للعثور عليه بشكل أسرع:

nginx -V 2>&1 | grep -o with-http_stub_status_module

وحدة Nginx Grep

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

يعد إعداد صفحة الحالة التي يمكنك التحقق منها أمرًا بسيطًا ، لكنك ستحتاج أيضًا إلى قصر الوصول إليها على الحد الأدنى (جهازك) للحفاظ عليها آمنة. ابدأ بفتح ملف التهيئة الرئيسي للخادم الموجود على "/etc/nginx/nginx.conf".

ملف التكوين Nginx

افتحها وأضف الكود التالي إلى "http http" لتنشيط الوحدة النمطية ، واستبدال معلوماتك الخاصة بدلاً من "localhost" ، و "/ status_page" و "127.0.0.1":

Note: ستحتاج إلى امتيازات sudo لتعديل هذا الملف.

رمز حالة Nginx

الآن اختبار التكوين الخاص بك:

التكوين اختبار Nginx

إذا كان كل شيء على ما يرام ، أرسل الخادم الخاص بك إشارة إعادة التحميل:

sudo systemctl reload nginx

خادم تحديث Nginx

للوصول إلى صفحة الحالة الخاصة بك ، قم بزيارة موقع server_name الخاص بك متبوعًا بـ "/ status_page" في متصفح الويب أو باستخدام أداة سطر الأوامر مثل curl. (يعد هذا مفيدًا إذا لم يتم تحديث ذاكرة التخزين المؤقت للمتصفح لديك تلقائيًا.) فيما يلي هو الأمر curl للوصول إلى الصفحة في أمثلةنا:

curl localhost/status_page

حالة Nginx الضفيرة

في المتصفح ، يشبه ما سبق الصورة التالية.

حالة متصفح Nginx

تحقق من سجلات الوصول

إذا لاحظت حركة مرور غير طبيعية عند التحقق من صفحة الحالة المكونة أعلاه ، فقد يكون من الجيد مراجعة سجل وصول الخادم. يمكن العثور على هذا في "/var/log/nginx/access.log". يسرد السجل طرق HTTP المستخدمة وتاريخ / وقت محاولات الوصول ووكلاء المستخدم والصفحات التي تم الوصول إليها.

سجل الوصول إلى Nginx

الحد من الاتصالات

من بين العديد من التكتيكات المفيدة التي تستحق المحاولة لدرء هجمات DDoS ، واحدة من أبسط وأكثرها فعالية هو الحد من معدلات حركة المرور الواردة.

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

تحدد "المنطقة" اسم وحجم (بالميغابايت في هذه الحالة) للمساحة في الذاكرة حيث يتم تخزين طلبات المستخدم. يحدد "المعدل" العدد الإجمالي للطلبات التي يقبلها Nginx كل ثانية (10 في هذا المثال). فكر في هذا الرمز كقاعدة والرمز الذي يتبع كقاعدة لهذه القاعدة:

في الواقع ، يعمل الرمز أعلاه أكثر قليلاً من مجرد تطبيق قاعدة الحد ؛ كما أنه يضيف قائمة انتظار صغيرة تصل إلى عشرين طلبًا للتعامل بهدوء مع الاتصالات الشرعية التي تظهر بشكل أسرع قليلاً من المعتاد ، مما يؤدي إلى تجاوز كل من القاعدة وطوابير الخطأ 503 للعميل. إليك ما يبدو عليه التوجيهان في nginx.conf:

كود Nginx الحد

القائمة السوداء عنوان IP

إذا كان بإمكانك الحصول على عنوان IP الخاص بـ DDoSing على الخادم الخاص بك ، فيمكنك ببساطة وضعه في القائمة السوداء وإسقاط أي اتصال ناشئ عن عنوان IP هذا.

أضف الكود التالي إلى توجيه الخادم الخاص بك:

حظر الطلب على بعض الملفات

إذا كان هجوم DDoS يستهدف ملفات معينة على الخادم الخاص بك – على سبيل المثال ، ملف xmlrpc.php على WordPress (هذا ملف مستهدف بشكل كبير في معظم خوادم WordPress) – يمكنك حظر جميع الطلبات الموجهة إليه. أضف هذا الكود إلى توجيه الخادم الخاص بك:

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

هل هذه المقالة مفيدة؟ نعم لا