תיעוד 131
ערכת כללים מנוהלת של Cloudflare
ערכת הכללים הזו נוצרה על ידי צוות האבטחה של Cloudflare, והיא מספקת הגנה מהירה ויעילה לכל היישומים שלכם. ערכת הכללים מתעדכנת לעיתים קרובות כדי לכסות פגיעויות חדשות ולצמצם התראות שווא.
Cloudflare ממליצה להפעיל את הכללים שהתגיות שלהם תואמות את מחסנית הטכנולוגיה שלכם. לדוגמה, אם אתם משתמשים ב-WordPress, הפעילו את הכללים שמתויגים ב-wordpress.
יומן השינויים של ה-WAF של Cloudflare מאפשר לכם לעקוב אחרי שינויים מתמשכים בערכות הכללים המנוהלות של ה-WAF.
הערה
חלק מהכללים בערכת הכללים המנוהלת של Cloudflare מושבתים כברירת מחדל, כדי לאזן בין מתן ההגנה המתאימה לבין צמצום מספר התראות השווא.
לא מומלץ להפעיל את כל הכללים הזמינים באמצעות overrides, כי זה עלול להשפיע על תעבורה לגיטימית, אלא אם אתם מריצים הוכחת היתכנות (PoC) כדי להבין אילו סוגי בקשות ה-WAF יכול לחסום.
#פריסת ערכת הכללים המנוהלת של Cloudflare
- בלוח הבקרה של Cloudflare, עברו לדף Settings של Security. מעבר אל Settings ↗
- (אופציונלי) סננו לפי Web application exploits.
- הפעילו את Cloudflare managed ruleset.
- עיינו בהגדרות הפריסה. ערכו את ההיקף, אם צריך, כדי להחיל את ערכת הכללים על חלק מהבקשות הנכנסות, או הגדירו הגדרות מותאמות אישית (שנקראות גם overrides).
- בחרו Save.
פעולה זו פורסת את ערכת הכללים המנוהלת עבור האזור הנוכחי, ויוצרת כלל חדש עם הפעולה Execute.
#הגדרה בלוח הבקרה
אפשר להגדיר (או לדרוס) את ערכת הכללים המנוהלת של Cloudflare, ולדרוס את הגדרת ברירת המחדל שלה, בכמה רמות:
כאשר יוצרים כמה overrides ברמות שונות, להגדרות ספציפיות יותר (רמת תגית ורמת כלל) יש עדיפות על פני הגדרות פחות ספציפיות (רמת ערכת כללים). למידע נוסף, ראו דריסת ערכת כללים מנוהלת בתיעוד של Ruleset Engine.
#הגדרה ברמת ערכת הכללים
אפשר להגדיר (או לדרוס) בלוח הבקרה של Cloudflare את ההגדרות הבאות של ערכת הכללים המנוהלת של Cloudflare:
Scope: כשמגדירים ביטוי מסנן מותאם אישית להיקף, ערכת הכללים המנוהלת של Cloudflare חלה רק על חלק מהבקשות הנכנסות. כברירת מחדל, ערכת כללים מנוהלת שנפרסה בלוח הבקרה חלה על כל התעבורה הנכנסת.
Ruleset action: כשמגדירים פעולה לערכת הכללים, דורסים את פעולת ברירת המחדל שהוגדרה לכל כלל. הפעולות הזמינות הן: Block, Log, Non-Interactive Challenge, Managed Challenge, ו-Interactive Challenge. כדי להסיר את דריסת הפעולה ברמת ערכת הכללים, הגדירו את פעולת ערכת הכללים ל-Default.
Ruleset status: מפעיל או משבית את כל הכללים בערכת הכללים.
הערה
כשמפעילים את כל הכללים בערכת הכללים, זה ישפיע על כללים שמושבתים כברירת מחדל ועל כל הכללים שייתווספו לערכת הכללים המנוהלת בעתיד.
Payload logging: כשהאפשרות מופעלת, נרשם מידע הבקשה (payload) שהפעיל כלל מסוים בערכת הכללים המנוהלת. חובה להגדיר מפתח ציבורי כדי להצפין את ה-payload.
אחרי שפרסתם את ערכת הכללים המנוהלת של Cloudflare, בצעו את הפעולות הבאות כדי להגדיר אותה בלוח הבקרה:
בלוח הבקרה של Cloudflare, עברו לדף Security rules. מעבר אל Security rules ↗
(אופציונלי) סננו לפי Managed rules.
חפשו את Cloudflare Managed Ruleset. אתרו כלל עם פעולה Execute.
בחרו את שם הכלל (שמכיל את שם ערכת הכללים המנוהלת) כדי לפתוח את דף הגדרת הפריסה.
(אופציונלי) כדי להפעיל את ערכת הכללים המנוהלת של Cloudflare על חלק מהבקשות הנכנסות, בחרו Edit scope והגדירו את הביטוי שיקבע את ההיקף של הכלל הנוכחי שפורס את ערכת הכללים המנוהלת.
במקטע הגדרת ערכת הכללים, הגדירו הגדרות לכל הכללים בערכת הכללים המנוהלת של Cloudflare על ידי מילוי שדה אחד או יותר באמצעות הרשימות הנפתחות.
לדוגמה, בחרו את הפעולה שתבוצע עבור כל הכללים בערכת הכללים.

