هلیکس گیم

آموزش چگونگی کارکرد Iptables در فایروال

عرفان مرادی
عرفان مرادی
iptables

آنچه در این مطلب می‌خوانید :

مقدمه ای بر Iptables در فایروال

راه اندازی یک فایروال خوب یک گام مهم و اساسی برای ایمن سازی هر سیستم عامل مدرن است, در اکثر توزیع‌ کنندگان, لینوکس با چند ابزار فایروال مختلف عرضه می‌شوند که می‌توانیم از آنها برای پیکربندی فایروال‌های خود استفاده کنیم. در این قسمت قصد راهنمایی و پوشش Iptables را در بخش فایروال خواهیم داشت. در ادامه با ما همراه باشید . . . Iptables یک فایروال استاندارد می باشند که به طور پیش فرض در اکثر شبکه های توزیع کننده لینوکس گنجانده شده اند ! (و نوعی مدرن به نام nftables جایگزین حالت پیش فرض آن می شود).در واقع این یک فرانت اند برای قلاب های فیلتر شبکه در سطح هسته می باشند و بدین صورت به کار میافتند که: با تطبیق و مچ شدن هر بسته ای که از رابط شبکه ای عبور می کند و از طریق مجموعه ای از قوانین کار می کند تا تصمیم بگیرد چه کاری به درستی به انجام برسد. اگر شما هم نیاز به سروری داریم که توانایی مدیریت فایروال این سرور را داشته باشید ما به شما خرید سرور مجازی گیم هلیکس گیم را پیشنهاد می‌دهیم.

چگونگی کارکرد Iptables در فایروال

قبل از شروع بحث در مورد دستورات کاربردی مورد نیاز برای کنترل Iptables و ایجاد یک خط مشی برای فایروال, بهتر هست به سراغ اصطلاحات پایه و کاربردی Iptables بزنیم و در باره نحوه عملکرد آنها بحث و گفتوگو کنیم:

IpTables در فایروال با مقایسه ترافیک شبکه با مجموعه ای از قوانین و دستورالعمل, عمل می کنند. قوانین ویژگی هایی را که یک بسته باید برای مطابقت با قانون داشته باشد، تعریف می کند و اقدامی که برای تطبیق بسته ها لازم است, انجام می دهد. گزینه های زیادی برای تعیین اینکه کدام بسته ها با یک قانون خاص مطابقت دارند وجود دارد و شما می توانید نوع پروتکل بسته را مطابقت دهید و یا توانایی مطابقت آدرس منبع یا مقصد یا پورت، و یا رابط مورد استفاده، ارتباط آن با بسته های قبلی و غیره. . . . .

هنگامی که الگوی تعریف شده مطابقت داشته باشد، عملی که انجام می شود هدف (target) نامیده می شود . یک هدف می تواند یک تصمیم نهایی سیاست برای بسته باشد، مانند پذیرش یا رها کردن. همچنین می‌توان بسته را برای پردازش به زنجیره‌ای دیگر منتقل کرد یا به سادگی رویارویی را ثبت کرد. گزینه های زیادی وجود دارد.

این قوانین در گروه هایی به نام زنجیره (chains) سازماندهی می شوند. یک زنجیره مجموعه ای از قوانین است که یک بسته را به صورت متوالی بررسی می کند. هنگامی که بسته با یکی از قوانین مطابقت دارد، اقدام مرتبط با تطبیق
را اجرا می کند و قوانین باقی مانده در زنجیره بررسی بدونه تغییر باقی خواهند ماند.

کاربران می توانند در صورت نیاز زنجیره ای ایجاد کنند: سه زنجیره به طور پیش فرض تعریف شده است. آن ها بدین گونه تفکیک میگردند:

  • INPUT (ورودی): این زنجیره تمام بسته هایی را که به سرور شما آدرس داده می شوند مدیریت می کند
  • OUTPUT (خروجی): این زنجیره حاوی قوانینی برای ترافیک ایجاد شده توسط سرور شما می باشد.
  • FORWARD (حرکت): این زنجیره برای مقابله با ترافیکی که برای سرورهای دیگری که روی سرور شما ایجاد نشده اند
    استفاده می شود. این زنجیره اساسا راهی برای پیکربندی سرور شما برای مسیریابی درخواست ها به ماشین های دیگر است.

هر زنجیره می تواند شامل صفر یا چند قانون باشد و یک سیاست (policy) پیش فرض دارد. خط مشی تعیین می کند که چه اتفاقی می افتد زمانی که یک بسته از تمام قوانین موجود در زنجیره عبور کند و با هیچ قانونی مطابقت نداشته باشد. در صورت عدم مطابقت، می توانید بسته را رها کنید یا بسته را بپذیرید.

از طریق یک ماژول که می تواند از طریق قوانین بارگذاری شود، Iptables همچنین می تواند اتصالات را ردیابی کند. این بدان معناست که شما می توانید قوانینی را ایجاد کنید که بر اساس رابطه آن با بسته های قبلی، آنچه برای یک بسته اتفاق می افتد تعریف می کند. ما این قابلیت را «ردیابی وضعیتstate tracking»، «ردیابی اتصال“connection tracking”» یا پیکربندی «ماشین حالت“state machine”» می نامیم.

