خيارات التكوين لوحدة Wallarm على أساس Envoy¶
يستخدم Envoy مرشحات قابلة للتوصيل معرفة في ملف التكوين Envoy لمعالجة الطلبات الواردة. تصف هذه المرشحات الإجراءات التي يجب تنفيذها على الطلب. على سبيل المثال، يتم استخدام مرشح 'envoy.http_connection_manager' للوكيل الطلبات HTTP. لهذا المرشح مجموعة خاصة به من مرشحات HTTP التي يمكن تطبيقها على الطلب.
تم تصميم وحدة Wallarm كمرشح HTTP لـ Envoy. يتم وضع الإعدادات العامة للوحدة في قسم مخصص لمرشح ال HTTP 'wallarm':
listeners:
- address:
filter_chains:
- filters:
- name: envoy.http_connection_manager
typed_config:
http_filters:
- name: wallarm
typed_config:
"@type": type.googleapis.com/wallarm.Wallarm
<تكوين وحدة Wallarm>
...
تمكين معالجة جسم الطلب
لتمكين وحدة Wallarm من معالجة جسم طلب HTTP، يجب وضع مرشح ال buffer قبل العقدة التي يتم فيها التصفية في سلسلة مرشحات HTTP لـ Envoy. على سبيل المثال:
http_filters:
- name: envoy.buffer
typed_config:
"@type": type.googleapis.com/envoy.config.filter.http.buffer.v2.Buffer
max_request_bytes: <الحد الأقصى لحجم الطلب (بالبايت)>
- name: wallarm
typed_config:
"@type": type.googleapis.com/wallarm.Wallarm
<تكوين وحدة Wallarm>
...
إذا تجاوز حجم الطلب الوارد قيمة المعلمة max_request_bytes
، فسيتم إسقاط هذا الطلب وسيرجع Envoy الرمز الاستجابة 413
(“Payload Too Large”).
إعدادات تصفية الطلب¶
تحتوي القسم rulesets
من الملف على المعلمات ذات الصلة بإعدادات تصفية الطلب:
rulesets:
- name: rs0
pdb: /etc/wallarm/proton.db
custom_ruleset: /etc/wallarm/custom_ruleset
key: /etc/wallarm/private.key
general_ruleset_memory_limit: 0
enable_libdetection: "on"
...
- name: rsN:
...
الإدخالات rs0
... rsN
هي مجموعات من المعلمات والتي يمكن أن تكون واحدة أو أكثر. يمكن أن تكون الجماعات بأي اسم (حتى يمكن الإشارة إلى هذه الجماعات في وقت لاحق عبر المعلمة ruleset
في القسم conf
). يجب أن يكون هناك مجموعة واحدة على الأقل موجودة في التكوين العقدة التي يتم فيها التصفية (على سبيل المثال، بالاسم rs0
).
هذا القسم ليس له قيم افتراضية. تحتاج إلى تحديد القيم بشكل صريح في ملف التكوين.
مستوى التعريف
يمكن تعريف هذا القسم على مستوى العقدة التي يتم فيها التصفية فقط.
المعلمة | الوصف | القيمة الافتراضية |
---|---|---|
pdb | المسار إلى ملف proton.db . يحتوي هذا الملف على الإعدادات العامة لتصفية الطلب، التي لا تعتمد على هيكل التطبيق. | /etc/wallarm/proton.db |
custom_ruleset | المسار إلى ملف custom ruleset الذي يحتوي على معلومات حول التطبيق المحمي وإعدادات العقدة التي يتم فيها التصفية. | /etc/wallarm/custom_ruleset |
key | المسار إلى الملف الذي يحتوي على المفتاح الخاص Wallarm المستخدم للتشفير / فك التشفير من الملفات proton.db و custom ruleset. | /etc/wallarm/private.key |
general_ruleset_memory_limit | الحد الأقصى للكمية من الذاكرة التي يمكن استخدامها بواسطة مثيل واحد من proton.db و custom ruleset. إذا تجاوز الحد الذاكري أثناء معالجة بعض الطلبات، سيحصل المستخدم على خطأ 500. يمكن استخدام اللاحقات التالية في هذا المعلمة:
0 تعطل الحد. | 0 |
enable_libdetection | تمكين / تعطيل التحقق الإضافي من هجمات الSQL Injection باستخدام مكتبة libdetection. إذا لم تؤكد المكتبة الحمولة الخبيثة، فإن الطلب يعتبر مشروعًا. يتيح استخدام مكتبة libdetection تقليل عدد الإيجابيات الكاذبة بين هجمات الSQL Injection. بشكل افتراضي، تم تمكين libdetection. للكشف عن الهجمات بشكل أفضل، نوصي بتمكين المكتبة. عند تحليل الهجمات باستخدام libdetection، قد يزيد مقدار الذاكرة المستهلكة من عمليات NGINX و Wallarm بنسبة حوالي 10 ٪. | on |
إعدادات وحدة Postanalytics¶
تحتوي القسم tarantool
من عقدة التصفية على المعلمات ذات الصلة بوحدة Postanalytics:
إدخال server
يعتبر مجموعة من المعلمات التي تصف الإعدادات لخادم Tarantool.
مستوى التعريف
يمكن تعريف هذا القسم على مستوى العقدة التي يتم فيها التصفية فقط.
المعلمة | الوصف | القيمة الافتراضية |
---|---|---|
uri | نص مع بيانات الاعتماد المستخدمة للاتصال بخادم Tarantool. تنسيق السلسلة هو IP address أو domain name: port . | localhost: 3313 |
max_packets | حد عدد الطلبات المسلسلة التي سيتم إرسالها إلى Tarantool. لإزالة الحد، قم بتعيين 0 كقيمة للمعلمة. | 512 |
max_packets_mem | حد الحجم الإجمالي (بالبايت) للطلبات المسلسلة التي سيتم إرسالها إلى Tarantool. | 0 (الحجم غير محدود) |
reconnect_interval | الفاصل الزمني (بالثواني) بين محاولات إعادة الاتصال بـ Tarantool. القيمة 0 تعني أن العقدة التي يتم فيها التصفية ستحاول إعادة الاتصال بالخادم بأسرع ما يمكن إذا أصبح الخادم غير متاح (لا يوصى به). | 1 |
الإعدادات الأساسية¶
تحتوي القسم conf
من تكوين Wallarm على المعلمات التي تؤثر على عمليات العقدة التي يتم فيها التصفية الأساسية:
conf:
ruleset: rs0
mode: "monitoring"
mode_allow_override: "off"
application: 42
process_time_limit: 1000
process_time_limit_block: "attack"
request_memory_limit: 104857600
wallarm_status: "off"
wallarm_status_format: "json"
parse_response: true
unpack_response: true
parse_html_response: true
مستوى التعريف
لمستوى حماية أكثر مرونة، يمكن تجاوز هذا القسم على مستوى الطريق أو المضيف الافتراضي:
-
على مستوى الطريق:
-
على مستوى المضيف الافتراضي:
virtual_hosts: - name: <اسم المضيف الافتراضي> typed_per_filter_config: wallarm: "@type": type.googleapis.com/wallarm.WallarmConf <معلمات القسم>
تمتلك المعلمات في القسمconf
المجاوز على مستوى الطريق الأولوية على المعلمات في القسم المعرف على مستوى المضيف الافتراضي الذي بدوره يمتلك أولوية أعلى من المعلمات المدرجة في القسم على مستوى العقدة التي يتم فيها التصفية.
المعلمة | الوصف | القيمة الافتراضية |
---|---|---|
ruleset | إحدى مجموعات المعلمة التي يتم تعريفها في القسم rulesets . تحدد مجموعة المعلمات هذه القواعد التي سيتم استخدامها لتصفية الطلبات.If this parameter is omitted from the conf section of the filtering node, then it should be present in the conf section overridden on the route or virtual host level. | - |
mode | وضع العقدة:
الوصف التفصيلي لأوضاع التصفية → | block |
mode_allow_override | يسمح بتجاوز وضع العقدة التي يتم فيها التصفية التي يتم تعيينها عبر المعلمة mode مع custom ruleset:
mode مضبوطة على قيمة monitoring وكانت المعلمة mode_allow_override مضبوطة على القيمة strict ، فإنه سيكون من الممكن حظر بعض الطلبات (block ) ولكن لا يمكن تعطيل العقدة التي يتم فيها التصفية بالكامل (off ). | off |
application | التعريف الفريد للبرنامج المحمي المراد استخدامه في Wallarm Cloud. يمكن أن تكون القيمة عدد صحيح موجب باستثناء 0 .المزيد من التفاصيل حول إعداد التطبيقات → | -1 |
partner_client_uuid | معرف فريد لـ المستأجر لوحدة Wallarm multi-tenant. يجب ان تكون القيمة سلسلة في تنسيق UUID، على سبيل المثال:
تعرف كيفية: | - |
process_time_limit | تم تجاهل هذا المعلمة ابتداء من الإصدار 3.6، يوصى بضبط بدقة كشف الهجوم overlimit_res . | 1000 |
process_time_limit_block | تم تجاهل هذا المعلمة ابتداء من الإصدار 3.6، يوصى بضبط بدقة كشف الهجوم process_time_limit :
| attack |
wallarm_status | سواء كان يتم تمكين خدمة إحصاءات العقدة التي يتم فيها التصفية. | false |
wallarm_status_format | تنسيق إحصاءات العقدة التي يتم فيها التصفية: json أو prometheus . | json |
disable_acl | يسمح بتعطيل تحليل أصول الطلبات. إذا تم التعطيل (on )، لن تقوم العقدة التي يتم فيها التصفية بتنزيل قوائم الاIP من Wallarm Cloud وستتجاهل تحليل عناوين IP مصدر الطلب. | off |
parse_response | سواء كان يتم تحليل استجابات التطبيق. مطلوب تحليل الاستجابة لاكتشاف الثغرات الأمنية في أثناء الكشف السلبي والتحقق من الهددات النشطة. القيم الممكنة هي true (تم تمكين تحليل الاستجابة) و false (تم تعطيل تحليل الاستجابة). | true |
unpack_response | سواء كان يتم فك ضغط البيانات المضغوطة المسترجعة في استجابة التطبيق. القيم الممكنة هي true (تم تمكين الفك) و false (تم تعطيل الفك). هذا المعلم فعال فقط إذا parse_response true . | true |
parse_html_response | سواء كان يتم تطبيق محللات HTML على الكود HTML المستلم في استجابة التطبيق. القيم الممكنة هي true (تم تطبيق محلل ال HTML) و false (لم يتم تطبيق محلل HTML).هذا المعلم فعال فقط إذا parse_response true . | true |