בחרו Save.
#הגדרה ברמת תגית
אפשר להגדיר (או לדרוס) בלוח הבקרה את ההגדרות הבאות של ערכת הכללים המנוהלת של Cloudflare, עבור כללים שמתויגים בלפחות אחת מהתגיות שנבחרו:
- Rule action: מגדיר את פעולת הכלל עבור כל הכללים עם התגיות שנבחרו. הפעולות הזמינות הן: Block, Log, Non-Interactive Challenge, Managed Challenge, ו-Interactive Challenge.
- Rule status: מגדיר את סטטוס הכלל עבור כל הכללים עם התגיות שנבחרו.
הערה
הגדרה של אחת מההגדרות האלה עבור תגיות מסוימות משפיעה על כל הכללים הנוכחיים והעתידיים עם התגיות שבחרתם.
אחרי שפרסתם את ערכת הכללים המנוהלת של Cloudflare, בצעו את הפעולות הבאות כדי להגדיר כללים עם תגיות מסוימות בלוח הבקרה:
בלוח הבקרה של Cloudflare, עברו לדף Security rules. מעבר אל Security rules ↗
(אופציונלי) סננו לפי Managed rules.
חפשו את Cloudflare Managed Ruleset. אתרו כלל עם פעולה Execute.
בחרו את שם הכלל (שמכיל את שם ערכת הכללים המנוהלת), ואז בחרו Browse rules.

בחרו תגית אחת או יותר מתחת לשדה החיפוש כדי לסנן את הכללים עם התגיות האלה, ואז בחרו את תיבת הסימון בפינה השמאלית העליונה של הטבלה כדי לבחור את כל הכללים שמוצגים בדף הנוכחי.
אם לא כל הכללים מוצגים בדף הנוכחי, הרחיבו את הבחירה לכל הכללים עם התגיות שנבחרו בכל הדפים על ידי בחירה ב-Select all <NUMBER> rules.
עדכנו הגדרה אחת או יותר עבור הכללים שנבחרו באמצעות הכפתורים שמוצגים בפינה הימנית העליונה של הטבלה (לדוגמה, Set status).
בחרו Next.
מופיעה תיבת דו שיח ששואלת אם כללים חדשים עם התגיות שנבחרו צריכים להיות מוגדרים עם ערכי השדות שבחרתם.
- בחרו Include new rules אם אתם רוצים להחיל את ההגדרות שלכם על כללים חדשים עם התגיות שנבחרו.
- בחרו Only selected rules כדי להחיל את ההגדרות שלכם רק על הכללים שנבחרו.
בחרו Save.
#הגדרה ברמת כלל
אפשר להגדיר (או לדרוס) בלוח הבקרה את ההגדרות הבאות של ערכת הכללים המנוהלת של Cloudflare עבור הכללים שנבחרו:
- Rule action: מגדיר את הפעולה של כלל יחיד, או, אם בוחרים כמה כללים, עבור הכללים שנבחרו. הפעולות הזמינות הן: Block, Log, Non-Interactive Challenge, Managed Challenge, ו-Interactive Challenge. אחרי ששיניתם את ההגדרה של כלל, יש אפשרות לאפס את ההגדרה בחזרה לברירת המחדל כפי שהיא מוגדרת בערכת הכללים המנוהלת של Cloudflare.
- Rule status: מגדיר את הסטטוס (מופעל או מושבת) של כלל יחיד, או, אם בוחרים כמה כללים, עבור הכללים שנבחרו.
אחרי שפרסתם את ערכת הכללים המנוהלת של Cloudflare, בצעו את הפעולות הבאות כדי להגדיר כללים בודדים של ערכת הכללים בלוח הבקרה:
בלוח הבקרה של Cloudflare, עברו לדף Security rules. מעבר אל Security rules ↗
(אופציונלי) סננו לפי Managed rules.
חפשו את Cloudflare Managed Ruleset. אתרו כלל עם פעולה Execute.
בחרו את שם הכלל (שמכיל את שם ערכת הכללים המנוהלת), ואז בחרו Browse rules.

