درس ۸ از ۱۳

Firewall Filter

در مرحله «میکروتیک» حالا به Firewall Filter رسیده‌ایم؛ این موضوع را با مثال‌های واقعی باز می‌کنیم تا بدانی در Router MikroTik کجا با آن روبه‌رو می‌شوی و اگر درست کار نکرد، چه نشانه‌هایی برای ادامه عیب‌یابی ارزش دارند در این درس موضوع را در مسیر واقعی عبور داده بررسی می‌کنیم؛ از Link و Frame تا IP، Route و Service؛ هدف این است که بدانی هر مفهوم در کدام لایه تصمیم می‌گیرد، چه اطلاعاتی برای بررسی آن لازم است و چگونه از روی شواهد تشخیص بدهی مشکل در همان بخش است یا در لایه دیگری قرار دارد؛ این نگاه مرحله‌ای پایه عیب‌یابی شبکه حرفه‌ای است

این درس برای مطالعه کامل نوشته شده است

با حوصله بخوان، مثال‌ها را تحلیل کن و تمرین‌ها را انجام بده؛ هدف حفظ کردن تعریف‌ها نیست

input Traffic خود Router است

Chain input در Firewall Filter ترافیکی را بررسی می‌کند که مقصدش خود RouterOS است؛ یعنی Packet قرار نیست از روتر عبور کند و به Client دیگری برسد، بلکه برای سرویسی روی خود روتر آمده است؛ دسترسی WinBox، SSH، WebFig، DNS در صورت استفاده از Resolver، Ping به روتر و بعضی VPNها می‌توانند وارد input شوند؛ این تفاوت برای امنیت بسیار مهم است، چون Ruleای که فقط در forward نوشته شده از خود روتر محافظت نمی‌کند؛ یک طراحی معمول این است که Connectionهای معتبر اجازه داشته باشند، دسترسی مدیریتی فقط از شبکه‌های مورد اعتماد پذیرفته شود و Traffic ناخواسته از WAN رد شود؛ قبل از Drop عمومی باید سرویس‌های ضروری را دقیق بشناسی تا دسترسی خودت را قطع نکنی. Counter Ruleها نشان می‌دهند کدام Traffic Match شده و Log محدود و هدفمند می‌تواند در عیب‌یابی کمک کند؛ اگر WinBox از LAN کار می‌کند ولی از VLAN مدیریت نه، input Rule، Interface List و Route برگشت را بررسی کن؛ هدف Chain input حفاظت از خود روتر است، نه کنترل مستقیم Traffic کاربران بین شبکه‌ها

forward Traffic عبوری است

Chain forward برای ترافیکی است که از RouterOS عبور می‌کند؛ مثلاً Client LAN به اینترنت می‌رود، یک VLAN به Server VLAN دسترسی می‌گیرد یا ترافیک Port Forward به Server داخلی می‌رسد؛ اگر کاربران Gateway را Ping می‌کنند اما به اینترنت یا شبکه دیگر دسترسی ندارند، forward یکی از بخش‌های مهم بررسی است. Ruleهای این Chain باید با طراحی دسترسی بین Subnetها، WAN و VPN هماهنگ باشند؛ در شبکه امن بهتر است اجازه‌ها مشخص باشند و در انتها Traffic غیرمجاز Drop شود، اما ترتیب و Exceptionها باید طوری باشد که سرویس‌های لازم قطع نشوند. Connection State، Source/Destination Address، Interface List و Protocol از شرط‌های رایج هستند. Counterها کمک می‌کنند بفهمی Packet به Rule مورد انتظار رسیده یا قبل از آن Match شده است؛ اگر NAT Port Forward داری، Firewall Forward نیز باید اجازه لازم را بدهد؛ جدا کردن نقش input و forward باعث می‌شود هنگام عیب‌یابی بدانیم مشکل مربوط به دسترسی به خود Router است یا عبور Traffic از آن Firewall ترافیک را بر اساس سیاست و شرایطی مانند مبدأ، مقصد، پروتکل، Port و وضعیت Connection کنترل می‌کند؛ Ruleها معمولاً به ترتیب ارزیابی می‌شوند و جای Rule می‌تواند نتیجه را عوض کند؛ برای تحلیل مشکل باید مشخص شود Packet در کدام Chain یا جهت حرکت می‌کند، چه Ruleای با آن Match می‌شود و آیا Rule دیگری پیش از آن تصمیم را گرفته است؛ اصل حداقل دسترسی نیز می‌گوید فقط ترافیکی مجاز شود که برای سرویس لازم است

output Traffic تولیدشده Router است

