
برسی فایروال پیشرفته iptables لینوکس + آموزش کانفیگ
امنیت شبکههای لینوکسی بدون استفاده از ابزارهایی مانند iptables تقریباً غیرممکن است. این فایروال قدرتمند که به طور پیشفرض در بیشتر توزیعهای لینوکس وجود دارد، به کاربران اجازه میدهد تا کنترل دقیقی بر بستههای ورودی و خروجی داشته باشند. با تنظیم قوانین ساده یا پیشرفته در iptables میتوان دسترسیهای غیرمجاز را محدود و امنیت سرورها را به شکل قابل توجهی افزایش داد.
iptables چیست؟
iptables یک ابزار خط فرمانی در سیستمعامل لینوکس است که برای پیکربندی قوانین فایروال مورد استفاده قرار میگیرد. این ابزار به مدیران سیستم اجازه میدهد تا مشخص کنند که کدام بستههای شبکه مجاز به ورود یا خروج از سیستم هستند. در واقع iptables نقش نگهبانی را ایفا میکند که بستههای داده را بر اساس مجموعهای از قوانین بررسی کرده و تصمیم میگیرد آیا اجازه عبور داشته باشند یا نه. این ابزار به طور مستقیم با netfilter هسته فایروال لینوکس کار میکند.
یکی از دلایل محبوبیت iptables انعطافپذیری بالای آن است. مدیران شبکه میتوانند قوانین بسیار سادهای مانند مسدود کردن یک آدرس IP خاص یا قوانین پیچیدهتری همچون کنترل دسترسی بر اساس پورت، پروتکل یا وضعیت اتصال ایجاد کنند. اگرچه کار با iptables میتواند در ابتدا پیچیده به نظر برسد، اما وقتی با ساختار و نحوه عملکرد آن آشنا شوید، تبدیل به ابزاری بسیار قدرتمند برای تأمین امنیت شبکه و جلوگیری از حملات مخرب خواهد شد.
اصطلاحات کلیدی در iptables
جدولها (Tables)
iptables از چند جدول اصلی استفاده میکند که هرکدام وظیفه خاصی دارند. جدول filter برای فیلتر کردن ترافیک، جدول nat برای ترجمه آدرس شبکه و جدول mangle برای تغییر بستهها استفاده میشوند. هر جدول شامل مجموعهای از زنجیرهها (chains) است که در آنها قوانین اعمال میشوند.
زنجیرهها (Chains)
زنجیرهها مسیرهایی هستند که بستههای شبکه از آن عبور میکنند. سه زنجیره پیشفرض شامل INPUT، OUTPUT و FORWARD هستند. بستهها هنگام ورود یا خروج از سیستم، از طریق زنجیره مرتبط عبور میکنند و با قوانین موجود مطابقت داده میشوند.
قوانین (Rules)
هر زنجیره شامل مجموعهای از قوانین است. این قوانین مشخص میکنند که اگر یک بسته شرایط خاصی را داشت (مثلاً از IP خاصی آمده یا مربوط به یک پورت مشخص است) چه اتفاقی برای آن بیفتد مثلاً اجازه عبور داده شود (ACCEPT) یا مسدود گردد(DROP) هر بسته را به ترتیب با این قوانین مقایسه میکند تا اولین تطابق را پیدا کند.
اهداف (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 بهعنوان جایگزینی مدرن و مدیریتپذیر برای iptables معرفی شده است. این ابزار از مفهومی به نام زون (zone) استفاده میکند و امکان اعمال تغییرات در زمان اجرا (runtime) را بدون ریست کامل قوانین فراهم میکند. همچنین از نظر سادگی استفاده رابط کاربری بهتری برای کاربران غیرتخصصی دارد. firewalld برای توزیعهایی مثل CentOS، Fedora و RHEL بهصورت پیشفرض نصب شده و برای محیطهایی که نیاز به پیکربندی پویا دارند، گزینهی مناسبی است.
iptables |
firewalld |
|
---|---|---|
ساختار مدیریتی |
دستوری (خطی) |
منطقهبندی (zones) |
سادگی استفاده |
پیچیدهتر |
سادهتر و خواناتر |
امکان تغییر در زمان اجرا |
ندارد (نیاز به بارگذاری مجدد) |
دارد |
مناسب برای چه کسانی؟ |
کاربران حرفهای و مدیران شبکه |
کاربران متوسط و سیستمهای عمومی |
پشتیبانی در توزیعها |
اکثر توزیعهای لینوکس |
بهصورت پیشفرض در RHEL، Fedora و ... |
رابط گرافیکی |
ندارد |
دارد (firewall-config) |
سرعت بارگذاری قوانین |
سریع |
کمی کندتر بهدلیل ساختار پیچیدهتر |
جمعبندی…
iptables یکی از ابزارهای قدرتمند و قدیمی در دنیای لینوکس برای مدیریت ترافیک شبکه است که با وجود معرفی گزینههای مدرنتری مانند firewalld همچنان در بسیاری از سیستمها و سناریوهای پیشرفته امنیتی مورد استفاده قرار میگیرد. انتخاب بین iptables و firewalld بستگی به سطح تخصص کاربر و نیاز به انعطافپذیری یا سادگی در مدیریت قوانین دارد. آشنایی با هر دو ابزار میتواند به مدیران شبکه در طراحی و پیادهسازی سیاستهای امنیتی کارآمدتر کمک کند.
موارد اخیر
-
فیبر چنل (Fiber Channel) چیست و چه کاربردی دارد؟
-
مقایسه فایروال سختافزاری و فایروال نرمافزاری : کدام یک پرکابرد تر است؟
-
حمله به زنجیره تأمین چیست و چگونه از آن جلوگیری کنیم؟
-
جعل URL چیست و چگونه از آن جلوگیری کنیم؟
-
بررسی کامل سیستمعامل SUSE؛ ویژگیها، کاربردها و مقایسه با Red Hat
-
راهنمای کامل انتخاب بهترین توزیع لینوکس برای انواع کاربران
-
برسی فایروال پیشرفته iptables لینوکس + آموزش کانفیگ
-
لینکوس چیست و چه کاربردی دارد؟ بهترین توزیع لینوکس برای شما کدام است؟
-
فناوری FCoE چیست؟ آشنایی کامل با Fiber Channel over Ethernet
-
LOIC چیست و چه کاربردی در امنیت سایبری دارد؟ حملات DDoS با LOIC
برترین ها
اشتراک گذاری این مطلب
دیدگاهتان را بنویسید
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *
