شرط‌های دیواره آتش (Firewall)

نکاتی در استفاده از نسخه جدید فایروال:

نحوه اعمال قوانین در فایروال از حالت اولویت بندی شده بر اساس اکشن، به حالت اولویت بندی شده بر اساس ترتیب قوانین تغییر پیدا خواهد کرد. قوانین فعلی به نحوی مهاجرت داده خواهند شد که عملکرد خروجی تغییری نکند.
پنل فایروال CDN تغییر خواهد کرد و تمامی رول های فایروال در قالب یک جدول ترتیب دار دیده میشوند.
شروط فایروال  HttpVersion، Port و TLS حذف خواهند شد.
اکشن فایروال Bypass حذف شده و با Allow جایگزین خواهد شد.
نام قوانین فایروال در CDN فقط می‌تواند شامل حروف کوچک انگلیسی، اعداد و خط فاصله باشد و باید با حروف کوچک انگلیسی شروع شود. قوانین فایروالی که نام آن‌ها مطابق این قوانین نیست، در هنگام ویرایش باید طوری تغییر کنند که مطابق با این قوانین باشند.

در صفحه مرتبط با تنظیمات فایروال می‌توانید قوانین، محدودیت‌ها و عملیات مدنظر خود را برای فایروال پیکربندی کنید. در این مستند به توضیح هر یک از محدودیت‌های قابل اعتماد خواهیم پرداخت.

قبل از پیکربندی قوانین و محدودیت‌ها (Constraint) بهتر است بدانید که عبارتی که در نهایت ارزیابی می‌شود، به صورت زیر خواهد بود و شما می‌توانید مجموعه‌ای محدودیت‌ها را با توجه به نحوه‌ی ترکیب قوانین که در زیر آورده شده است اعمال کنید:

(constraint1 && constraint2 && …) or (constraintN && constraintN+1 &&‌ …) or …

در واقع or تعدادی and است که منطق کامل نیست، ولی برای پیاده‌سازی اکثر حالات مدنظر می‌تواند مورد استفاده قرار گیرد.

محدودیت‌های قابل اعمال در درخواست HTTP

شما می‌توانید با انتخاب هر یک از مواردی که در زیر آورده شده است محدویت‌هایی را بر روی درخواست‌ها (request) اعمال کنید:

  • شماره سامانه خودمختار (ASN)
  • کوکی‌ها
  • کشور
  • IP
  • متد HTTP مثل GET و POST و…
  • URI
  • Path
  • Query Strings (Args)
  • HTTP Version
  • TLS (on/off)
  • Known Bots

در ادامه به‌توضیح هر یک از این ویژگی‌های قابل استفاده پرداخته خواهد شد.

هر آدرس IP متعلق به یک سامانه خودمختار یا سازمان است. سامانه‌های خودمختار در پروتکل IP، شماره مخصوص به خود را دارند که ASN یا Autonomous System Number نامیده می‌شود. با تنظیم کردن یک شرط بر روی این شماره در فایروال می‌توانید تمامی درخواست‌های ورودی از این شرکت را Allow کنید.

پارامترها:

  • Expected: لیست ASNهای مورد نظر
  • Operator: یکی از موارد equals ،lesser ،greater

کوکی‌ها اطلاعاتی هستند که با هر بار ارسال درخواست به یک سرور، همراه با درخواست ارسال می‌شوند. این اطلاعات می‌توانند از سمت سرور به کلاینت ارسال شوند (با هدر Set-Cookie در پاسخ) و کلاینت باید در درخواست‌های بعدی آن‌ها را (در هدر Cookie) به سرور ارسال کند.

شما می‌توانید قوانینی تعریف کنید و بر اساس محتویات Cookie‌های ارسالی برای سرنوشت درخواست تصمیم بگیرید.

پارامترها:

  • Name: نام کوکی مورد نظر
  • Expected: لیست مقادیر مورد نظر
  • Operator: یکی از موارد equals، contains، starts_with، ends_with، matches

می‌توانید بر اساس کشوری که درخواست از آن‌ صورت گرفته، برای ریکوئست تصمیم بگیرید.

پارامترها:

  • Expected: لیست کشورهای موردنظر
  • Operator: فقط equals

می‌توانید آدرس IP درخواست را به صورت CIDR با هر IP Rangeی مورد بررسی قرار دهید و برای درخواست تصمیم‌گیری کنید. در حال حاضر فقط IPv4 پشتیبانی می‌شود. منظور از CIDR چیزی مانند 185.166.104.0/24 است که یک محدوده IP مشخص می‌کند. برای مشخص کردن تک IP از /32 استفاده کنید.

پارامترها:

  • Expected: لیست محدوده‌های IP مورد نظر به فرمت CIDR
  • Operator: فقط ip_matches

