حماية أمان جدار حماية تطبيق الويب لتطبيقات HTTP و HTTPS

نُشرت في 10 سبتمبر 2019

نبذة

توضح المقالة التالية حالة الاستخدام الحقيقي لمزود خدمة الإنترنت أو مزود الاستضافة ، حيث يمثل الوكيل العكسي HTTP / S Load Balancer النقطة الرئيسية للوصول إلى جميع خدمات الويب العامة ، يوضح هذا التكوين مدى سهولة تهيئة WAF متقدمة وقوية ruleset من أجل تأمين تطبيقات الويب القائمة على عناوين IP لمصدر القائمة السوداء ، حيث كل منها VirtualHost يدير قائمته السوداء الخاصة بطريقة يمكن منع عنوان IP عام واحد من الاتصال بها إلى مجال الويب مثل www.company1.com ولكن يسمح للاتصال www.company2.com.

سنركز المقالة في قسمين ، في القسم الرئيسي ، سيعمل تكوين ملف تعريف HTTPS كبديل عكسي مع قائمة من الخدمات المختلفة ، وسيقوم القسم الثاني بشرح كيفية تكوين تطبيق الويب جدار الحماية مجموعة من القواعد التي ستدير قائمة سوداء مختلفة لكل خدمة HTTP / S.

البيئة

يصف المخطط التالي الأجزاء الداخلية من Zevenet WAF. كما هو موضح ، الطبقة الأولى هي وحدة WAF التي تهدف إلى التأكد في مرحلة مبكرة من السماح بالطلبات الآمنة فقط بالمرور إلى وحدة موازنة التحميل ثم إعادة توجيه الطلب إلى الواجهة الخلفية.

أولا ، HTTP مضيف يتم تقييم الرأس ويتم التحقق من عنوان IP للعميل في القائمة السوداء المكونة بالفعل. إذا كان مضيف رأس وعنوان IP العميل يطابق ثم يتم إسقاط الاتصال و 403 المحرمة يتم إرسال استجابة HTTP إلى العميل ، ولكن في حالة أن العميل IP وطلب مضيف لا يتطابق الرأس ، ثم يتم تحديد حركة المرور على أنها غير ضارة وتمريرها إلى وحدة موازن التحميل ، حيث يتم اختيار الوجهة بناءً على طلب HTTP مضيف رأس وأخيرا إعادة توجيهها إلى خادم الواجهة الخلفية المتاحة.

هنا يمكنك العثور على مخطط للداخل جدار حماية تطبيق ويب على سبيل المثال المعطى.

zevenet IPDS WAF

تكوين خدمة HTTP الظاهري

تكوين واحد مخصص عنوان IP الظاهري، في مثالنا 192.168.100.58، من خلال التصفح ل الشبكة> واجهات افتراضية> إنشاء واجهة افتراضية كما هو مبين أدناه:

Zevenet إنشاء VIP

الآن دعنا نذهب لتكوين خدمة موازنة تحميل HTTP ، انتقل إلى LSLB> مزارع ثم انقر فوق الزر إنشاء مزرعة وأدخل تفاصيل الخدمة الافتراضية كما هو موضح أدناه:

Zevenet إنشاء استضافة مزرعة HTTP

ثم اضغط إنشاء.

الآن انقر فوق علامة التبويب العليا الخدمات وإنشاء العديد من الخدمات مثل مواقع الويب المختلفة التي تديرها ، انقر فوق الزر خدمة جديدة، في حالتنا ، سننشئ خدمتين مختلفتين ، واحدة لإدارة الخدمة من أجل www.mycompany1.com واحد آخر ل www.mycompany2.com.

Zevenet إنشاء خدمة HTTP

بمجرد إنشاء الخدمة ، أضف استضافة افتراضية تصفية والخلفية كما هو مبين في الصورة أدناه.

تكوين خدمات Zevenet HTTP

في حالة وجود العديد من مواقع الويب ، يجب عليك فقط إضافة المزيد من الخدمات من أجل تحديد خدمة واحدة مخصصة لإدارة كل موقع ويب من نفس عنوان IP.

