امنیت شبکه بدون وجود فایروال معنایی ندارد. فایروالها بهعنوان اولین خط دفاعی، وظیفه نظارت، فیلترینگ و کنترل ترافیک ورودی و خروجی شبکه را بر عهده دارند و هر سازمانی بدون زیرساخت فایروال صحیح در برابر حملات آسیبپذیر است. در این مقاله از بایتوتک، ابتدا انواع فایروال را بهصورت کوتاه معرفی میکنیم، سپس مستقیم سراغ بخش تخصصی یعنی روش کانفیگ، دلایل هر تنظیم و نمونه کدهای کاربردی روی پرکاربردترین فایروالهای شبکه (لینوکس iptables، سیسکو، میکروتیک، NGFW و فورتیگیت) میرویم تا در محیط واقعی شبکه بتوانید آنها را پیادهسازی کنید.
انواع فایروال در یک نگاه کوتاه
فایروالها بر اساس سطح عملکرد، لایه تصمیمگیری و معماری به چند دسته اصلی تقسیم میشوند:
- فایروالهای Packet Filtering: سادهترین نوع؛ ترافیک را بر اساس آدرس IP مبدأ/مقصد و شماره پورت (لایههای ۳ و ۴) فیلتر میکنند.
- فایروالهای Stateful Inspection: وضعیت (State) اتصالات فعال را پیگیری میکنند و بر اساس حالت کانکشن، تصمیم هوشمندانهتری میگیرند.
- فایروالهای نسل جدید NGFW: ترکیبی از IPS، بازرسی عمیق بسته (DPI)، شناسایی اپلیکیشنها و فیلترینگ مبتنی بر کاربر؛ تصمیمگیری در لایه ۷.
- فایروالهای WAF: محافظ تخصصی وباپلیکیشنها در برابر حملات HTTP/HTTPS مانند SQL Injection و XSS.
سناریو و روش کانفیگ تخصصی در فایروالهای مختلف
برای درک بهتر و کاربردی، سناریوی زیر را روی پنج پلتفرم محبوب شبکه (Linux iptables، Cisco ASA/FTD، MikroTik، NGFW و FortiGate) پیادهسازی میکنیم.
سناریوی امنیتی:
- مسدود کردن تمام ترافیکهای ورودی بهصورت پیشفرض (Default Drop).
- اجازه عبور به ترافیکهای مربوط به اتصالات برقرار شده (Established/Related).
- باز کردن پورت ۸۰ (HTTP) و ۴۴۳ (HTTPS) برای عموم.
- باز کردن پورت ۲۲ (SSH) فقط برای یک IP مدیریت مشخص (192.168.10.50).
۱. کانفیگ فایروال لینوکس (iptables)
iptables یک فایروال سنتی و قدرتمند در سیستمهای مبتنی بر لینوکس است که بر اساس زنجیرهها (Chains) و قوانین (Rules) کار میکند.
روش و دلیل کانفیگ: ابتدا سیاست پیشفرض (Policy) را روی DROP میگذاریم تا امنیت حداکثری برقرار باشد. سپس دسترسی به سرویسهای وب را آزاد کرده و پورت مدیریت SSH را فقط به یک سیستم مشخص محدود میکنیم تا از حملات Brute Force جلوگیری کنیم.
iptables -F # پاک کردن قوانین قبلی
iptables -P INPUT DROP # مسدودسازی پیشفرض ورودی
iptables -P FORWARD DROP # مسدودسازی پیشفرض فوروارد
iptables -P OUTPUT ACCEPT # اجازه خروجی
iptables -A INPUT -i lo -j ACCEPT # اجازه لوپبک
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # دسترسی HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # دسترسی HTTPS
iptables -A INPUT -p tcp -s 192.168.10.50 --dport 22 -j ACCEPT # محدود به ادمین SSH
نکته: بدون قانون conntrack ESTABLISHED,RELATED، پاسخ درخواستهای خروجی ما برنمیگردد و اتصالها قطع میشوند.
۲. کانفیگ فایروال سیسکو (Cisco ASA / Firepower FTD)
فایروالهای سیسکو از مکانیزم لیستهای دسترسی (ACL) و سطح امنیت (Security Level) اینترفیسها استفاده میکنند.
روش و دلیل کانفیگ: ترافیک از Inside (سطح ۱۰۰) به Outside (سطح ۰) بهصورت پیشفرض مجاز است، اما عکس آن نیاز به ACL دارد. برای باز کردن پورتها از بیرون، ACL مینویسیم و آن را به اینترفیس خارجی متصل میکنیم.
object network ADMIN_PC
host 192.168.10.50
exit
access-list OUTSIDE_IN extended permit tcp any any eq 80
access-list OUTSIDE_IN extended permit tcp any any eq 443
access-list OUTSIDE_IN extended permit tcp object ADMIN_PC any eq 22
access-group OUTSIDE_IN in interface outside
policy-map global_policy
class inspection_default
inspect icmp
inspect http
نکته: تعریف شیء (Network Object) برای آدرس ادمین باعث مدیریت تمیزتر ACL و قابلیت استفاده مجدد در قوانین دیگر میشود.
۳. کانفیگ فایروال میکروتیک (MikroTik RouterOS)
میکروتیک در بخش IP Firewall Filter از ساختاری شبیه به iptables استفاده میکند.
روش و دلیل کانفیگ: ترتیب قرارگیری قوانین حیاتی است؛ قوانین از بالا به پایین خوانده میشوند. اول کانکشنهای معتبر را پذیرفته، سپس پورتها را باز کرده و در نهایت بقیه ترافیکهای ناشناس را Drop میکنیم.
/ip firewall filter
add chain=input action=accept connection-state=established,related comment="Accept Established/Related"
add chain=input action=accept protocol=tcp dst-port=80 comment="Accept HTTP"
add chain=input action=accept protocol=tcp dst-port=443 comment="Accept HTTPS"
add chain=input action=accept protocol=tcp src-address=192.168.10.50 dst-port=22 comment="Accept Admin SSH"
add chain=input action=drop comment="Drop everything else"
نکته: قانون Drop پایانی مانند تور امنیتی عمل میکند و هر ترافیکی که با قوانین بالا مطابقت نداشته باشد را مسدود میکند.
۴. فایروال نسل جدید NGFW و تفاوت آن با فایروال سنتی
فایروالهای سنتی فقط بر اساس IP و پورت (لایههای ۳ و ۴) تصمیم میگیرند و نسبت به محتوای بسته و رفتار نرمافزاری ترافیک «کور» هستند. اما فایروال نسل جدید NGFW فراتر عمل میکند:
- شناسایی اپلیکیشنها (Application Identification) بهجای فقط پورت
- سیستم پیشگیری از نفوذ IPS برای شناسایی و توقف حملات
- بازرسی عمیق بستهها (DPI) برای بررسی محتوای واقعی داده
- فیلترینگ وب، آنتیویروس، DLP و گزارشدهی متمرکز
در نتیجه، کانفیگ NGFW بهجای «باز کردن پورت»، بر مفهوم Zone + Policy + Profile بنا شده و تصمیمگیری بر اساس «هاست + اپلیکیشن + کاربر» انجام میشود.
۵. نمونه کانفیگ تخصصی فایروال فورتی گیت (FortiGate)
فورتیگیت یکی از محبوبترین فایروالهای نسل جدید در ایران و دنیاست که سیستمعامل آن FortiOS است و هم از وباینترفیس و هم CLI مدیریت میشود.
سناریو: تعریف دو Zone (LAN و WAN)، اجازه اینترنت به شبکه داخلی و مسدود کردن اپلیکیشن تورنت و سایتهای مخرب از طریق پروفایل امنیتی.
گام ۱: تعریف Zone و اینترفیس
config system zone
edit "LAN"
set interface "port1" "port2"
next
edit "WAN"
set interface "port3"
next
end
دلیل کانفیگ: با گروهبندی اینترفیسها در Zone، تنظیمات امنیتی یکبار تعریف و روی همه اعضا اعمال میشود؛ بدون نیاز به بازنویسی قوانین برای اینترفیسهای جدید.
گام ۲: تعریف پروفایل امنیتی (اپلیکیشن کنترل و IPS)
config application list
edit "block-torrent"
set default-action allow
config entries
edit "Torrent"
set action block
next
end
next
end
config ips sensor
edit "default-ips"
config entries
edit "all"
set action block
set status enable
next
end
next
end
دلیل کانفیگ: IPS حملات شناختهشده (مانند RCE یا SQL Injection) را در لحظه بلوک میکند و اپلیکیشن کنترل، ترافیک تورنت را حتی روی پورت غیراستاندارد (مثل ۴۴۳) بر اساس امضای رفتاری شناسایی و متوقف میکند، این دقیقاً تفاوت NGFW با بستن یک پورت در فایروال سنتی است.
گام ۳: تعریف Firewall Policy
config firewall policy
edit 1
set name "LAN-to-WAN"
set srcintf "LAN"
set dstintf "WAN"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set utm-status enable
set application-list "block-torrent"
set ips-sensor "default-ips"
set nat enable
next
end
دلیل کانفیگ: این پالیسی عبور ترافیک شبکه داخلی به اینترنت را با اعمال همزمان پروفایلهای IPS و اپلیکیشن کنترل و فعالسازی NAT فراهم میکند تا آدرسهای خصوصی درست ترجمه شوند. تنظیم logtraffic all نیز برای مانیتورینگ و امنیت ضروری است.
نکته مهم فورتیگیت: برخلاف میکروتیک، در FortiGate قانون ضمنی (Implicit Rule) در انتها همهچیز را Deny میکند؛ پس فقط کافی است قوانین Allow بنویسید و نیازی به نوشتن Drop ندارید.
نکات امنیتی مهم در کانفیگ فایروالها
- قبل از اعمال قانون Drop نهایی، همیشه دسترسی ادمین خود را تست کنید تا دچار قفل شدن (Lockout) نشوید.
- پورتهای پیشفرض مدیریتی (مانند SSH پورت ۲۲) را به پورتهای بالاتر و نامتعارف تغییر دهید تا اسکنرهای خودکار هدف قرارتان ندهند.
- لاگگیری (Logging) دسترسیهای غیرمجاز را فعال کنید تا رفتار مشکوک در شبکه بهموقع شناسایی شود.
- برای مدیریت بهتر، از ACL مبتنی بر اپلیکیشن و کاربر (در NGFW) بهجای فقط پورت استفاده کنید.
فایروال اولویت اول هر زیرساخت امنیتی است و انتخاب نوع آن باید بر اساس نیاز، مقیاس شبکه و سطح تهدید انجام شود. فایروالهای کلاسیک (iptables، سیسکو، میکروتیک) برای فیلترینگ پایه و معماریهای سادهتر مناسباند، درحالیکه فایروالهای نسل جدید مانند فورتیگیت با شناسایی اپلیکیشنها و IPS، امنیت بسیار عمیقتری برای شبکههای سازمانی فراهم میکنند. آشنایی با روش کانفیگ و دلیل هر تنظیم، تفاوت بین یک فایروال «نصبشده» و یک فایروال «امن» را مشخص میکند.
نظرات کاربران
هنوز نظری ثبت نشده است. اولین نفری باشید که نظر خود را مینویسد!