فایروال (Security Group)

در این بخش از داشبورد OpenStack، میتوانید رولهای فایروال یا همان گروههای امنیتی (Security Groups) را مشاهده و مدیریت کنید. گروههای امنیتی مجموعهای از قوانین فایروال هستند که تعیین میکنند چه نوع ترافیکی اجازه ورود یا خروج از یک پورت (عبارت مصطلح در OpenStack برای اشاره به کارت شبکه مجازی یا vNIC) را دارد.
بهصورت پیشفرض، خود OpenStack هنگام ایجاد پروژه، یک گروه امنیتی با نام «default» ایجاد میکند. این گروه معمولاً شامل چند قانون ابتدایی است که اجازه دسترسی ورودی محدود به سرویسها (مثلاً ICMP یا SSH) را فراهم میکند. این گروه را میتوانید ویرایش کرده یا قوانین دلخواه خود را به آن اضافه کنید.

برای ایجاد یک Security Group جدید در OpenStack، کافی است در صفحه مربوط به Security Groups روی دکمه Create Security Group کلیک کنید. با انجام این کار، یک پنجره جدید باز میشود که تنها شامل دو فیلد ساده است:
-
Name: در این قسمت، یک نام دلخواه برای گروه امنیتی وارد کنید. بهتر است نام انتخابی توصیفی باشد تا در مراحل بعدی بهراحتی قابل شناسایی باشد.
-
Description (اختیاری): میتوانید یک توضیح کوتاه درباره کاربرد یا هدف این گروه امنیتی وارد کنید. این فیلد الزامی نیست، اما برای مستندسازی یا در پروژههای بزرگ میتواند مفید باشد.
پس از تکمیل اطلاعات، روی دکمه Create Security Group کلیک کنید تا گروه جدید ساخته شود. بلافاصله پس از ایجاد، میتوانید با انتخاب گزینه Manage Rules، قوانین امنیتی موردنظر خود را به این گروه اضافه کنید.

اگر خودتان یک گروه امنیتی جدید بسازید (مانند Test 1 که در تصویر دیده میشود)، در ابتدا تنها شامل دو قانون کلی برای اجازه دادن به تمام ترافیکهای خروجی از سرور (Egress) است. شما باید قوانین دلخواه خودتان را به آن اضافه کنید.
تعریف قانون جدید

برای تعریف یک قانون جدید در Security Group، کافی است روی دکمهی Add Rule که در بالا سمت راست قرار دارد، کلیک کنید.

در این مرحله، وارد پنجره Add Rule شدهاید و باید یک قانون امنیتی جدید برای Security Group خود تعریف کنید. گزینههای این قسمت شامل موارد زیر است:
Rule
Rule شامل فهرستی از گزینههای مختلف است.
گزینههای Rule دلخواه
اگر قصد دارید یک پورت مشخص را باز کنید (مانند پورت ۲۲ برای SSH یا پورت ۸۰ برای HTTP)، میتوانید از گزینههای Custom TCP Rule یا Custom UDP Rule استفاده کنید. در این حالت، امکان وارد کردن دستی شماره پورت یا بازهای از پورتها فراهم است. برای فعالسازی قابلیت ارسال یا دریافت Ping، گزینه Custom ICMP Rule را انتخاب کنید. این گزینه برای مجاز کردن ترافیک ICMP کاربرد دارد، مثل پاسخدهی به دستور ping.
گزینههای انتخاب کلی Rule
در فهرست گزینهها، موارد زیر قابل انتخاب هستند:
- All TCP: اجازه ارسال یا دریافت تمام ترافیک TCP
- All UDP: اجازه ارسال یا دریافت تمام ترافیک UDP
- All ICMP: اجازه ارسال یا دریافت تمام ترافیک ICMP
گزینههای از پیشتعریفشده سرویسها
همچنین میتوانید از لیست سرویسهای متداول مانند موارد زیر استفاده کنید:
-
DNS
-
HTTP
-
HTTPS
-
SSH
-
RDP
-
ICMP
انتخاب هرکدام از این گزینهها باعث میشود پورت و پروتکل مربوطه بهصورت خودکار پر شود و نیازی به وارد کردن دستی اطلاعات نباشد.
برای داشتن کنترل دقیقتر روی نوع ترافیک، شماره پورت، و محدوده آدرس، پیشنهاد میشود از گزینه Custom TCP Rule یا Custom UDP Rule استفاده کنید. این گزینه امکان پیکربندی پیشرفتهتری را فراهم میکند.
Description
در فیلد Description میتوانید یک توضیح دلخواه برای قانون وارد کنید، تا در آینده راحتتر متوجه شوید که این قانون برای چه منظوری اضافه شده است. پر کردن این فیلد اختیاری است.

