مهارت‌ها4 min read

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

فایروال قدیمی‌ترین ابزارِ دفاعیِ شبکه است و هنوز هم اولین چیزی‌ست که در هر معماریِ امنیتی سرِ جایش گذاشته می‌شود. اما «فایروال داریم» جمله‌ای‌ست که اغلب معنای کمتری از آنچه گوینده فکر می‌کند دارد — چون فایروال فقط به‌اندازه‌ی قواعدی که در آن نوشته شده مفید است، و بیشترِ آن قواعد سال‌هاست کسی بازبینی‌شان نکرده.

نوشته‌ی مدرس امنیت سایبری و هک اخلاقی

کارشناسی امنیت سایبری از دانشگاه Manchester Metropolitan (درجه‌ی ممتاز) — تست نفوذ، امنیت شبکه، OSINT و گجت‌های سخت‌افزاری.

این مطلب چطور نوشته و بازبینی می‌شود؟

این مقاله بخشی از راهنمای کامل امنیت شبکه چیست؟ آموزش کامل امنیت شبکه از صفر تا حرفه‌ای است

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

فایروال دقیقاً چه تصمیمی می‌گیرد؟

فایروال روی مرزِ دو شبکه می‌نشیند و درباره‌ی هر بسته‌ای که می‌خواهد عبور کند یک تصمیمِ ساده می‌گیرد: عبور، انداختن، یا رد کردن با پاسخ. تصمیم بر اساسِ قواعدی گرفته می‌شود که تو می‌نویسی — معمولاً بر پایه‌ی آدرسِ مبدأ و مقصد، پورت و پروتکل. نکته‌ی مهم در ترتیب است: قواعد از بالا به پایین بررسی می‌شوند و اولین قاعده‌ای که تطبیق کند تصمیم را می‌گیرد، پس یک قاعده‌ی بازِ فراموش‌شده در ردیفِ سوم می‌تواند بیست قاعده‌ی سخت‌گیرانه‌ی بعدی را بی‌اثر کند.

سه نسل، سه سطح از فهم

  • فیلترِ بسته (Packet Filter): هر بسته را جدا و بدونِ حافظه بررسی می‌کند. سریع است، اما نمی‌داند این بسته پاسخِ درخواستِ خودِ توست یا یک بسته‌ی ناخوانده از بیرون.
  • فایروالِ حالت‌مند (Stateful): جدولی از اتصالاتِ برقرار نگه می‌دارد. حالا می‌فهمد که بسته‌ی ورودی بخشی از گفتگویی‌ست که خودِ تو شروع کرده‌ای — و همین یک تفاوت، نوشتنِ قواعد را از کابوس به کارِ شدنی تبدیل می‌کند. این حالتِ پیش‌فرضِ هر فایروالِ امروزی‌ست.
  • فایروالِ نسل جدید (NGFW): علاوه بر پورت و آدرس، خودِ برنامه را تشخیص می‌دهد. برایش فرق می‌کند که روی پورت ۴۴۳ یک مرورگرِ عادی نشسته یا یک تونلِ پنهان — چیزی که فایروالِ قدیمی هر دو را «HTTPS» می‌دید.

‏WAF: فایروالی که محتوا را می‌خواند

فایروالِ برنامه‌ی وب (WAF) لایه‌ی دیگری‌ست و با موارد بالا اشتباه گرفته می‌شود. WAF جلوی یک وب‌سرور می‌نشیند و به‌جای بسته‌ها، خودِ درخواست‌های HTTP را می‌خواند: پارامترها، سرآیندها، بدنه‌ی درخواست. کارش تشخیصِ الگوهای حمله‌ای مثل تزریقِ SQL یا XSS است. یک WAF یک وصله‌ی موقتِ خوب است تا کدِ آسیب‌پذیر اصلاح شود — اما جایگزینِ اصلاحِ کد نیست، و دور زدنِ WAF یکی از رایج‌ترین تمرین‌های هر تستِ نفوذِ وب است.

اصلِ «همه بسته، جز آنچه لازم است»

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

sudo ufw default deny incoming    # هیچ ورودی‌ای مجاز نیست
sudo ufw default allow outgoing   # خروجی آزاد
sudo ufw allow 22/tcp             # SSH
sudo ufw allow 80,443/tcp         # وب
sudo ufw enable
sudo ufw status verbose           # بررسی نتیجه

یک سیاستِ پایه روی لینوکس با ufw

پیش از فعال‌سازی روی سرورِ راه دور

اگر قاعده‌ی SSH را پیش از `ufw enable` اضافه نکنی، در همان لحظه خودت را از سرور بیرون می‌اندازی و راهی برای برگشت نداری جز کنسولِ ارائه‌دهنده. این رایج‌ترین اشتباهِ اولین باری‌ست که کسی فایروال را روشن می‌کند.

زیرِ پوستِ ufw: iptables و nftables

روی لینوکس، ufw فقط یک روکشِ ساده روی موتورِ واقعی‌ست. آن موتور سال‌ها iptables بود و امروز nftables است. دانستنِ ساختارِ زیرین لازم است، چون روی سرورهای واقعی اغلب قواعدی می‌بینی که هیچ ابزارِ سطح‌بالایی ننوشته — و باید بتوانی بخوانی‌شان.

sudo iptables -L -n -v --line-numbers   # قواعد فعلی با شمارنده
sudo nft list ruleset                  # همان چیز روی nftables
sudo ss -tulpn                         # چه چیزی واقعاً در حال گوش دادن است

خواندنِ قواعدِ واقعی

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

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

  • حمله‌ای که از پورتِ مجاز می‌آید: تزریقِ SQL از همان پورت ۴۴۳ عبور می‌کند که سایتت روی آن است.
  • فیشینگ و مهندسی اجتماعی: کاربری که خودش رمز را تحویل می‌دهد، از هیچ فایروالی عبور نکرده.
  • تهدیدِ داخلی و دستگاهِ آلوده‌ای که از قبل داخلِ شبکه است.
  • ترافیکِ رمزشده‌ای که فایروال آن را باز نمی‌کند — که برای اغلبِ ترافیکِ امروزی صادق است.

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

Frequently asked questions

فایروالِ ویندوز کافی است؟

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

تفاوتِ فایروال و آنتی‌ویروس چیست؟

فایروال درباره‌ی ارتباطاتِ شبکه تصمیم می‌گیرد؛ آنتی‌ویروس درباره‌ی فایل‌ها و فرایندهای روی خودِ دستگاه. هیچ‌کدام جای دیگری را نمی‌گیرد.

آیا فایروال جلوی حمله‌ی DDoS را می‌گیرد؟

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

برای تمرین از کجا شروع کنم؟

روی یک ماشینِ مجازی، ufw را با سیاستِ «رد کردنِ پیش‌فرض» فعال کن و بعد سعی کن از ماشینِ دیگری در همان آزمایشگاه به سرویس‌هایش وصل شوی. دیدنِ اینکه اتصال کِی برقرار می‌شود و کِی نه، بیش از هر متنی یاد می‌دهد.

آماده‌ای عملی یاد بگیری؟ دوره‌ها و کارگاه‌های هک و امنیت سایبری را ببین و مسیرت را جدی شروع کن.

دیدن دوره‌ها