חפשו כללים באמצעות המסננים הזמינים.
ברשימת התוצאות, שנו את הערכים של כל כלל לפי הצורך, באמצעות הרשימות הנפתחות והמתגים שמוצגים. לדוגמה, שנו את הסטטוס של כלל באמצעות מתג Status שליד הכלל.
כדי להגדיר כמה כללים עם אותו ערך, בחרו את תיבות הסימון של כל הכללים שאתם רוצים להגדיר. אם לא כל הכללים מוצגים בדף הנוכחי, אפשר להרחיב את הבחירה לכל הכללים בכל הדפים על ידי בחירה ב-Select all <NUMBER> rules. לאחר מכן, השתמשו בכפתורים שמוצגים בפינה הימנית העליונה של הטבלה, לדוגמה Set status, כדי לעדכן שדה אחד או יותר עבור הכללים שנבחרו.

בחרו Next, ואז בחרו Save.
#הגדרה באמצעות API
כדי לפרוס את ערכת הכללים המנוהלת של Cloudflare עבור אזור נתון באמצעות API, צרו כלל עם פעולת execute בערכת הכללים של נקודת הכניסה עבור השלב http_request_firewall_managed.
#דוגמה
הדוגמה הבאה פורסת את ערכת הכללים המנוהלת של Cloudflare לשלב http_request_firewall_managed של אזור נתון ($ZONE_ID) על ידי יצירת כלל שמפעיל את ערכת הכללים המנוהלת.
הפעילו את הפעולה Get a zone entry point ruleset כדי לקבל את ההגדרה של ערכת הכללים של נקודת הכניסה עבור השלב
http_request_firewall_managed. תצטרכו את מזהה האזור למשימה הזו.Get a zone entry point ruleset
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "description": "Zone-level phase entry point", "id": "<RULESET_ID>", "kind": "zone", "last_updated": "2024-03-16T15:40:08.202335Z", "name": "zone", "phase": "http_request_firewall_managed", "rules": [ // ... ], "source": "firewall_managed", "version": "10" }, "success": true, "errors": [], "messages": [] }אם ערכת הכללים של נקודת הכניסה כבר קיימת (כלומר, אם קיבלתם קוד סטטוס
200 OKואת הגדרת ערכת הכללים), רשמו את מזהה ערכת הכללים מהתשובה. לאחר מכן, הפעילו את הפעולה Create a zone ruleset rule כדי להוסיף כללexecuteלערכת הכללים הקיימת, שפורס את ערכת הכללים המנוהלת של Cloudflare (עם המזההefb7b8c949ac4650a09736fc376e9aee). כברירת מחדל, הכלל יתווסף בסוף רשימת הכללים שכבר נמצאים בערכת הכללים.Create a zone ruleset rule
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee" }, "expression": "true", "description": "Execute the Cloudflare Managed Ruleset" }'{ "result": { "id": "<RULESET_ID>", "name": "Zone-level phase entry point", "description": "", "kind": "zone", "version": "11", "rules": [ // ... any existing rules { "id": "<RULE_ID>", "version": "1", "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee", "version": "latest" }, "expression": "true", "description": "Execute the Cloudflare Managed Ruleset", "last_updated": "2024-03-18T18:08:14.003361Z", "ref": "<RULE_REF>", "enabled": true } ], "last_updated": "2024-03-18T18:08:14.003361Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": [] }אם ערכת הכללים של נקודת הכניסה לא קיימת (כלומר, אם קיבלתם קוד סטטוס
404 Not Foundבשלב 1), צרו אותה באמצעות הפעולה Create a zone ruleset. כללו כלל יחיד במערךrulesשמפעיל את ערכת הכללים המנוהלת של Cloudflare (עם המזההefb7b8c949ac4650a09736fc376e9aee) עבור כל הבקשות הנכנסות באזור.Create a zone ruleset
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "My ruleset", "description": "Entry point ruleset for WAF managed rulesets", "kind": "zone", "phase": "http_request_firewall_managed", "rules": [ { "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee" }, "expression": "true", "description": "Execute the Cloudflare Managed Ruleset" } ] }'
#השלבים הבאים
כדי להגדיר את ערכת הכללים המנוהלת של Cloudflare באמצעות API, צרו overrides באמצעות Rulesets API. אפשר לבצע את ההגדרות הבאות:
- לציין את הפעולה שתבוצע עבור כל הכללים בערכת הכללים על ידי יצירת ruleset override.
- להשבית או להתאים את הפעולה של כללים בודדים על ידי יצירת rule overrides.
לדוגמאות ליצירת overrides באמצעות ה-API, ראו דריסת ערכת כללים מנוהלת.
#משאבים נוספים
למידע נוסף על עבודה עם ערכות כללים מנוהלות באמצעות API, ראו עבודה עם ערכות כללים מנוהלות בתיעוד של Ruleset Engine.
#הגדרה באמצעות Terraform
הדוגמה הבאה פורסת את Cloudflare Managed Ruleset עבור אזור, ודורסת את הפעולה ואת הסטטוס של כלל מסוים.
הרשאות נדרשות לאסימון API
נדרשת לפחות אחת מהרשאות האסימון הבאות:
Zone WAF Write
הגדר את המשאב cloudflare_ruleset ↗︎:
# Configure a ruleset at the zone level for the "http_request_firewall_managed" phase
resource "cloudflare_ruleset" "zone_level_managed_waf" {
zone_id = var.cloudflare_zone_id
name = "Managed WAF entry point ruleset"
description = "Zone-level WAF Managed Rules config"
kind = "zone"
phase = "http_request_firewall_managed"
# Execute Cloudflare Managed Ruleset
rules = [{
ref = "execute_cloudflare_managed_ruleset"
description = "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
expression = "true"
action = "execute"
action_parameters = {
id = "efb7b8c949ac4650a09736fc376e9aee"
overrides = {
rules = [{
id = "5de7edfa648c4d6891dc3e7f84534ffa"
action = "log"
enabled = true
}]
}
}
}]
}# Configure a ruleset at the zone level for the "http_request_firewall_managed" phase
resource "cloudflare_ruleset" "zone_level_managed_waf" {
zone_id = var.cloudflare_zone_id
name = "Managed WAF entry point ruleset"
description = "Zone-level WAF Managed Rules config"
kind = "zone"
phase = "http_request_firewall_managed"
# Execute Cloudflare Managed Ruleset
rules {
ref = "execute_cloudflare_managed_ruleset"
description = "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
expression = "true"
action = "execute"
action_parameters {
id = "efb7b8c949ac4650a09736fc376e9aee"
overrides {
rules {
id = "5de7edfa648c4d6891dc3e7f84534ffa"
action = "log"
enabled = true
}
}
}
}
}למידע נוסף, עיין בהגדרת WAF Managed Rules באמצעות Terraform.