تغییرات اخیر

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

فایروال چیست و چگونه کار می‌کند؟نقش حیاتی آن در امنیت سرور


۱۰ اردیبهشت ۱۴۰۴

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

این مقاله به بررسی نحوه کار فایروال می‌پردازد، با تمرکز بر فایروال‌های نرم‌افزاری Stateful، مانند iptables و FirewallID، در ارتباط با سرورهای ابری.

در ادامه خواهید خواند:

  • بسته‌های شبکه TCP
  • انواع فایروال‌ها
  • قوانین فایروال
  • ترافیک ورودی و خروجی
  • نرم‌افزارها و ابزارهای فایروال
  • سوالات متداول
  • جمع بندی

بسته‌های شبکه TCP

قبل از بررسی انواع مختلف فایروال‌ها، بیایید نگاهی سریع به ظاهر ترافیک شبکه‌‌ی پروتکل کنترل انتقال (TCP) بیندازیم.

ترافیک شبکه TCP در قالب بسته‌هایی در شبکه جابجا می‌شود. این بسته‌ها شامل یک سرآیند بسته که حاوی اطلاعات کنترلی مانند آدرس‌های مبدا و مقصد و اطلاعات ترتیب بسته‌ها است و داده (که به عنوان بار یا Payload نیز شناخته می‌شود) می‌باشند. در حالی که اطلاعات کنترلی موجود در هر بسته کمک می‌کند تا داده‌های مربوط به درستی تحویل داده شوند، این عناصر همچنین به فایروال‌ها این امکان را می‌دهند که بسته‌ها را با قوانین فایروال تطبیق دهند.

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

انواع فایروال‌ها

به صورت خلاصه سه نوع اصلی فایروال بررسی شده است؛ فایروال‌های بسته (بدون حالت)، فایروال‌های Stateful و فایروال‌های لایه کاربرد.

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

فایروال‌های Stateful قادر به تعیین وضعیت اتصال بسته‌ها هستند، که این ویژگی آن‌ها را بسیار انعطاف‌پذیرتر از فایروال‌های بدون حالت می‌کند. این فایروال با جمع‌آوری بسته‌های مرتبط، تا زمانی که وضعیت اتصال مشخص شود، کار می‌کنند و پس از آن قوانین فایروال را روی ترافیک اعمال می‌کنند.

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

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

همچنین بخوانید: نگاهی عمیق به معماری Iptables و Netfilter

فایروال

قوانین فایروال

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

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

  • پذیرش ترافیک جدید و موجود ورودی به رابط شبکه‌ی عمومی روی پورت‌های 80 و 443 (ترافیک وب HTTP و HTTPS).
  • مسدود کردن ترافیک ورودی از آدرس‌های IP کارمندان غیر فنی شما به پورت 22 (SSH) .
  • پذیرش ترافیک جدید و موجود ورودی از محدوده‌یIP دفتر شما به رابط شبکه خصوصی روی پورت 22 (SSH).

توجه داشته باشید که اولین کلمه در هر یک از مثال‌ها یا accept (پذیرش)، reject (رد کردن) یا drop (رها کردن) است. این کلمه مشخص می‌کند که فایروال در صورت تطبیق ترافیک شبکه با یک قانون، چه اقدامی باید انجام دهد. Accept یعنی اجازه عبور به ترافیک داده شود، و Reject یعنی ترافیک مسدود شده و با یک پیام خطای غیر قابل دسترسی پاسخ داده شود و Drop یعنی ترافیک مسدود شده و هیچ پاسخی ارسال نشود. بخش باقی مانده‌ی هر قانون نیز شامل شرطی است که بسته‌های شبکه با آن تطبیق داده می‌شوند.

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

با سرور مجازی ابری لیارا، قدرت، سرعت و آزادی عمل را در مدیریت سرور تجربه کنید!
✅ منابع کاملاً اختصاصی✅ سرعت اتصال بالا و ترافیک نامحدود✅ دسترسی کامل روت✅ امنیت پیشرفته و پایدار
خرید و راه‌اندازی سریع سرور مجازی ابری لیارا

سیاست پیش‌فرض (Default Policy)

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

فرض کنید سیاست پیش‌فرض برای زنجیره‌ی مثالی بالا روی drop تنظیم شده باشد. در این صورت، اگر هر کامپیوتری خارج از دفتر شما تلاش کند یک اتصال SSH به سرور برقرار کند، ترافیک آن‌ها ریخته می‌شود چون با هیچ‌یک از شرایط قوانین تطبیق ندارد.

اگر سیاست پیش‌فرض روی accept تنظیم شده بود، هر کسی (به جز کارمندان غیر فنی خودتان) می‌توانست به هر سرویس بازی روی سرورتان متصل شود. این نمونه از یک فایروال بسیار بد پیکربندی شده است، چون فقط بخشی از کارمندان خودتان را دور نگه می‌دارد.

بیشتر بخوانید: راهنمای انتخاب بهترین سیاست فایروال برای حفاظت از سرورها

ترافیک ورودی و خروجی

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

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

نوشتن قوانین خروجی

فرض کنید فایروال مثال ما به صورت پیش‌فرض ترافیک خروجی را مسدود کرده است. این بدین معنی است که قوانین پذیرش ورودی مثال (1 و 3) که در بخش قوانین فایروال ذکر شده و اجازه دادن به ارتباطات صحیح روی آن آدرس‌ها و پورت‌ها، می‌توان از قوانین فایروال خروجی زیر استفاده کرد.

