IP Set فهرستی نام‌دار از آدرس‌های IPv4 و رنج‌های شبکه (CIDR) است که در پنل ستون ایجاد می‌کنیم و می‌توانیم آن را در قوانین فایروال به‌عنوان شرط آدرس IP استفاده کنیم.

به‌جای اینکه چندین آدرس IP را در قوانین مختلف فایروال تکرار کنیم، آن‌ها را در یک IP Set قرار می‌دهیم و همان لیست را در قوانین موردنیاز انتخاب می‌کنیم.

Note

IP Set به‌تنهایی باعث Allow یا Block شدن ترافیک نمی‌شود. IP Set فقط مشخص می‌کند یک IP در فهرست قرار دارد یا خیر؛ این عملیات قانون فایروال است که رفتار نهایی را تعیین می‌کند.

IP Set چگونه با Firewall کار می‌کند؟

IP Set در کنار شرط آدرس IP در قوانین فایروال استفاده می‌شود. هنگام ایجاد قانون، می‌توانیم مشخص کنیم IP بازدیدکننده:

  • در IP Set وجود داشته باشد
  • در IP Set وجود نداشته باشد

سپس برای درخواست‌های منطبق، عملیات موردنظر مانند Allow یا Block را تعیین می‌کنیم.

برای مثال، اگر IP Set با نام office-whitelist شامل IPهای شبکه دفتر باشد، می‌توانیم قانونی بسازیم که درخواست‌های دارای IP موجود در این لیست را Allow کند.

flowchart LR
    visitor(["IP بازدیدکننده"])
    ipset(["IP Set"])
    rule(["قانون فایروال"])
    action(["عملیات: Allow / Block"])

    visitor --> ipset
    ipset --> rule
    rule --> action

IP Set در چه سطحی تعریف می‌شود؟

IP Set در فضای کاری ایجاد می‌شود و به یک وب‌سایت خاص محدود نیست. بنابراین می‌توانیم یک IP Set را در قوانین فایروال چند وب‌سایت استفاده کنیم.

flowchart LR
    ipset(["IP Set در فضای کاری"])
    siteA(["قانون فایروال وب‌سایت الف"])
    siteB(["قانون فایروال وب‌سایت ب"])
    edge(["لبه"])

    ipset --> siteA
    ipset --> siteB
    siteA --> edge
    siteB --> edge

وقتی اعضای IP Set را تغییر می‌دهیم، قوانین فایروالی که به آن IP Set ارجاع می‌دهند، از فهرست به‌روزشده استفاده می‌کنند.

اعضای IP Set چه معنایی دارند؟

هر عضو IP Set می‌تواند یکی از این موارد باشد:

  • یک آدرس IPv4، مانند 5.52.10.20
  • یک رنج شبکه با فرمت CIDR، مانند 5.52.0.0/16

برای مثال:

5.52.10.20
5.52.11.0/24
5.52.12.0/24

هر آدرس یا رنج را در یک خط جداگانه وارد می‌کنیم.

در فایروال، می‌توانیم عضویت IP را با دو عملگر بررسی کنیم:

عملگردرخواست منطبق
در IP Set وجود داشته باشدIP بازدیدکننده عضو IP Set باشد
در IP Set وجود نداشته باشدIP بازدیدکننده عضو IP Set نباشد

عضویت در IP Set به‌تنهایی رفتار ترافیک را مشخص نمی‌کند. برای مثال، یک IP Set می‌تواند در یک قانون برای Allow و در قانون دیگری برای Block استفاده شود.

چرا IP Set را جدا از قانون نگه می‌داریم؟

فرض می‌کنیم مجموعه‌ای از IPهای دفتر، سرویس‌های داخلی یا آدرس‌های مسدودشده داریم و لازم است این مجموعه در چند قانون استفاده شود.

اگر IPها را مستقیما داخل هر قانون وارد کنیم، با تغییر اعضای این مجموعه باید چند قانون را جداگانه ویرایش کنیم. با IP Set، فهرست IPها را یک‌جا مدیریت می‌کنیم و قوانین فقط به نام آن فهرست ارجاع می‌دهند.

مزایای استفاده از IP Set

  • به‌روزرسانی آسان: با تغییر آدرس‌ها در یک IP Set، قوانین فایروالی که از آن استفاده می‌کنند، از فهرست به‌روزشده استفاده می‌کنند.
  • خوانایی قوانین: به‌جای داشتن چندین شرط مشابه برای IPهای مختلف، می‌توانیم یک قانون را به یک IP Set مشخص متصل کنیم.
  • کاهش خطا: نگهداری آدرس‌ها در یک محل، از واردکردن تکراری و ناسازگار IPها در قوانین مختلف جلوگیری می‌کند.

