
ما هو ModSecurity?
ModSecurity هو أكثر الجدارات الحماية ضد الهجمات الشائعة للتطبيقات الويب المفتوحة المصدر الشهيرة (WAF) التي كانت أصلاً مصممة لخادم ويب أباتشي الذي يوفر حماية مكثفة لتطبيقات الويب الخاصة بك (مثل ووردبريس ، جوملا ، أوبن كارت ، إلخ) ضد مجموعة واسعة من الهجمات الطبقة 7 (HTTP). يمكن لModSecurity العمل كوحدة خادم الويب ويمكنه من تصفية الهجمات مثل اختراق الاستعلام ، البرمجة عبر الموقع ، تضمين الملفات المحلية ، إلخ
cPGuard WAF
cPGuard WAF هو مجموعة من قواعد ModSecurity التي يمكنها من منع معظم الهجمات الويب العامة ضد تطبيقات الويب الخاصة بك. وهو مدعوم بواسطة [قواعد ModSecurity Commercial Malware.Expert] (https://malware.expert/modsecurity-rules/) لخوادم الاستضافة الويب. وهي مجموعة من القواعد المحصورة التي كتبت في المنشأة وتوفر حماية ضد الهجمات المصغرة والتلقائية ولديها قواعد واضحة لحماية أجهزة التحكم في المحتوى مثل ووردبريس ، جوملا ، إلخ
تثبيت ModSecurity مع Nginx على Debian / Ubuntu
تحتاج إلى تثبيت ModSecurity 3.0 (libmodsecurity) لتمكين دعم وحدة ModSecurity مع خادم Nginx الخاص بك. مشروع ModSecurity 3 لا يزال قيد التطوير السريع ويفتقد بعض الميزات المتاحة في الإصدارات 2.9.x. ولكن ModSecurity 3 يتحسن ويأتي مع المزيد من الميزات في جميع الإصدارات
الخطوة 1. تثبيت Nginx
إذا لم يكن لديك خادم Nginx المثبت بالفعل على الخادم الخاص بك ، فقم بتثبيت Nginx عبر الأمر التالي. إذا كان لديك Nginx مثبتًا بالفعل ، يمكنك تجاهل هذه الخطوة.
$ sudo apt install nginx
الخطوة 2 تنزيل وضغط ModSecurity
قم بتثبيت التبعيات البناء عبر الأمر التالي
apt-get install libtool autoconf build-essential libpcre3-dev zlib1g-dev libssl-dev libxml2-dev libgeoip-dev liblmdb-dev libyajl-dev libcurl4-openssl-dev libpcre++-dev pkgconf libxslt1-dev libgd-dev automake
الآن تحتاج إلى تنزيل ModSecurity
$ cd /usr/local/src
$ git clone --depth 100 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity
$ cd ModSecurity
$ git submodule init
$ git submodule update
الآن قم بتجزئة ModSecurity وقم بتثبيته على الخادم الخاص بك
# Generate configure file
sh build.sh
# Pre compilation step. Checks for dependencies
./configure
# Compiles the source code
make
# Installs the Libmodsecurity to **/usr/local/modsecurity/lib/libmodsecurity.so**
make install
خطوة 3. تحميل وضغط مصدر رابط مودسيكوريتي v3 لإنجن إكس
قم بتشغيل “nginx -V” ولاحظ نسخة مخدم Nginx الخاص بك. الآن تحتاج إلى تنزيل نسخة مصدر نغينس المتطابقة ومصدر رابط مودسيكوريتي لمخدمك. إستخدم المصدر لإنشاء وحدة Libmodsecurity لمخدم Nginx الخاص بك. افتح الأوامر التالية وشغلها واحدة بعد الأخرى للترتيب.
$ mkdir /usr/local/src/cpg
$ cd /usr/local/src/cpg
$ wget http://nginx.org/download/nginx-1.21.4.tar.gz
$ tar -xvzf nginx-1.21.4.tar.gz
# Download the source code for ModSecurity-nginx connector
$git clone https://github.com/SpiderLabs/ModSecurity-nginx
ضغط Nginx
الآن نحتاج إلى ضغط Nginx مع وحدة ModSecurity. لن نضطط / نثبت Nginx نفسه ، ولكن نضغط وحدة Nginx فقط. لذلك ، تأكد من أن الحزمة Nginx هي مضغوطة مع علامة “–with-compat”. ستجعل الوحدة الثنائية متوافقة مع البرنامج النصي Nginx الحالي الخاص بك. يمكنك استخدام الأمر التالي لضغط Nginx + ModSecurity متوافق مع الوحدات الحالية الخاصة بك
$ cd nginx-1.21.4
$ ./configure --with-compat --with-openssl=/usr/include/openssl/ --add-dynamic-module=/usr/local/src/cpg/ModSecurity-nginx
الآن نحتاج إلى بناء الوحدات ونسخها إلى دليل وحدة Nginx
$ make modules
$ cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/
الخطوة 4: تحميل ModSecurity Module إلى Nginx
افتح الملف /etc/nginx/modules-enabled/50-mod-http-modsecurity.conf وأضف المحتويات التالية إليه.
load_module modules/ngx_http_modsecurity_module.so;
الخطوة 5: تثبيت تكوين Nginx
- افتح الملف /etc/nginx/nginx.conf وأضف السطر التالي بعد تضمين ” /etc/nginx/sites-enabled/*.conf “
include /etc/nginx/cpguard_waf_load.conf;
- اضف المحتويات التالية إلى /etc/nginx/cpguard_waf_load.conf
modsecurity on;
modsecurity_rules_file /etc/nginx/nginx-modsecurity.conf;
- اضف المحتويات التالية إلى /etc/nginx/nginx-modsecurity.conf
SecRuleEngine On
SecRequestBodyAccess On
SecDefaultAction "phase:2,deny,log,status:406"
SecRequestBodyLimitAction ProcessPartial
SecResponseBodyLimitAction ProcessPartial
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072
SecPcreMatchLimit 250000
SecPcreMatchLimitRecursion 250000
SecCollectionTimeout 600
SecDebugLog /var/log/nginx/modsec_debug.log
SecDebugLogLevel 0
SecAuditEngine RelevantOnly
SecAuditLog /var/log/nginx/modsec_audit.log
SecUploadDir /tmp
SecTmpDir /tmp
SecDataDir /tmp
SecTmpSaveUploadedFiles on
# Include file for cPGuard WAF
Include /etc/nginx/cpguard_waf.conf
الخطوة 6. تكوين معلمات cPGuard WAF
بمجرد الانتهاء من الخطوات السابقة بنجاح، يمكنك استخدام قيم المعلمات التالية في ملف تكوين cPGuard Standalone (https://opsshield.com/help/cpguard/how-to-modify-standalone-configuration-file-cpguard-ini/):
waf_server = nginx
waf_server_conf = /etc/nginx/cpguard_waf.conf
waf_server_restart_cmd = /usr/sbin/service nginx restart
waf_audit_log = /var/log/nginx/modsec_audit.log
هذا كل شيء
يجب تمكين ModSecurity بشكل جيد وبمجرد تمكين cPGuard WAF، فإن الخادم محمي ضد الهجمات الإلكترونية.