پذیرش ترافیک خروجی موجود به رابط شبکه عمومی روی پورت‌های 80 و 443 (HTTP و HTTPS).

پذیرش ترافیک خروجی موجود به رابطه شبکه خصوصی روی پورت 22 (SSH).

توجه داشته باشید که نیازی به نوشتن صریح یک قانون برای ترافیک ورودی که مسدود می‌شود (قانون ورودی 2) ندارید. زیرا سرور نیازی به برقراری یا تایید آن اتصال ندارد.

نرم‌افزارها و ابزارهای فایروال

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

Iptables

Iptables یک فایروال استاندارد است که به صورت پیش‌فرض در بیشتر توزیع‌های لینوکس گنجانده شده است. در واقع، این یک رابط برای هوک‌های netfilter در سطح هسته است که می‌توانند پشته شبکه لینوکس را دستکاری کنند. Iptables با مطابقت دادن هر بسته‌ای که از رابط شبکه عبور می‌کند با مجموعه‌ای از قوانین تصمیم می‌گیرد که چه کاری انجام دهد.

بیشتر بخوانید: فایروال Iptables چگونه کار می‌کند؟

UFW

UFW، که مخفف Uncomplicated Firewall است، یک رابط کاربری برای iptables است که هدف آن ساده‌سازی فرآیند پیکربندی فایروال است.

همینطور بخوانید: آشنایی با قوانین و دستورات رایج فایروال (UFW)

FirewalID

FirewallD یک راه‌حل کامل فایروال است که به‌طور پیش‌فرض بر روی سرورهای CentOS 7 موجود است. به‌طور اتفاقی، FirewallD از iptables برای پیکربندی netfilter استفاده می‌کند.

Fail2ban

Fail2ban یک نرم‌افزار جلوگیری از نفوذ است که می‌تواند به‌طور خودکار فایروال شما را برای مسدود کردن تلاش‌های ورود به سیستم به روش brute force و حملات DDOS پیکربندی کند.

بیشتر بخوانید: حمله بروت فورس Brute Force چیست؟

همچنین بخوانید: DDoS چیست؟

سوالات متداول

در ادامه برخی از سوالات شما در رابطه با فایروال بررسی و پاسخ داده شده است.

فایروال چیست؟

فایروال ابزاری است که ترافیک شبکه را فیلتر و کنترل می‌کند تا از شبکه در برابر تهدیدات محافظت کند.

تفاوت فایروال‌های Stateful و Stateless؟

فایروال‌های Stateful وضعیت اتصال را بررسی می‌کنند، اما فایروال‌های Stateless هر بسته را مستقل بررسی می‌کنند.

چطور فایروال سرور را با iptables پیکربندی کنم؟

با استفاده از دستورات iptables می‌توانید قوانین برای اجازه یا مسدود کردن ترافیک تنظیم کنید.

آیا فایروال‌های نرم‌افزاری محافظت کامل ایجاد می‌کنند؟

فایروال‌های نرم‌افزاری لایه‌ای از امنیت را فراهم می‌کنند اما برای حفاظت کامل به ترکیب با سایر ابزارهای امنیتی نیاز است.

چطور ترافیک شبکه را با فایروال مدیریت کنم؟

می‌توانید ترافیک ورودی و خروجی را بر اساس قوانین خاصی مانند آدرس‌های IP یا پورت‌ها کنترل کنید.

FirewallD چیست؟

FirewallD ابزار ساده‌ای برای پیکربندی فایروال است که از iptables استفاده می‌کند و مدیریت ترافیک را با مفاهیم مناطق ساده‌تر می‌کند.

چطور از UFW استفاده کنم؟

UFW ابزاری ساده برای پیکربندی iptables است که می‌توانید با دستوراتی مانند ufw allow 80/tcp پورت‌ها را باز کنید.

Fail2ban چیست؟

Fail2ban به طور خودکار تلاش‌های ورود غیرمجاز را شناسایی کرده و آدرس‌های مهاجم را مسدود می‌کند.

آیا باید فایروال‌های نرم‌افزاری و سخت‌افزاری را همزمان استفاده کنیم؟

بله، ترکیب هر دو فایروال می‌تواند امنیت بیشتری فراهم کند.

چطور از nftables استفاده کنم؟

nftables جایگزین iptables است که با نصب و تنظیم قوانین آن می‌توانید فایروال را مدیریت کنید.

پیکربندی فایروال در سرور ابری؟

از پنل مدیریتی سرور ابری برای تنظیم دسترسی به پورت‌ها و آدرس‌ها استفاده کنید.

چطور فایروال را برای SSH و HTTP پیکربندی کنم؟

فقط اجازه دسترسی به IP‌های خاص برای SSH و پورت‌های 80 و 443 برای HTTP بدهید.

انواع فایروال‌ها

همینطور بخوانید: نحوه بررسی و تست پیکربندی فایروال با Nmap و Tcpdump

جمع بندی

حالا که با نحوه کارکرد فایروال آشنا شدید، وقت آن رسیده که یک فایروال مناسب برای سرور خود پیاده‌سازی کنید تا امنیت آن را تقویت کنید. فایروال‌ها ابزارهای حیاتی برای جلوگیری از حملات DDoS، اسکن‌های پورت و دسترسی‌های غیر مجاز هستند. با تنظیم درست قوانین فایروال و ترکیب آن با سایر ابزارهای امنیتی مانند ضد ویروس و سیستم‌های تشخیص نفوذ، می‌توانید از سرور خود در برابر تهدیدات مختلف محافظت کنید و تهدیدات جدید را به سرعت شناسایی کنید.

به اشتراک بگذارید