می‌توانید بر اساس متد درخواست HTTP نیز برای قوانین شرط تعریف کنید.

پارامترها:

  • Exptected: یکی از GET، POST، PURGE، PUT، HEAD، OPTIONS، DELETE، PATCH
  • Operator: فقط equals

منظور از URI در اینجا هر چیزی است که بعد از نام دامنه در URL می‌آید. برای مثال در URL زیر

https://example.com/path/to/a/file?q=p&t=s

منظور از URI قسمت زیر است:

/path/to/a/file?q=p&t=s

پارامترها:

  • Expected: لیست مقادیر مورد نظر
  • Operator: یکی از equals، contains، starts_with، ends_with، matches

منظور از Path آن قسمت از URI است که قبل از ? می‌آید، در مثال قبلی منظور از Path قسمت زیر است:

/path/to/a/file

پارامترها:

  • Expected: لیست مقادیر مورد نظر
  • Operator: یکی از equals، contains، starts_with، ends_with، matches

منظور از query string آن قسمت از URI است که بعد از ? می‌آید و شامل مقادیری به فرمت key=value است. در مثال قبلی:

q=p&t=s

پارامترها:

  • Name: نام query مورد نظر
  • Expected: لیست مقادیر مورد نظر
  • Operator: یکی از موارد equals، contains، starts_with، ends_with، matches

HTTP Version شماره نسخه پروتکل HTTP درخواست است:

پارامترها:

  • Expected: یکی از موارد HTTP/1.0 HTTP/1.1 HTTP/1.2 HTTP/2 HTTP/3
  • Operator: فقط equals

می‌توانید شرطی را فقط برای درخواست‌های با/بدون TLS تعریف کنید

پارامترها:

  • Expected: True/False
  • Operator: equals

با استفاده از این قابلیت می‌توانید درخواست‌ها را فقط برای ربات‌های خوب شناخته شده مثل Google Bot، ‌Bingbot و … عبور دهید و برای سایر درخواست‌ها تصمیم دیگری بگیرید.

پارامترها:

  • Expected: True/False
  • Operator: equals

می‌توانید بر اساس پورتی که کاربر برای دسترسی استفاده می‌کند (۸۰ یا ۴۴۳) ، برای در خواست تصمیم بگیرید.

پارامترها:

Operator: فقط equals

Expected: یکی از مقادیر ۸۰ یا ۴۴۳

پس از انتخاب هریک از این ویژگی‌ها و در واقع ایجاد ترکیبی از شرط‌ها که قوانینی که می‌خواهید را تشکیل می‌دهند، لازم است انتخاب کنید که براساس این قوانین چه کاری انجام شود. به این کارها عملیات گفته می‌شود. برای اطلاعات بیشتر در مورد عملیات به مستند انواع عملیات برای قوانین فایروال مراجعه کنید.

قوانین فایروال شبکه توزیع محتوای ستون از روش GLOB استفاده می‌کند. بخشی از موارد تحت پشتیبانی این مدل در زیر آمده است.

مواردی که پشتیبانی می‌شود
مدلورودیشرط برقراریشرط عدم برقراری
List {a,b,c}/{static,build/public}/*.jsas their directories are included in the group /static/file.js/build/public/file.jsas the 'src' directory is not in the group /src/file.js
Range [abc]/[abc]-xyz/*.jsas they are in the range provided /a-xyz/file.js/b-xyz/file.js/c-xyz/file.jsas 'd' is not in the range '[abc]' /d-xyz/file.js
Not in Range [!abc]/[!abc]-xyz/*.jsas they are not in the given range /d-xyz/file.js/e-xyz/file.jsas they are within the excluded range /a-xyz/file.js/b-xyz/file.js/c-xyz/file.js
One Char ??.jsas they are a single character ending with '.js' a.jsb.jsit is more than one character before '.js' file.js
Zero or More Chars **.jsas they end with '.js' one.jstwo.jsthree.jsas it doesn't end with '.js' four.md
مواردی که پشتیبانی نمی‌شود
مدلورودی
Recursive (globstar) **/**/*.js
Not Patterns !(a|b)/!(src|build)/*.js
Zero or One Pattern ?(a|b)file?(.min|.umd).js
Zero or More Patterns *(a|b)file*(.min|.umd).js
One or More Patterns +(a|b)file+(.min|.umd).js
Exactly One Pattern @(a|b)file@(.min|.umd).js
آیا این مقاله به شما کمک کرد؟

با نظر دادن به بهبود کیفیت مستندات کمک کنید

sotoon

کلیه حقوق مادی و معنوی محفوظ است. © ۱۴۰۳ ستون/ شرکت رایانش ابری واحد هزاردستان