معرفی iptables (چیست؟)
فریم ورک نتفیلتر یک زیرسیستم از هستهی لینوکس است که برای فیلترینگ بستههای رسیده به شبکه مورد استفاده قرار میگیرد. این فریمورک از نسخهی ۲٫۴ کرنل به بعد درون هستهی لینوکس قرار گرفته است. هستهی نتفیلتر از پنج تابع هوک (چنگک) در مسیر پشتهی شبکهی لینوکس تشکیل شده است که آنها را در شکل زیر مشاهده میکنید:
[INPUT]—>[1]—>[ROUTE]—>[3]—>[4]—>[OUTPUT]
| ^
| |
| [ROUTE]
v |
[۲] [۵]
| ^
| |
v |
[INPUT*] [OUTPUT*]
[۱] NF_IP_PRE_ROUTING
[۲] NF_IP_LOCAL_IN
[۳] NF_IP_FORWARD
[۴] NF_IP_POST_ROUTING
[۵] NF_IP_LOCAL_OUT
[*] Network Stack
این هوکها برای بررسی و آنالیز وضعیت بستهها در قسمتهای مختلف از پشتهی شبکهی لینوکس مورد استفاده قرار میگیرند. با کمک ماژولهای کرنل و ثبت آنها با این پنج هوک شما میتوانید دست به مدیریت بستهها در مراحل مختلف بزنید.
معرفی هوک ها
۱٫ PREROUTING:
به محض ورود بستهای به سیستم این هوک فراخوانی میشود. قبل از آن که تصمیمی دربارهی مسیر بعدی بستهها صورت بگیرد و به اصطلاح وارد فاز مسیریابی شویم، تمام بستهها بدون استثنا از این هوک عبور میکنند. به طور معمول پس از آن که بستهها از لحاظ سلامت چک شدند، به این مرحله وارد میشوند.
۲٫ LOCAL INPUT:
تمام بستههایی که مقصدشان ماشین محلی یعنی همین کامپیوتر است از این هوک میگذرند. این هوک آخرین هوکی است که در مسیر دریافت برای بستههایی که میخواهند وارد ترافیک داخلی سیستم شوند فراخوانده میشود. عملیات DNAT یا ترجمهی آدرس شبکهی مقصد و ترجمهی آدرس پورت یا NAPT هم با این هوک ثبت شدهاند.
۳٫ FORWARD:
بستههایی که به ماشین محلی یا یه عبارت دیگر سیستم ما نمیروند از این هوک عبور میکنند. چنین بستههایی از درون فایروال ما میگذرند.
۴٫ LOCAL OUTPUT:
این هوک اولین هوک در مسیر خروجی بستهها است و برای بستههایی فراخوانده میشود که از پشتهی شبکهی درون سیستم ما خارج میشوند.
۵٫ POSTROUTING:
این هوک پس از تصمیم گیری در مورد مسیریابی یک بستهی خروجی فراخوانده میشود و بر روی تمام بستههای خروجی انجام میشود. عملیات SNAT یا ترجمهی آدرس شبکهی مبدا نیز با این هوک ثبت شده است.
فایروال IPTables در واقع یک پوسته یا دستور بر پایه ماژول net filter هسته لینوکس است که سعی کرده کار با این ماژول را تا حد امکان در محیط خط فرمان ساده و بدون دردسر کند.