الصفحة الرئيسية مواضيع ومقالات البرامج والأدوات haproxy للحماية من هجمات حجب الخدمة
haproxy للحماية من هجمات حجب الخدمة
تقييم المستخدمين: / 7
عاديممتاز 
الكاتب أحمد عبدو   
الأحد, 12 ديسمبر 2010 03:01

هناك الكثير من طرق الحماية من هجمات حجب الخدمة كاستخدام جدار ناري و غيرها من الطرق المختلفة ولكن اليوم سأتكلم عن تجربتي للبرنامج الرائع HAProxy الذي استعمله لموازنة الحمل Load balancing و Reverse proxy.

 

بالامكان استخدام اداة haproxy للقيام بالكثير من الامور و لكن اليوم سنشرح كيفية استخدام الاداة للحماية من هجمات حجب الخدمة او Denial of Service Attacks.
فكرة عمل الاداة هي تحديد عدد الاتصالات الى السيرفر في الثانية و مدة كل اتصال.

تنصيب البرنامج:

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

mkdir /usr/local/haproxy cd /usr/local/haproxy tar -xzvf haproxy-*.tar.gz make TARGET=OS

 

مع تغيير OS الى نظام التشغيل الذي نستخدمه, مثلا للتريكب على نظام لينكس 32bit ننفذ:

make TARGET=linux26 ARCH=i386 make install mv haproxy-*.tar.gz haproxy

 

اعدادات البرنامج:

اعدادات البرنامج بسيطة فبامكاننا تعديل اي خيار في ملف haproxy.cfg حسب حاجتنا ولكن هذه الاعدادات هي الأنسب لمحاربة برامج حجب الخدمة و ستوفر لنا الحماية من أشهر البرامج مثل SlowLoris و nkiller2.
في البداية نقوم بادخول الى مجلد البرنامج و فتح ملف الاعدادات.

cd haproxy
vi haproxy.cfg

الان نضع فيه الاعدادات التالية.

global
daemon
maxconn 20000 # count about 1 GB per 20000 connections
pidfile /var/run/haproxy.pid
stats socket /var/run/haproxy.stat mode 600

defaults
mode http
maxconn 19500 # Should be slightly smaller than global.maxconn.
timeout client 60s # Client and server timeout must match the longest
timeout server 60s # time we may wait for a response from the server.
timeout queue 60s # Don't queue requests too long if saturated.
timeout connect 4s # There's no reason to change this one.
timeout http-request 5s # A complete request may never take that long.
# Uncomment the following one to protect against nkiller2. But warning!
# some slow clients might sometimes receive truncated data if last
# segment is lost and never retransmitted :
# option nolinger
option httpclose
option abortonclose
balance roundrobin
option forwardfor # set the client's IP in X-Forwarded-For.
retries 2

frontend public
bind :80 # or any other IP:port combination we listen to.
default_backend apache

backend apache
# set the maxconn parameter below to match Apache's MaxClients minus
# one or two connections so that you can still directly connect to it.
server srv 127.0.0.1:8080 maxconn 254

# Enable the stats page on a dedicated port (8888). Monitoring request errors
# on the frontend will tell us how many potential attacks were blocked.
listen stats
# Uncomment "disabeled" below to disable the stats page :
# disabled
bind :8888
stats uri /

تأكد من تغيير 127.0.0.1 الى IP الخاص بك و 8080 الى المنفذ الخاص بخادم الويب الخاص بك.

للتأكد من صحة الاعدادات ننفذ الامر:

./haproxy -f haproxy.cfg -c

الناتج يجب ان يكون كالتالي:

Configuration file is valid

 

تشغيل haproxy:

./haproxy -f haproxy.cfg

الخيار f- لاختيار ملف الاعدادات الذي قمنا باعداده في الخطوة السابقة.

للدخول على الواجهة الرسومية للاداة نذهب الى:

http://haprxyip:8888

قم بتغيير haproxyip الى عنوان السيرفر المنصبة عليه الاداة.


مثال عن ملف اعدادت البرنامج للحماية من هجمات حجب الخدمة: antidos.cfg

الموقع الرسمي للأداة:  haproxy

 

عن الكاتب:


أحمد عبدو, مدير نظم تشغيل لينكس ويونكس في شركة NileWeb. سفير من سفراء فيدورا في مصر مهتم باللينكس والمصادر المفتوحة, تطبيقات الويب والزيادة من سرعتها واختبار اختراقها.

التعليقات (7)Add Comment
hak4
...
أرسلت بواسطة: hak4 في December 12, 2010
مشكور اخي أحمد عبدو على الشرح الممتاز
Ahmed Abdo
...
أرسلت بواسطة: Ahmed Abdo في December 12, 2010
اهلا وسهلا بك اخي الكريم ويسعدني ان المقالة أعجبتك
ولكن من يجب ان تشكره فعلا هو اخي الكريم زيد مدير تحرير الموقع فقد قام بعمل رائع في تنسيق واضافة الكثير على المقال

شكرا لك اخي زيد

تحياتي واحترامي :)
احمد مسلم
...
أرسلت بواسطة: احمد مسلم في December 13, 2010
بارك الله فيك
أحمد
...
أرسلت بواسطة: أحمد في December 13, 2010
جميل وشرح رائع ...
كنت ابحث عن طريقة ضد هجوم حجب الخدمة ...

أكرر شكري لك ..ولزيد
prince
---------------
أرسلت بواسطة: prince في December 13, 2010
يسلمو اخ احمد عبدو على الشرح
yacine
...
أرسلت بواسطة: yacine في December 22, 2010
وعلى windows كيف يشتغل لو سمحت أخي
فراس الخطيب
سؤال
أرسلت بواسطة: فراس الخطيب في December 25, 2010
في حال تم تحديد عدد الاتصالات ومدتها هل تعتقد انها لن تسبب مشكلة لمستخدمين الاتصالات الضعيفة .

كعمل اكثر من ريكويست بسبب بطئ الاتصال وهل تعتمد هذه الاداة على عمل بلوكد لرولز معينة انت تقوم بوضعها ام كيف .

وشكرا لك

أضف تعليق
يجب عليك الاشتراك بالموقع لتتمكن من كتابة التعليقات, الاشتراك مجاني ويستغرق بضع ثوان فقط!
اذا كنت مشترك مسبقا في الموقع فضلاً قم بتسجيل الدخول.

busy
 

SecurityTargets