Chain output ترافیکی را بررسی می‌کند که توسط خود RouterOS تولید شده است؛ این ترافیک می‌تواند Query DNS روتر، NTP، ارتباط Update، Ping از خود MikroTik، Syslog خروجی یا Sessionهای دیگری باشد که مبدا آن خود دستگاه است؛ در بسیاری از شبکه‌های ساده output Ruleهای محدودی دارد، اما در طراحی‌های سخت‌گیرانه ممکن است خروجی روتر نیز کنترل شود؛ اگر خود Router نمی‌تواند DNS Resolve کند یا به یک Server مانیتورینگ متصل شود، فقط forward را نگاه نکن؛ مسیر output، Route و Firewall مرتبط با خود روتر را هم در نظر بگیر. Source Address انتخاب‌شده توسط RouterOS و Routing Table نیز روی این ترافیک اثر دارند؛ در سناریوی چند WAN ممکن است Traffic خود روتر از مسیری متفاوت با Traffic کاربران خارج شود؛ عیب‌یابی باید از این سؤال شروع شود که Packet را چه کسی تولید کرده است: Client یا Router؛ فهم همین نکته تعیین می‌کند کدام Chain را باید بررسی کنی و جلوی تغییر Ruleهای نامرتبط را می‌گیرد Router زمانی وارد مسیر می‌شود که مقصد خارج از شبکه محلی باشد و جدول Routing تعیین می‌کند Packet از کدام Next Hop یا Interface عبور کند؛ Default Route فقط مسیر پیش‌فرض برای مقصدهایی است که Route مشخص‌تری ندارند؛ در بررسی مشکل باید Routeهای موجود، Prefix هر Route، Gateway یا Next Hop، وضعیت Interface و مسیر برگشت را هم دید، چون رسیدن Packet به مقصد بدون مسیر برگشت معتبر ارتباط پایدار ایجاد نمی‌کند

established و related برای Rule پایه مهم‌اند

Connection Stateهایی مانند established و related اساس Firewall Stateful در RouterOS هستند. Connection Tracking وضعیت Sessionها را نگه می‌دارد و به Firewall اجازه می‌دهد Packetهای متعلق به ارتباطی را که قبلاً مجاز شده سریع‌تر و منطقی‌تر تشخیص دهد. Rule رایج این است که established و related اجازه داده شوند تا پاسخ Connectionهای معتبر دوباره با تمام Ruleهای اولیه بررسی سنگین نشود. State invalid معمولاً نیاز به بررسی و در بسیاری از طراحی‌ها Drop دارد، اما قبل از کپی کردن Rule باید مفهوم آن را بفهمی؛ برای UDP نیز Connection Tracking می‌تواند ارتباط منطقی را نگه دارد، هرچند خود پروتکل Session به معنای TCP ندارد. NAT نیز به همین اطلاعات Connection Tracking وابسته است؛ اگر بعد از تغییر NAT یا Firewall رفتار قدیمی ادامه دارد، Connectionهای موجود ممکن است هنوز State قبلی داشته باشند؛ پاک کردن Connectionها می‌تواند Session کاربران را قطع کند، پس فقط برای تست آگاهانه انجام شود. Firewall خوب مجموعه Rule حفظی نیست؛ بر پایه فهم State و مسیر Packet ساخته می‌شود برای اینکه این مفهوم در محیط واقعی قابل استفاده شود، در RouterOS هر تغییر باید با درک Packet Flow و جای Rule در مسیر انجام شود؛ Bridge، VLAN، IP، Routing، NAT و Firewall به هم مرتبط‌اند و تغییر در یکی می‌تواند اثر بخش دیگری را تغییر دهد؛ قبل از ویرایش، Export یا Backup متناسب، ثبت نسخه RouterOS و شناخت Interface مدیریتی کمک می‌کند خطر قطع دسترسی کمتر شود

Drop باید بعد از Allowهای ضروری قرار گیرد