برای این راهنما، ما عمدتاً پیکربندی زنجیره ورودی (INPUT) را پوشش می دهیم، زیرا شامل مجموعه قوانینی است که به ما کمک می کند ترافیک ناخواسته هدایت شده به سرور خود را انکار کنیم و نادیده شان بگیریم.

تفاوت ها و ویژگی های IPv4 در مقابل IPv6

فایروال netfilter که در هسته لینوکس گنجانده شده است، ترافیک IPv4 و IPv6 را کاملاً جدا نگه می دارد.به همین ترتیب، ابزارهای مورد استفاده برای دستکاری جداول حاوی قوانین فایروال نیز متمایز هستند. اگر IPv6 را روی سرور خود فعال کرده اید، باید هر دو جدول را برای آدرس دادن به ترافیکی که سرور تحت آن قرار می گیرد پیکربندی کنید.

دستور Iptables معمولی برای دستکاری جدول حاوی قوانین حاکم بر ترافیک IPv4 استفاده می شود. برای ترافیک IPv6 از یک دستور همراه به نام ip6tables استفاده می شود. این نکته مهمی است که باید درون ریزی سازی شود، زیرا به این معنی است که هر قواعدی که با Iptables تنظیم می کنید هیچ تاثیری بر بسته های استفاده از نسخه 6 پروتکل نخواهد داشت.

عملکرده و نحوه بین این دستورات دوقلو یکسان است، بنابراین ایجاد یک مجموعه قوانین برای هر یک از این جداول خیلی سخت نیست. فقط به یاد داشته باشید که هر زمان که تغییری ایجاد می کنید، هر دو جدول را اصلاح کنید. دستور iptables قوانینی را ایجاد می کند که برای ترافیک IPv4 اعمال می شود و دستور ip6tables قوانینی را ایجاد می کند که برای ترافیک IPv6 اعمال می شود.

توجه: شما باید مطمئن شوید که از آدرس های IPv6 مناسب سرور خود برای ایجاد قوانین ip6tables استفاده می کنید !

نکات کلیدی که در حین استفاده از Iptables می بایست بخاطر داشته باشید

اکنون که می‌دانیم Iptables چگونه بسته‌هایی را که از طریق رابط خود می‌آیند هدایت می‌کند (بسته را به زنجیره مناسب هدایت کنید، آن را با هر قانون بررسی کنید تا زمانی که یکی مطابقت داشته باشد، سیاست پیش‌فرض زنجیره را در صورت پیدا نشدن مطابقت صادر کنید)، می‌توانیم شروع به دیدن کنیم. برخی از دام ها که باید در هنگام وضع قوانین از آنها آگاه باشیم.

اول، ما باید مطمئن شویم که قوانینی برای فعال نگه داشتن اتصالات فعلی در صورت اجرای سیاست انکار (Drop) پیش فرض داریم.  اگر از طریق SSH به سرور خود متصل شده باشید، این امر به ویژه مهم است.

نکته دیگری که باید در نظر داشت این است که ترتیب قوانین در هر زنجیره مهم است. یک بسته نباید با قانون کلی تری مواجه شود که با آن مطابقت داشته باشد، اگر قرار است با قانون خاص تری مطابقت داشته باشد.

به همین دلیل، قوانین نزدیک بالای یک زنجیره باید دارای سطح خاصیت بالاتری نسبت به قوانین پایین باشند. ابتدا باید موارد خاص را مطابقت دهید و سپس قوانین کلی تری را برای مطابقت با الگوهای گسترده تر ارائه دهید.
 اگر بسته ای در کل زنجیره بیفتد (با هیچ قانونی مطابقت نداشته باشد)، به کلی ترین قانون یعنی سیاست پیش فرض برخورد می کند.

به همین دلیل، سیاست پیش فرض یک زنجیره به شدت انواع قوانینی را که در زنجیره گنجانده می شود دیکته می کند.  یک زنجیره با سیاست پیش فرض ACCEPT حاوی قوانینی است که به صراحت بسته ها را رها می کند.  زنجیره ای که به طور پیش فرض روی DROP باشد، دارای استثناهایی برای بسته هایی است که باید به طور خاص پذیرفته شوند.

نتیجه گیری استفاده از سیستم Iptables در فایروال

و در آخر و نتیجه نهایی به شرح زیر: ساده ترین راه برای یادگیری نحوه عملکرد Iptables استفاده از آن برای پیاده سازی فایروال خود است. امیدوار هستیم این مطلب برای جویندگان و استفاده کنندگان از مسیر های Iptables و فایروال مورد رضایت واقع شده باشد؛ هلیکس گیم مرجع خرید سرور مجازی گیم در کشور امکان شخصی سازی فایروال را برای تمامی کاربران فراهم کرده و شما میتوانید از این امکانات ویژه به طور رایگان استفاده کنید.

میانگین امتیازات ۵ از ۵

تمامی حقوق برای هلیکس گیم محفوظ می‌باشد.