Direction
در بخش Direction مشخص میکنید که این قانون مربوط به ترافیک ورودی (Ingress) است یا خروجی (Egress). اگر میخواهید ترافیک از بیرون به ماشینهای مجازی وارد شود (مثلاً برای اتصال از راه دور)، باید گزینه Ingress را انتخاب کنید. اگر قصد دارید دسترسی ماشینهای مجازی داخل پروژه به بیرون را تنظیم کنید، باید گزینه Egress را انتخاب کنید.

Open Port (در صورت انتخاب گزینه Custom TCP یا Custom UDP)
در این بخش، باید مشخص کنید که قانون امنیتیتان روی چه پورتهایی اعمال شود. سه گزینه پیشروی شما قرار دارد:
گزینه Ports
اگر گزینه Port را انتخاب کنید، فقط یک پورت خاص را باز میکنید. مثلاً اگر بخواهید فقط پورت ۲۲ برای اتصال SSH باز باشد، عدد ۲۲ را وارد میکنید و فقط همان پورت باز میشود.
گزینه Port Range
اگر گزینه Port Range را انتخاب کنید، میتوانید بازهای از پورتها را مشخص کنید. مثلاً با وارد کردن 1000 و 1010 این دو پورت و نیز تمام پورتهای بین این دو عدد باز میشوند. این گزینه معمولاً برای سرویسهایی که از چند پورت متوالی بهطور همزمان استفاده میکنند کاربرد دارد.
گزینه All Ports
اگر گزینه All Ports را انتخاب کنید، تمام پورتهای TCP یا UDP، بسته به نوع قانون، باز میشوند. این یعنی هیچ محدودیتی از نظر شماره پورت وجود ندارد و همه درخواستها از هر پورتی مجاز هستند.
Remote
در این بخش باید مشخص کنید ترافیکی که قرار است اجازه دسترسی به آن داده شود، از چه منبعی میآید. برای این منظور، دو گزینه اصلی در اختیار دارید.

۱. استفاده از CIDR
با انتخاب گزینه CIDR، باید یک بازه مشخص از آدرسهای IP را وارد کنید.
-
برای باز کردن دسترسی عمومی به اینترنت، میتوانید از مقدار 0.0.0.0/0 استفاده کنید. این مقدار به این معناست که تمام IPهای اینترنت مجاز به دسترسی هستند.
-
برای محدود کردن دسترسی به یک IP خاص یا محدوده مشخص، کافی است آن را بهصورت دقیق وارد کنید. مثلاً: 192.168.1.10/32 برای یک IP خاص یا 192.168.1.0/24 برای یک سابنت خاص.
۲. استفاده از Security Group
در این روش، بهجای مشخص کردن IP، دسترسی را به ماشینهای مجازی عضو یک گروه امنیتی دیگر میدهید.

اگر در قسمت Remote گزینه Security Group را انتخاب کنید، یک لیست از گروههای امنیتی موجود در پروژهتان نمایش داده میشود. مثلاً در اینجا میتوانید گروه default یا همین گروه فعلی (Test 1) را انتخاب کنید.

در نهایت، پس از اضافه کردن قوانین مورد نیاز به Security Group، این قوانین بلافاصله روی ماشینهای مجازیای که به این گروه متصل هستند اعمال میشوند. اگر در هر مرحله احساس کردید که نیازی به یک قانون خاص ندارید یا اشتباهی در تعریف آن انجام شده، میتوانید خیلی راحت آن را حذف کنید.
برای حذف هر قانون، کافی است در صفحه مربوط به Manage Security Group Rules روی دکمه قرمز Delete Rule که روبهروی هر قانون قرار دارد کلیک کنید. همچنین در صورت نیاز میتوانید چند قانون را همزمان انتخاب کرده و از گزینه Delete Rules در بالای جدول استفاده کنید.