Rule نهایی Drop باید بعد از Allowهای ضروری قرار گیرد، چون Firewall از ترتیب Ruleها اثر می‌گیرد و اگر Drop عمومی زودتر باشد، Traffic لازم قبل از رسیدن به Rule مجازکننده متوقف می‌شود؛ این موضوع به‌خصوص در input خطرناک است؛ یک Drop اشتباه روی مدیریت می‌تواند دسترسی Remote را کاملاً قطع کند؛ قبل از افزودن Drop، مشخص کن چه Trafficهایی باید حتماً باقی بمانند: مدیریت از شبکه مشخص، Connectionهای established/related، سرویس VPN مورد نیاز، ICMP مورد نیاز برای عیب‌یابی و هر سرویس دیگری که واقعاً روی روتر ارائه می‌شود؛ سپس Counterها را مشاهده کن و تغییر را ترجیحاً با Safe Mode و مسیر برگشت انجام بده. Log کردن همه Dropها در شبکه شلوغ می‌تواند CPU و Storage را تحت فشار قرار دهد، بنابراین Logging باید هدفمند باشد. Ruleهای موقت را با Comment مشخص کن و بعد از پایان تست پاک یا مستند کن؛ سیاست «اول Allowهای لازم، سپس Drop روشن و قابل فهم» نگهداری را بسیار امن‌تر از Ruleهای پراکنده و بدون ساختار می‌کند اگر بخواهی این بخش را از حالت تعریف به مهارت عملی تبدیل کنی، WinBox و CLI دو نمای متفاوت از همان Configuration هستند؛ مهم‌تر از ابزار، این است که بتوانی وضعیت Interface، Address، Route، Connection و Log را قبل و بعد از تغییر مقایسه کنی؛ اگر نتیجه با انتظار هماهنگ نیست، به جای اضافه کردن Ruleهای بیشتر، مسیر Packet و Ruleهای Match‌شده را دوباره بررسی کن

مثال محیط واقعی

فرض کن در Router MikroTik مشکلی گزارش شده و احتمال می‌دهی به Firewall Filter مربوط باشد. قبل از تغییر، وضعیت فعلی را با WinBox، Ping، Traceroute، Torch و Log بررسی می‌کنی و نتیجه را با یک حالت سالم یا مستند معتبر مقایسه می‌کنی. اگر شواهد فرضیه را تأیید کردند، فقط همان بخش مرتبط را تغییر می‌دهی و بعد همان تست را دوباره اجرا می‌کنی تا مطمئن شوی مشکل واقعاً برطرف شده است

اشتباهات رایج

این اشتباه‌ها را تکرار نکن

  • تغییر دادن تنظیمات مرتبط با Firewall Filter قبل از اینکه مطمئن شوی مشکل واقعاً به همین بخش مربوط است
  • نتیجه‌گیری درباره Firewall Filter فقط از روی یک نشانه و بدون انجام تست نهایی
تمرین عملی

حالا خودت انجام بده

  1. در یک نمونه آزمایشی مرتبط با Firewall Filter، فقط وضعیت فعلی را مشاهده کن و سه نکته‌ای را که برای تشخیص حالت سالم مهم‌اند یادداشت کن
  2. با WinBox، Ping، Traceroute، Torch و Log وضعیت مرتبط با Firewall Filter را بدون تغییر بررسی کن، سه داده واقعی جمع کن و توضیح بده هرکدام چه چیزی به تو می‌گویند
  3. یک خطای فرضی مرتبط با Firewall Filter بنویس و مشخص کن اولین تست کم‌خطر تو چیست و چه نتیجه‌ای فرضیه‌ات را رد می‌کند

نکته‌هایی که باید با خودت ببری

  • input Traffic خود Router است
  • forward Traffic عبوری است
  • output Traffic تولیدشده Router است
  • established و related برای Rule پایه مهم‌اند
  • Drop باید بعد از Allowهای ضروری قرار گیرد
  • قبل از تغییر گسترده در MikroTik، Export و Backup بگیر و برای کار Remote از Safe Mode استفاده کن
خودسنجی

قبل از رفتن به درس بعد، جواب را برای خودت توضیح بده

این نکته را با یک مثال توضیح بده: input Traffic خود Router است. بعد بگو در عمل چطور آن را بررسی می‌کنی.

در MikroTik زنجیره input برای ترافیکی است که مقصدش خود روتر است؛ مثل WinBox، DNS روی روتر یا Ping به IP روتر

این نکته را با یک مثال توضیح بده: forward Traffic عبوری است. بعد بگو در عمل چطور آن را بررسی می‌کنی.

زنجیره forward برای ترافیکی است که از روتر عبور می‌کند؛ مثلاً Client داخلی که به اینترنت می‌رود

این نکته را با یک مثال توضیح بده: output Traffic تولیدشده Router است. بعد بگو در عمل چطور آن را بررسی می‌کنی.

زنجیره output برای ترافیکی است که خود RouterOS تولید می‌کند؛ مثلاً DNS Query یا Ping آغازشده از خود روتر

مطالعه درس همیشه عمومی است

برای ذخیره پیشرفت، دوره را رسمی شروع کن

با ثبت‌نام، تکمیل درس‌ها و نمره آزمون روی حساب ذخیره می‌شود

ثبت‌نام و شروع رسمی