DDOS Protection باستخدام كلاودفلير – الجزء الثاني







اذا اطلعت على الجزء اﻷول من سلسلة الحماية من الـ DDOS باستخدام كلاودفلير فهناك بعض النقاط التي يجب تنفيذها على السيرفر لتعمل الخدمة بشكل سليم. 1. الأيبي الحقيقي للزائر كلاودفلير هي بالنهاية Proxy يقوم بتمرير الاتصالات من الزائر وإلى سيرفرك, ولهذا فان السيرفر لديك سيتعامل مع كلاودفلير على أنها الزائر ويظهر الأيبي الخاص بخدمة كلاودفلير في سجلات سيرفرك وليس الأيبيهات الحقيقية للزائر في الـ HTTP Server أو من خلال الـ TCP. الصورة التالية من كلاودفلير توضح أكثر.

كلاودفلير تقوم بتمرير الـHTTP Headers حتى وصولها لسيرفرك ولكي نضمن ظهور الأيبي الحقيقي للزائر سنحتاج للتعامل مع 2 هيدرز وهم ( CF-Connecting-IP أو X-Forwarded-For ) كيف ؟
هناك أكثر من موديول واعداد يمكننا الاعتماد عليه في ظهور الأيبي الحقيقي للزائر في الويب سيرفر ولنبدأ بالسي بنل :

1. السي بنل
اذا كنت تستخدم cPanel/WHM فأنت محظوظ ﻷن العملية ستكون أسهل بكثير, كلاودفلير قامت بنشر موديول mod_cloudflare يمكن دمجه مع الـ EasyApache بسهولة عن طريق الخطوات التالية من الشيل:

رمز Code:
bash (curl -s https://raw.githubusercontent.com/cloudflare/mod_cloudflare/master/EasyApache/installer.sh)
/scripts/easyapache

بعد تشغيل السكربت وفتح الـEasyApache يتم اختيار Mod CloudFlare من Short Options List والبدأ بالتثبيت.

2. Nginx

– اذا كنت تسخدم Nginx, تأكد من تفعيل الموديول ngx_http_realip_module.
– اضافة كافة ايبيهات كلاودفلير بالموديول بملف nginx.conf داخل http.

رمز Code:
set_real_ip_from CLOUDFLAREIP;
set_real_ip_from CLOUDFLAREIP;
set_real_ip_from CLOUDFLAREIP;
real_ip_header CF-Connecting-IP; أو real_ip_header X-Forwarded-For;

مع استبدال CLOUDFLAREIP بالأيبيهات الموجودة بالرابط التالي
https://www.cloudflare.com/ips-v4
يمكنك اختصار هذه الخطوات بتنفيذ السكربت التالي

رمز Code:
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do sed -i "/http {/a set_real_ip_from $ip;" nginx.conf ; done
LASTIP=$(curl -s https://www.cloudflare.com/ips-v4 | head -n 1 | cut -d "/" -f1)
sed -i "/$LASTIP/a real_ip_header CF-Connecting-IP;"  /etc/nginx/nginx.conf

– اعادة تشغيل Nginx

3. NginxCP
اذا كنت تستخدم NginxCP فيمكن اضافة ايبيهات كلاودفلير عن طريق نفس الموديول بملف : /etc/nginx/proxy.inc , هذا الملف مضاف Include بداخل الـ Nginx VHOSTS.

رمز Code:
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do echo "set_real_ip_from $ip;" >> /etc/nginx/proxy.inc ; done
echo "real_ip_header CF-Connecting-IP;" >> /etc/nginx/proxy.inc

– اعادة تشغيل Nginx

2. الفايرول
من الضروري عدم عمل RateLimit ﻷي من ايبيهات كلاودفلير من أي برنامج حماية لديك على السيرفر حتى لا يتم حجب أيبيهاتهم وبالتالي عدم استطاعة كلاودفلير الوصول لموقعك.
– اذا كنت تستخدم CSF فيمكنك السماح بايبيهات كلاودفلير بملف /etc/csf/csf.allow وملف /etc/csf/csf.ignore
– اذا كنت تستخدم APF يتم السماح للأيبيهات بملف /etc/apf/allow_hosts.rules.

ولضمان حماية أفضل يمكن ايقاف البورت 80,443 من خلال TCP_IN/IG_TCP_CPORTS والسماح ﻷيبيهات كلاودفلير فقط بالوصول للسيرفر عن طريق بورت 80,443

رمز Code:
# CSF
for ip in $(curl -s https://www.cloudflare.com/ips-v4) ; do echo "tcp|in|d=80|s=$ip" >> /etc/csf/csf.allow ; done
for ip in $(curl -s https://www.cloudflare.com/ips-v4) ; do echo "tcp|in|d=443|s=$ip" >> /etc/csf/csf.allow ; done
csf -r
رمز Code:
# APF
for ip in $(curl -s https://www.cloudflare.com/ips-v4) ; do echo "tcp:in:d=80:s=$ip" >> /etc/apf/allow_hosts.rules ; done
for ip in $(curl -s https://www.cloudflare.com/ips-v4) ; do echo "tcp:in:d=443:s=$ip" >> /etc/apf/allow_hosts.rules ; done
apf -r

في الموضوع القادم باذن الله سنتحدث عن افكار وحلول لكيفية اكتشاف الايبي الحقيقي للسيرفر. شكرا لكم,


http://www.traidnt.net/vb/traidnt2622343/