الآن تم إجراء تكوين موازنة التحميل ، يتيح تكوين وحدة جدار حماية IPDS Web Application.

تكوين قوائم سوداء

سننشئ قائمة سوداء واحدة لكل خدمة ويب من أجل إدخال عناوين IP المطلوبة في كل قائمة سوداء لمنع الوصول. في مثالنا ، سننشئ قائمتين مختلفتين بالاسم blacklistmycompany1 و blacklistmycompany2واحد لكل خدمة على التوالي.

Zevenet IPDS Blacklist1

سيتم حفظ هذه القائمة السوداء في المسار /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany1.txt.

لقد قمنا بتضمين عناوين 2 IP لأغراض الاختبار ، يرجى مراعاة إضافة أكبر عدد ممكن من عناوين IP حسب الحاجة. أيضا ، القائمة بالفعل القوائم السوداء في ال IPDS وحدة يمكن استخدامها.

Zevenet إنشاء IPDS Blacklist2

سيتم حفظ هذه القائمة السوداء الثانية في المسار /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany2.txt.

ضع في الاعتبار أننا في هذه القائمة السوداء قمنا بتضمين عنوان IP 192.168.1.191، سيتم استخدام عنوان IP هذا لأغراض الاختبار فقط ، حيث سنقوم بتشغيل طلبات HTTP.

تكوين مجموعة قواعد جدار حماية تطبيق الويب

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

نحن بصدد تكوين مجموعة الأوامر، وهي مجموعة من القواعد ، مع الاسم HostingBlacklisting. تتكون مجموعة القواعد هذه من قاعدتين بسيطتين (معرف القاعدة 1000 والقاعدة 1001 في مثالنا) ، يتم تعريف كل قاعدة على أنها مطابقة وإجراء ، حيث إذا كان الشرط مطابقًا ، فسيتم تنفيذ الإجراء. في مثالنا ، سوف نستخدم نفس الإجراء في كلتا القاعدتين ، إذا تطابق الشرط مع أ رفض العمل يتم تنفيذ مع تم رفض وصول 403 استجابة.

انتقل إلى (تحديث البرنامج) في MyCAD IPDS> WAF، ثم انقر على إنشاء قواعد WAF وقم بتعيين اسم مجموعة قواعد وصفي ، في مثالنا HostingBlacklisting.

تكوين المجال المرحلة الافتراضية إلى يتم استلام رؤوس الطلب. يعني هذا الحقل أن وحدة WAF ستقوم بتحليل رؤوس الطلبات الواردة من العميل.

Zevenet IPDS إنشاء قواعد WAF

ثم انتقل إلى علامة التبويب قوانيـن وخلق الأول قاعدة من النوع اكشن كما هو مبين أدناه.

Zevenet IPDS إنشاء قواعد WAF

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

Zevenet IPDS تطابق القائمة السوداء

ثم خلق شرط آخر ل استضافة افتراضية تطابق وفقا ل SERVER_NAME المتغير على النحو التالي:

تطابق Zevenet IPDS SERVER_NAME

في هذه المرحلة ، أول موقع مستضاف www.mycompany1.com يدير عنوان IP للقائمة السوداء لتطبيق الويب من القائمة السوداء المكونة بالفعل ، المشار إليها Blacklistmycompany1.txt.

لنقم بإنشاء قاعدة أخرى للموقع الثاني www.mycompany2.com وكرر نفس التكوين مثل تكوين القاعدة السابقة ولكن في هذه الحالة ، يجب عليك تغيير SERVER_NAME إلى mycompany2.com والرجوع إلى ما يلي blacklist2.txt.

انظر التكوين الكامل لمجموعة قواعد WAF المركبة:

Zevenet IPDS WAF تهيئة مجموعة كاملة

أخيرًا ، أضف مجموعة القواعد هذه إلى المزرعة التي تم إنشاؤها بالفعل ، انتقل إلى علامة التبويب المزارع ونقل المزرعة استضافة، في مثالنا ، ل المزارع الممكّنة القسم كما هو مبين أدناه.

Zevenet IPDS WAF - تخصيص مزرعة

