برسی فایروال پیشرفته iptables لینوکس + آموزش کانفیگ

برسی فایروال پیشرفته iptables لینوکس + آموزش کانفیگ

امنیت شبکه‌های لینوکسی بدون استفاده از ابزارهایی مانند iptables تقریباً غیرممکن است. این فایروال قدرتمند که به طور پیش‌فرض در بیشتر توزیع‌های لینوکس وجود دارد، به کاربران اجازه می‌دهد تا کنترل دقیقی بر بسته‌های ورودی و خروجی داشته باشند. با تنظیم قوانین ساده یا پیشرفته در iptables می‌توان دسترسی‌های غیرمجاز را محدود و امنیت سرورها را به شکل قابل توجهی افزایش داد.

iptables چیست؟

iptables یک ابزار خط فرمانی در سیستم‌عامل لینوکس است که برای پیکربندی قوانین فایروال مورد استفاده قرار می‌گیرد. این ابزار به مدیران سیستم اجازه می‌دهد تا مشخص کنند که کدام بسته‌های شبکه مجاز به ورود یا خروج از سیستم هستند. در واقع iptables نقش نگهبانی را ایفا می‌کند که بسته‌های داده را بر اساس مجموعه‌ای از قوانین بررسی کرده و تصمیم می‌گیرد آیا اجازه عبور داشته باشند یا نه. این ابزار به طور مستقیم با netfilter هسته فایروال لینوکس کار می‌کند.

یکی از دلایل محبوبیت iptables انعطاف‌پذیری بالای آن است. مدیران شبکه می‌توانند قوانین بسیار ساده‌ای مانند مسدود کردن یک آدرس IP خاص یا قوانین پیچیده‌تری همچون کنترل دسترسی بر اساس پورت، پروتکل یا وضعیت اتصال ایجاد کنند. اگرچه کار با iptables می‌تواند در ابتدا پیچیده به نظر برسد، اما وقتی با ساختار و نحوه عملکرد آن آشنا شوید، تبدیل به ابزاری بسیار قدرتمند برای تأمین امنیت شبکه و جلوگیری از حملات مخرب خواهد شد.

WhatISiptables min

اصطلاحات کلیدی در iptables

  1. جدول‌ها (Tables)

iptables از چند جدول اصلی استفاده می‌کند که هرکدام وظیفه خاصی دارند. جدول filter برای فیلتر کردن ترافیک، جدول nat برای ترجمه آدرس شبکه و جدول mangle برای تغییر بسته‌ها استفاده می‌شوند. هر جدول شامل مجموعه‌ای از زنجیره‌ها (chains) است که در آن‌ها قوانین اعمال می‌شوند.

  1. زنجیره‌ها (Chains)

زنجیره‌ها مسیرهایی هستند که بسته‌های شبکه از آن عبور می‌کنند. سه زنجیره پیش‌فرض شامل INPUT، OUTPUT و FORWARD هستند. بسته‌ها هنگام ورود یا خروج از سیستم، از طریق زنجیره مرتبط عبور می‌کنند و با قوانین موجود مطابقت داده می‌شوند.

  1. قوانین (Rules)

هر زنجیره شامل مجموعه‌ای از قوانین است. این قوانین مشخص می‌کنند که اگر یک بسته شرایط خاصی را داشت (مثلاً از IP خاصی آمده یا مربوط به یک پورت مشخص است) چه اتفاقی برای آن بیفتد مثلاً اجازه عبور داده شود (ACCEPT) یا مسدود گردد(DROP)  هر بسته را به ترتیب با این قوانین مقایسه می‌کند تا اولین تطابق را پیدا کند.

IPTablesRules min

  1. اهداف (Targets)

هدف یا Target نشان می‌دهد که پس از تطابق یک بسته با یک قانون، چه عملی روی آن انجام شود. رایج‌ترین اهداف شامل ACCEPT، DROP و REJECT هستند. همچنین می‌توان از اهداف سفارشی یا زنجیره‌های کاربرساز استفاده کرد تا منطق‌های پیچیده‌تری ایجاد شود.

مثال‌هایی از دستورات پرکاربرد iptables

مسدود کردن یک IP خاص

   برای جلوگیری از دسترسی یک IP خاص به سیستم: 

				
					iptables -A INPUT -s 192.168.1.100 -j DROP
				
			

اجازه دادن به اتصال SSH (پورت 22)

   این دستور اجازه می‌دهد تا از راه دور با استفاده از SSH به سیستم متصل شوید: 

				
					iptables -A INPUT -p tcp --dport 22 -j ACCEPT
				
			

محدود کردن دسترسی به یک پورت خاص فقط برای یک IP

   برای مثال فقط IP مشخصی به پورت MySQL (3306) دسترسی داشته باشد: 

				
					iptables -A INPUT -p tcp -s 192.168.1.50 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

				
			

پاک کردن تمام قوانین موجود

				
					iptables -F
				
			

نمایش لیست قوانین فعال

				
					iptables -L -n -v
				
			

ذخیره تنظیمات iptables

تنظیماتی که اعمال می‌کنید با ریبوت سیستم از بین می‌روند.

در برخی سیستم‌ها: 

				
					service iptables save
				
			

یا با استفاده از iptables-persistent در Ubuntu: 

				
					sudo apt install iptables-persistent
sudo netfilter-persistent save

				
			

iptables در مقابل firewalld: کدام بهتر است؟

iptables و firewalld هر دو ابزارهایی برای کنترل ترافیک شبکه در لینوکس هستند، اما از نظر ساختار و نحوه مدیریت قوانین، تفاوت‌هایی اساسی دارند. iptables ابزاری قدیمی‌تر و سطح پایین‌تر است که به کاربر اجازه می‌دهد کنترل دقیق‌تری روی بسته‌های شبکه داشته باشد. این ابزار به‌صورت دستورات متوالی و خطی کار می‌کند، بنابراین تغییرات در آن معمولاً نیازمند بازنویسی بخش‌هایی از قوانین است. برای کاربران حرفه‌ای و مدیرانی که به انعطاف‌پذیری بالا نیاز دارند، iptables گزینه‌ای مناسب محسوب می‌شود.

firewalld vs iptables min e1746004386705

در مقابل firewalld به‌عنوان جایگزینی مدرن و مدیریت‌پذیر برای iptables معرفی شده است. این ابزار از مفهومی به نام زون (zone) استفاده می‌کند و امکان اعمال تغییرات در زمان اجرا (runtime) را بدون ریست کامل قوانین فراهم می‌کند. همچنین از نظر سادگی استفاده رابط کاربری بهتری برای کاربران غیرتخصصی دارد. firewalld برای توزیع‌هایی مثل CentOS، Fedora و RHEL به‌صورت پیش‌فرض نصب شده و برای محیط‌هایی که نیاز به پیکربندی پویا دارند، گزینه‌ی مناسبی است.

iptables
firewalld

ساختار مدیریتی

دستوری (خطی)

منطقه‌بندی (zones)

سادگی استفاده

پیچیده‌تر

ساده‌تر و خواناتر

امکان تغییر در زمان اجرا

ندارد (نیاز به بارگذاری مجدد)

دارد

مناسب برای چه کسانی؟

کاربران حرفه‌ای و مدیران شبکه

کاربران متوسط و سیستم‌های عمومی

پشتیبانی در توزیع‌ها

اکثر توزیع‌های لینوکس

به‌صورت پیش‌فرض در RHEL، Fedora و ...

رابط گرافیکی

ندارد

دارد (firewall-config)

سرعت بارگذاری قوانین

سریع

کمی کندتر به‌دلیل ساختار پیچیده‌تر

جمع‌بندی…

iptables یکی از ابزارهای قدرتمند و قدیمی در دنیای لینوکس برای مدیریت ترافیک شبکه است که با وجود معرفی گزینه‌های مدرن‌تری مانند firewalld همچنان در بسیاری از سیستم‌ها و سناریوهای پیشرفته امنیتی مورد استفاده قرار می‌گیرد. انتخاب بین iptables و firewalld بستگی به سطح تخصص کاربر و نیاز به انعطاف‌پذیری یا سادگی در مدیریت قوانین دارد. آشنایی با هر دو ابزار می‌تواند به مدیران شبکه در طراحی و پیاده‌سازی سیاست‌های امنیتی کارآمدتر کمک کند.

موارد اخیر

برترین ها

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

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

دیدگاه