IP Set و شرط کشور

IP Set برای تعریف مجموعه‌ای مشخص از آدرس‌ها و رنج‌های IP استفاده می‌شود، در حالی که شرط کشور بر اساس کشور منتسب به IP درخواست عمل می‌کند.

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

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

استفاده از IP Set برای چنین سناریویی نیازمند نگهداری مداوم رنج‌های IP کشور موردنظر است، زیرا این رنج‌ها ممکن است تغییر کنند.

IP Set پنل و ipset روی سرور مبدا

IP Set در پنل ستون با ابزار ipset در سیستم‌عامل سرور مبدا یکسان نیست و در دو نقطه متفاوت از مسیر درخواست استفاده می‌شوند:

IP Set پنلipset روی سرور مبدا
محل استفادهفایروال لبه CDNفایروال سیستم‌عامل سرور مبدا
چه چیزی را بررسی می‌کند؟IP بازدیدکننده در لبه CDNIP اتصال‌دهنده به سرور مبدا
محل تعریف فهرستپنل ستونروی سرور مبدا
کاربرد معمولاعمال قوانین فایروال روی گروهی از IPهاکنترل دسترسی مستقیم به سرور

اگر هدف ما این است که فقط لبه‌های ستون بتوانند به سرور مبدا متصل شوند، موضوع اصلی محافظت از مبدا (Origin Protection) است و باید از روش مربوط به Whitelist کردن IPهای لبه استفاده کنیم.

چه زمانی از IP Set استفاده کنیم؟

IP Set زمانی مفید است که بخواهیم یک مجموعه مشخص از IPها را در یک یا چند قانون فایروال استفاده کنیم.

برای مثال، فرض می‌کنیم مجموعه‌ای از IPهای شناخته‌شده‌ای داریم که باید دسترسی آن‌ها به یک وب‌سایت مسدود شود:

185.10.20.10
185.10.20.11
185.10.21.0/24

این آدرس‌ها را در یک IP Set مانند block-list قرار می‌دهیم و سپس در قانون فایروال، شرط در IP Set وجود داشته باشد را انتخاب کرده و عملیات Block را اعمال می‌کنیم.

در این حالت، مدیریت اعضای فهرست از منطق قانون فایروال جدا می‌شود و برای تغییر اعضا نیازی به بازنویسی خود قانون نداریم.

استخراج لیست آی‌پی‌های کشورهای مختلف

برای استخراج لیست آی‌پی‌های یک کشور خاص (مانند ایران) جهت استفاده در قابلیت IP Set، روش‌های مختلفی وجود دارد. با توجه به اینکه پنل ستون از فرمت CIDR پشتیبانی می‌کند، بهترین راه استفاده از ابزارهای آنلاین معتبری است که این لیست‌ها را به‌صورت آماده و به‌روز ارایه می‌دهند.

در ادامه، ۳ روش ساده و کاربردی برای این کار آورده شده است:

۱. استفاده از ابزار IP2Location (پیشنهادی)

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

  1. به صفحه IP2Location Visitor Blocker می‌رویم.
  2. کشور مورد نظر (مثلا Iran) را انتخاب می‌کنیم.
  3. در بخش IP Version، گزینه IPv4 را انتخاب می‌کنیم.
  4. در بخش Output Format، حتما گزینه CIDR را انتخاب می‌کنیم.
  5. روی دکمه Download کلیک می‌کنیم. فایل خروجی را باز کرده و محتویات آن را در بخش IP Set پنل کپی می‌کنیم.

۲. استفاده از سرویس IP-API یا IPRange

سایت‌هایی مانند iprange.net یا ipaddress.com نیز لیست‌های مشابهی را ارایه می‌دهند:

  • کافی است نام کشور را جستجو کنیم (مثلا: Iran IP Ranges CIDR).
  • دقت می‌کنیم که لیست حتما شامل رنج‌های شبکه‌ای (مانند 5.52.0.0/16) باشد تا تعداد خطوط کمتری مصرف شده و مدیریت آن آسان‌تر باشد.

۳. استفاده از گیت‌هاب (برای توسعه‌دهندگان)

مخازن متعددی در GitHub وجود دارند که لیست آی‌پی‌های ایران را به‌صورت روزانه آپدیت می‌کنند. این روش برای کسانی که می‌خواهند از طریق API این لیست را دریافت و به‌طور خودکار به‌روزرسانی کنند عالی است:

  • جستجوی عبارت iran-ip-list در گیت‌هاب پروژه‌های معتبری را نشان می‌دهد که فایل‌های .txt ساده‌ای شامل تمام رنج‌ها ارایه می‌دهند.

مطالعه بیشتر