Connection Tracking در iptables

توجه: برای دیدن لست مربوط به آموزش های IPTables به اینجا بروید.

عمل Connection Tracking در واقع نت‌فیلتر IPtables را قادر می‌سازد تا اطلاعات مربوط به هر Connection را که شامل آدرس ip مبدا و مقصد،شماره پورت مبدا و مقصد،نوع پروتکل، زمان زندگی بسته و همچنین حالت فعلی هر ارتباط می‌شود را در جدولی درون حافظه نگهداری کند. در فایروالهای Statefull از این سیستم استفاده می‌شود تا عمل فیلترینگ به طور پیشرفته‌تری انجام شود.

عمل Connection Tracking توسط  جدولی با نام Hash انجام می‌گیرد. این جدول شامل تعدادی لیست پیوندی دو طرفه متشکل از Hash Tuple‌ها می‌شود. برای هر ارتباط  دو عدد Hash Tuple داریم که یکی اطلاعات مربوط به مسیر برقرار شده رفت و دیگری اطلاعات مربوط به مسیر برگشت را در خود نگه می‌دارد.

در سیستم Connection Tracking چهار نوع حالت برای هر ارتباط تعریف شود.که عبارتند از:

۱٫New         ۲٫Stablished        ۳٫Related      ۴٫Invalid

اگر ما بسته‌ای را برای اولین بار در زنجیره‌ی Output به بیرون هدایت کنیم، حالت New به آن داده می‌شود و اگر پاسخ آن را از زنجیره‌ی Prerouting دریافت کنیم، به آن حالت Stablished می‌دهیم اگر آن ارتباط مربوط به تنها یک ارتباط باشد که قبلا Stablished شده باشد. حالت Invalid به این معنی است که حالت آن بنا به دلایلی همچون کم بودن حافظه و … نمیتواند مشخص گردد.

پس از عبور از زنجیره‌ی Prerouting باید مسیر بسته‌ها تعیین شود. در اینجا دو حالت داریم:

۱-بسته‌ها باید وارد سیستم شوند.
۲-بسته‌ها باید به شبکه خارجی ارسال شوند.

بر اساس شکل در صورتی که بخواهند داخل سیستم شوند از جداول Mangle وFilter به ترتیب عبور کرده و نهایتا وارد Process Local می‌شوند.و اگر هم باید به بیرون هدایت شوند از جداول Mangle وFilter در زنجیره‌ی Forward و بعد از آن از جداول Mangle وNAT عبور می‌کنند.در جدول NAT عمل SNAT بر روی بسته‌ها انجام می‌شود تا آدرس مبدا واقعی آنها مشخص شود.

از طرفی دیگر بسته‌هایی که درون سیستم تولید می‌شوند تا به بیرون هدایت شوند باید از جداول Mangle، NAT و Filter در زنجیره‌ی Output و بعد از آن از جداول Mangle و NAT در زنجیره‌ی Postrouting  عبور کند. در زنجیره‌ی Output درجدول NAT عمل DNAT انجام می‌گردد در حالی که در جدول NAT در زنجیره Postrouting عمل SNAT انجام می‌شود. همچنین در صورت وجود سیستم ردیابی، عمل Connection Tracking قبل از برخورد بسته‌ها با سه جدول اشاره شده انجام می‌شود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *