فایروال لینوکس

احتمالا تا الان اسم iptables به گوشتون خورده باشه این ابزار که توی اکثر سیستم عامل ها به صورت پیشفرض نصبه مسئولیت حفظ امنیت شبکه سیستم عامل رو بر عهده داره

البته توی نسخه های جدید ابزار nftables خودشو داره کم کم جایگزین iptables میکنه ولی امروز قراره راجب iptables صحبت کنیم چون هنوز که هنوزه بیشترین استفاده رو داره

مهم: توی سیستم های جدید تر دستورات iptables خودشون به دستورات nftables ترجمه میشن

از این ابزار میتونیم برای گزارش گیری، تغییر دادن، فوروارد کردن، ریدایرکت کردن و/یا محدود کردن (Drop) بسته های اطلاعاتی (Packet) استفاده کنیم. این ابزار در قالب یک سری دستور در محیط متنی لینوکس در اختیار ما قرار دارد

برای شروع دستور iptables –version رو میزنیم تا مطمین بشیم که دستورات iptables در دسترس هستن این دستور باید به شما نسخه iptables رو نشون بده

جدول ها

توی iptables پنج تا جدول داریم که میتونیم قوانین رو داخلشون بنویسیم

  1. Raw
  2. Filter
  3. NAT
  4. Mangle
  5. Security

RAW

از این جدول فقط برای پیکربندی بسته ها استفاده می شود تا از ردیابی اتصال معاف باشند

Filter

این جدول،‌ جدول پیشفرضمونه که تمامی عملیات ها که معمولا هم به فایروال مربوط میشن اینجا قرار میگیرن

NAT

همونجوری که از اسمش مشخصه برای تنظیم NAT به کار میره و یکی از پر استفاده ترین کاربرهاش هم Port Forwading عه

Mangle

این بخش برای ایجاد تغییرات خیلی به خصوص استفاده میشه و خیلی کم بهش نیاز پیدا میکنید

Security

از این جدول برای “کنترل دسترسی اجباری” استفاده میشه (مثلا SELinux)

Chain ها

توی هر جدول یه سری Chain وجود داره که قوانین به ترتیب داخل اون ها قید میشن هر جدول Chain های مختص به خودش رو داره مثلا جدول filter که جدول پیشفرضه شامل Chain های INPUT، OUTPUT و FORWARD میشه. جدول NAT هم شامل Chain های PREROUTING و POSTROUTING و OUTPUT میشه.

به صورت پیشفرض توی Chain ها هیچ قانونی تنظیم نشده اما یه Policy پیشفرض داریم که باعث میشه که همه دسترسی ها باز باشه. و برای اینکه مشکلی توی تنظیم قوانین به وجود نیاد همیشه Policy پیشفرض به عنوان آخرین قانون تنظیم میشه

البته قابلیت تنظیم Chain های اختصاصی هم وجود داره

قوانین

فیلتر کردن بسته های شبکه بر پایه ی قوانین تعریف شده میباشد که هر قانون شامل یک یا چند شرط (برای اینکه یک قانون روی یک Packet اعمال شود تمامی شرط ها باید رعایت شده باشد) و هر قانون شامل یک هدف نیز میباشد (هدف به معنای آن است که چه اتفاقاتی بعد از رعایت شدن تمامی شرط ها بر روی آن بسته رخ دهد). معمولا برای شرط از این مقادیر استفاده میکنیم:‌ درگاه شبکه ورودی (مثلا eth0)،‌ نوع بسته و پورت مقصد

برای تعیین هدف برای یک قانون از آپشن -j یا –jump استفاده میکنیم و Chain هدف را تعیین میکنیم (میتواند Chain دستی یا Chain از پیش تعریف شده باشد) ولی خوب میتونید از target های پیشفرض هم استفاده کنید که شامل این ها میشن ACCEPT ، DROP، QUEUE و RETURN ولی خوب یه سری پکیج Extension روی iptables وجود داره که میتونه این ها رو گسترش بده

 

ثابت موندن تغییرات

برای ذخیره تغییرات از دستورات زیر استفاده میکنیم

iptables-save -f /etc/iptables/iptables.rules

با این دستور تغییرات ما ذخیره شده و برای برگرداندن آن میتوانید از دستور

iptables-restore /etc/iptables/iptables.rules

استفاده میکنیم

برای خودکار شدنش هم میتونید از systemd کمک بگیرید

 

دستورات

با این دستور

iptables -nvL

میتونیم قوانین تعریف شده رو ببینیم

موقع تعریف رول باید یکی از آپشن های

-D برای پاک کردن رول

-A برای اضافه کردن رول

و -R برای جا به جا کردن رول را حتما ست کنیم

 

مثلا با دستور زیر پورت 17500 رو میبندیم

iptables -A INPUT -p tcp --dport 17500 -j REJECT --reject-with icmp-port-unreachable

حالا اگه به جای -A از -D استفاده کنم میتونم رول تعریف شده رو پاک کنم

فقط حواستمون باید باشه موقع بستن دسترسی های مهم مثل ssh دسترسی خودمون رو اول باز کنیم و بعد دسترسی بقیه رو ببندیم چون رول ها به ترتیب اعمال میشن.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

نظرات کاربران

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

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