העברת הגבלות גודל העלאה של F5 iRules אל RELIANOID

צפה בקטגוריות

העברת הגבלות גודל העלאה של F5 iRules אל RELIANOID

3 דק קריאה

סקירה כללית #

מאמר זה מסביר כיצד להעביר iRule F5 BIG-IP המשמש להגבלת גדלי העלאה של HTTP אל RELIANOID באמצעות המשולב WAF (חומת אש של אפליקציות אינטרנט) מופעל על ידי ModSecurity ו-OWASP CRS.

ה-iRule המקורי בודק:

  • שיטת HTTP (POST)
  • Content-Length כותרת

וחוסם העלאות גדולות מ 200 MB עם HTTP 413 Payload Too Large תגובה.

F5 iRule מקורי #

כאשר HTTP_REQUEST { אם { [HTTP::method] eq "POST" } { קבע content_length [HTTP::header "Content-Length"] אם { $content_length ne "" ו-$content_length > 200000000 } { # דחה בקשות מעל 200 MB HTTP::respond 413 content "גודל ההעלאה חורג מהמגבלה." event disable } } }

RELIANOID גישת ההגירה #

In RELIANOID, ניתן ליישם פונקציונליות זו באמצעות:

  • מודול WAF / IPDS
  • כללי ModSecurity
  • אינטגרציה של OWASP CRS

גישה זו מספקת:

  • אכיפת אבטחה מרכזית
  • רישום ונראות טובים יותר
  • תחזוקה קלה יותר
  • בדיקת בקשת HTTP מקורית

פריסה באמצעות ערכת כללים ידנית #

RELIANOID דוגמה לתצורת WAF #

מתחת לשביל /usr/local/relianoid/config/ipds/waf/sets/ צור קובץ conf עם התוכן:

## התחל קונפיגורציה של SecRuleEngine ב-SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:1" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:2" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:3" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:4" ## סוף קונפיגורציה של SecRule REQUEST_METHOD "POST" \ "id:910001,\phase:1,\t:none,\chain,\deny,\status:413,\msg:'גודל ההעלאה חורג מהמגבלה.',\log" SecRule REQUEST_HEADERS:Content-Length "@gt 200000000"

איך הכלל עובד #

הכלל מבצע את הלוגיקה הבאה:

REQUEST_METHOD "POST"בודק רק בקשות POST
REQUEST_HEADERS:Content-Lengthקורא את גודל ההעלאה
@gt 200000000בדיקה אם הגודל עולה על 200 מגה-בייט
deny,status:413דוחה את הבקשה
msg:'Upload size exceeds limit.'יוצר הודעת יומן ביקורת

מיפוי התנהגות שווה ערך מ-F5 iRule ל- RELIANOID WAF #

HTTP::method: REQUEST_METHOD
HTTP::header "Content-Length": REQUEST_HEADERS:Content-Length
HTTP::respond 413: deny,status:413
event disable: Immediate WAF deny

פריסה דרך WebUI #

ניתן לפרוס תצורה זו גם ישירות דרך RELIANOID ממשק משתמש אינטרנטי.

נתיב תצורת WebUI #

נווט אל IPDS > WAF > כללים

לאחר מכן צור ערכת כללים של WAF עם כלל עם 2 תנאים כפי שמוצג להלן.

מגבלת אורך תוכן waf של relanoid ipds

בדיקת מערכות #

בדיקה עם CURL #

בקשה לדוגמה:

curl -k -X POST -H "אורך תוכן: 250000000" https://LB_VIP/upload -v

תוצאה צפויה #

התגובה צריכה להחזיר:

עומס HTTP/1.1 413 גדול מדי

ויש לחסום את הבקשה לפני שהיא מגיעה לשרת האחורי.

אימות רישום #

בדוק יומני WAF עבור:

גודל ההעלאה חורג מהמגבלה.

הערות חשובות #

תלות באורך התוכן #

כלל זה תלוי בשליחת קוד תקף של הלקוח Content-Length כותרת. אם העלאות משתמשות בקידוד העברה מפוצל או בהעלאות סטרימינג, ייתכן שיידרשו הגנות נוספות.

הגבל כתובות URL ספציפיות בלבד #

ניתן לשרשר את הכלל באמצעות אימות URI.

דוגמא:

כלל זיהוי בקשת_URI "@beginsWith /upload"

פתרון בעיות #

כלל לא מופעל #

אמת:

  • WAF מופעל בחווה
  • הכלל מצורף כראוי
  • שיטת הבקשה היא POST
  • כותרת אורך התוכן קיימת

העלאות עדיין מגיעות לקצה האחורי #

סיבות אפשריות:

  • WAF לא יושם על החווה הנכונה
  • בעיית תחביר הכלל
  • העלאה משתמשת בקידוד מפוצל

תוצאות חיוביות שגויות #

ייתכן שחלק מהאפליקציות דורשות העלאות גדולות באופן לגיטימי.

המלצה:

  • צור חריגים ספציפיים ליישום
  • התאימו את הספים בזהירות

שיטות עבודה מומלצות #

  • השתמש במגבלות העלאה ספציפיות ליישום
  • שלב עם הגבלת קצב במידת האפשר
  • ניטור יומני WAF באופן קבוע
  • הימנעו מספי העלאה גבוהים שלא לצורך
  • אימות התנהגות ההעלאה לאחר הפריסה

<br> סיכום #

ניתן להעביר את כללי ה-iRules של F5 המשמשים להגבלת גדלי העלאה אליהם RELIANOID שימוש בכללי WAF/ModSecurity מקוריים המשולבים עם OWASP CRS.

גישה זו מספקת:

  • אכיפת מדיניות מרכזית
  • רישום ונראות טובים יותר
  • מדרגיות קלה יותר
  • מורכבות סקריפטים מופחתת
  • בדיקת בקשות מבוססות תקנים

📄 הורד מסמך זה בפורמט PDF #

    דואר אלקטרוני: *

    פותח ומופעל ע"י BetterDocs