الآن ابدأ مجموعة قواعد WAF للمزرعة ، انقر فوق الإجراء بلايستشن في الجزء العلوي الأيسر من هذه النافذة ، وسيبدأ النظام في تصفية حركة مرور HTTP للمزرعة استضافة.

اختبار مجموعة قواعد جدار حماية تطبيق الويب

العميل IP 192.168.1.191 سيطلب الموقع http://www.mycompany1.com و http://www.mycompany2.com ووفقًا لتكويناتنا ، سيسمح نظام WAF بالاتصال بالخدمة الأولى بنفس الاسم ولكن سيتم رفض الاتصال mycompany2.com لأنه تم تضمين عنوان IP هذا في القائمة السوداء بالاسم Blacklistmycompany2.

من عنوان IP 192.168.1.191 إلى VIP الذي يطلب الموقع www.mycompany1.com من خلال موازن التحميل:

root@192.168.1.191:# curl -H "Host: www.mycompany1.com" http://192.168.100.58 -v
* Rebuilt URL to: http://192.168.100.58/
*   Trying 192.168.100.58...
* TCP_NODELAY set
* Connected to 192.168.100.58 (192.168.100.58) port 80 (#0)
> GET / HTTP/1.1
> Host: www.mycompany1.com
> User-Agent: curl/7.52.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx/1.10.3
< Date: Tue, 10 Sep 2019 15:36:22 GMT
< Content-Type: text/html
< Content-Length: 11383
< Last-Modified: Thu, 13 Dec 2018 11:01:49 GMT
< Connection: keep-alive
< ETag: "5c123c1d-2c77"
< Accept-Ranges: bytes
< 

من عنوان IP 192.168.1.191 إلى VIP الذي يطلب الموقع www.mycompany2.com من خلال موازن التحميل:

root@192.168.1.191:# curl -H "Host: www.mycompany2.com" http://192.168.100.58 -v
* Rebuilt URL to: http://192.168.100.58/
*   Trying 192.168.100.58...
* TCP_NODELAY set
* Connected to 192.168.100.58 (192.168.100.58) port 80 (#0)
> GET / HTTP/1.1
> Host: www.mycompany2.com
> User-Agent: curl/7.52.1
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 403 Request forbidden
< Content-Type: text/html
< Content-Length: 17
< Expires: now
< Pragma: no-cache
< Cache-control: no-cache,no-store
< 
* Curl_http_done: called premature == 0
* Closing connection 0
replied forbiddenp

بمجرد ممنوع يتم إنشاء استجابة ، وحدة WAF بإعلام الرفض في ملف Syslog موازن التحميل.

root@zva6000:# tail -f /var/log/syslog
Sep 10 15:38:44 zva6000 pound: Hosting, ModSecurity: Warning. Matched "Operator `StrMatch' with parameter `mycompany2.com' against variable `SERVER_NAME' (Value: `www.mycompany2.com' ) [file "/usr/local/zevenet/config/ipds/waf/sets/HostingBlacklisting.conf"] [line "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"]
Sep 10 15:38:44 zva6000 pound: Hosting, [WAF,service mycompany2, backend 192.168.100.22:80,] (7f6cfac3c700) [client 192.168.1.191] ModSecurity: Access denied with code 403 (phase 1). Matched "Operator `StrMatch' with parameter `mycompany2.com' against variable `SERVER_NAME' (Value: `www.mycompany2.com' ) [file "/usr/local/zevenet/config/ipds/waf/sets/HostingBlacklisting.conf"] [line "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"]
Sep 10 15:38:44 zva6ktpl1 pound: Hosting, service mycompany2, backend 192.168.100.25:80, (7f6cfac3c700) WAF denied a request from 192.168.1.191

يمكنك الآن إنشاء قواعد جدار الحماية المخصصة لحماية تطبيقات الويب الخاصة بك باستخدام تقنيات فحص الحزمة العميقة HTTP / S.

مقالات ذات صلة

https://www.zevenet.com/knowledge-base/enterprise-edition/enterprise-edition-v6-0-administration-guide/v6-0-ipds-waf-update/

مشاركة مع :

وثائق بموجب شروط رخصة جنو للوثائق الحرة.

هل كان المقال مساعدا؟!

مقالات ذات صلة