تنظیمات فایروال
نسل جدید فایروال ابر آروان یک بستر منعطف را برای کنترل درخواستهای HTTP وبسایت یا وباپلیکیشن شما فراهم میکند. تنظیمات فایروال شبکه توزیع محتوای ابر آروان، به شما کمک میکند که با ترکیب چندین شرط، قوانین ی ایجاد کنید تا ترافیک دامنه را کنترل کنید و امنیت وبسایت و وباپلیکیشنتان را تامین کنید.
فایروال ابر آروان امکان بررسی و مسدود کردن ترافیک مشکوک ورودی به سایت را با تعریف قوانینی بر اساس Wireshark برای شما فراهم میکند. برای این کار شما میتوانید از پنل کاربری یا API سرویس CDN استفاده کنید. در این راهنما، شیوهی فعالسازی و تعریف قوانین مختلف در فایروال CDN ابر آروان را بررسی خواهیم کرد.
فعالسازی و تنظیمات فایروال از طریق پنل کاربری
برای مدیریت و تنظیم قوانین فایروال، در پنل کاربری وارد بخش «تنظیمات فایروال» از منوی امنیت CDN شوید. با استفاده از گزینههای بخش «قانون پیشفرض» میتوانید با فعال کردن گزینهی مجاز، بهشکل کلی وبسایت خود را در دسترس قرار دهید یا با انتخاب حالت مسدود آن را از دسترس خارج کنید. قانون پیشفرض زمانی اعمال خواهد شد که شرایط درخ واستدهنده با هیچکدام از قوانین تعریف شده، صدق نکند.
برای تعریف قوانین فایروال، کافی است روی گزینه «افزودن قانون» کلیک کنید. در صفحهی "ایجاد قانون جدید"، امکان تعیین نام و توضیح قانون، پارامتر، اپراتور و مقدار شرط و همچنین بررسی عبارت معادل قانون را خواهید داشت. در انتها و پس از تکمیل شروط، میتوانید عملگر موردنظر برای مجاز یا مسدود کردن دسترسی مشخص کنید.
برای ایجاد یک شرط باید ابتدا، در فیلد «پارامتر» ویژگی HTTP موردنظرتان را از میان متغیرهای زیر انتخاب کنید.
پارامتر | توضیحات |
---|---|
SOURCE IP ADDRESS | نشاندهنده IP درخواستدهنده مقدار نمونه: 1.2.3.4 |
COUNTRY | نشاندهنده کشور مبدا درخواستدهنده مقدار نمونه: IR |
URI PATH | نشاندهنده مسیر uri درخواست مقدار نمونه: /help/index |
HOSTNAME | نشاندهنده نام میزبان مورد استفاده در درخواست مقدار نمونه: www.example.com |
COOKIE | نشاندهنده مقدار کامل cookie بهشکل رشته کارکتر مقدار نمونه: SSID=AjMisfbW7_GcDfpgd;session=8521F670545D7865F79C3D7BEDC29CCE |
REFERER | نشاندهنده هدر HTTP Refere درخواست که حاوی آدرس صفحهای است که به صفحه درخواستی فعلی لینک داده شده است. مقدار نمونه: developer.example.com/docs/Web/JavaScript |
REQUEST METHOD | نشاندهنده متد درخواست HTTP در قالب رشته کارکتر ی از حروف بزرگ مقدار نمونه: GET |
URI | نشاندهنده querystring و مسیر uri مقدار نمونه: /help/index?section=539061&expand=comments |
URI QUERY STRING | نشاندهنده مقدار کامل querystring بدون ? مقدار نمونه: section=539061&expand=comments |
HTTP VERSION | نشاندهنده نسخه پروتکل HTTP مورد استفاده در درخواست مقدار نمونه: HTTP/1.1 |
USER AGENT | نشاندهنده user agent درخواست که حاوی رشته کاراکتری برای شناسایی سیستمعامل و مرورگر کاربر است. مقدار نمونه: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 |
در حال حاضر این پارامترها بهطور کامل در پلن سازمانی قابل استفاده هستند و پارامترهای IP Source Address، Country، Hostname و URI در همهی پلنها در دسترس هستند.
در ادامه لازم است اپراتور موردنیازتان را از میان مقادیر جدول زیر انتخاب کنید و یک مقدار برای شرط تعیین کنید.
اپراتور | توضیحات |
---|---|
برابر است با | معادل == و مشخصکننده شرط برابر بودن پارامتر و مقدار |
برابر نیست با | معادل =! و مشخصکننده شرط نامساوی بودن پارامتر و مقدار |
شامل | معادل contains و مشخصکننده شرط اینکه پارامتر حاوی یک مقدار باشد |
با عبارت REGEX تطبیق دارد | معادل ~ و مشخصکننده شرط تطابق پارامتر با مقدار regex |
در لیست موجود است | معادل in و مشخصکننده شرط وجود مقادیر پارامتر در لیست |
شروع میشود با | مشخص کننده شرط شروع شدن پارامتر با مقدار مشخص |
پایان مییابد با | مشخص کننده شرط ختم شدن پارامتر به مقدار مشخص |
این امکان برای شما فراهم است تا با تعریف چند شرط در یک قانون درخواستهای موردنظرتان را مجاز یا مسدود کنید. اگر چند شرط را با هم and کنید لازم است تا تمام شروط برقرار باشند و اگر از or استفاده کنید قفط کافی است تا یکی از شروط برقرار شود تا قانون اعمال شود.
به عنوان نمونه اگر بخواهید قانونی تعریف کنید که ترافیک ورودی تمام درخواستهای با متد POST به یک مسیر معین مثل example.com/test را از یک IP مبدا و user-agent مشخص مثل Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36، مسدود کند باید تنظیمات زیر را وارد کنید:
در بخش عبارت معادل، میتوانید عبارتی که معادل شروط و قانون تعریف شده است را بررسی کنید. عبارت ساده یک مقدار از درخواست HTTP را با مقدار تعریفشده در عبارت مقایسه میکند و در قالب <مقدار> <اپراتور> <پارامتر>
ایجاد میشود مثل ip.src==1.2.3.4. عبارات مرکب شامل عبارات سادهای هستند که با اپراتورهای and و/یا or ترکیب شده و یک عبارت واحد را ساختهاند. این عبارات در قالب <عبارت ساده> <اپراتور منطقی> <عبارت ساده>
ایجاد میشوند مثل
((’ip.src==1.2.3.4)and(http.request.method==’POST)) . هر قانون فایروال یک عبارت معادل بر اساس شروط تعریف شده خواهد داشت.
پس از تعریف و ایجاد قوانین، در بخش "فهرست قوانین" امکان ویرایش، اولویتبندی و حذف قوانین را خواهید داشت.
همچنین اگر پلن حرفهای یا سازمانی روی دامنه شما فعال باشد امکان مشاهدهی لیست IP های بازدیدکنندگان و تعداد درخواستهایشان را در بخش «تنظیمات فایروال» خواهید داشت.
نام، توضیحات و وضعیت قوانین
هر قانون در فایروال شبکه توزیع محتوای آروان شامل یک نام، توضیحات و وضعیت قانون است.
برای مثال میتوانید برای قانون خود یک اسم اختصاص دهید و توضیحاتی دربارهی عملکرد قانون جهت شناسایی و سادگی کار با قوانین وارد کنید. در نهایت با استفاده از فیلد وضعیت این امکان را دارید که قانون را فعال و یا غیرفعال کنید.
ورودیهای نام، توضیحات و وضعیت قوانین در API با استفاده از پارامتر های note ،name و is_enabled قابل تعریف است که پارامتر is_enabled دارای دو مقدار true و false است.
تعیین رفتار فایروال هنگام به وقوع پیوستن یک شرط
در فایروال شبکه توزیع محتوای آروان میتوان تعیین کرد که اگر شروط وارد شده در یک قانون به وقوع بپیوندد آنگاه فایروال آروان چه رفتاری از خود نشان دهد. مجاز، مسدود، چالش و دور زدن مکانیسمهای امنیتی عملگرهایی است که میتوانید برای این مورد انتخاب کنید.
مجاز
در این حالت آروان به درخواست ارسالی مطابق با شرایط تعریف شده پاسخ میدهد.
ایجاد یک قانون با عملگر مجاز با استفاده از API:
curl --location --request POST 'https://napi.arvancloud.ir/cdn/4.0/domains/example.com/firewall/rules' \
--header 'authority: napi.arvancloud.ir' \
--header 'accept: application/json, text/plain, */*' \
--header 'authorization: API KEY 1 2 3 4' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data-raw '{"name":"Test Rule","note":"","is_enabled":true,"action":"allow","action_details":{"mode":1,"ttl":120,"https_only":false},"filter_expr":"((http.host == \"example.com\"))"}'