IPTables فایروال قدرتمند لینوکس است. در این راهنما نصب، پیکربندی و نوشتن قوانین آی‌پی‌تیبلز را با مثال‌های عملی یاد می‌گیرید.

آموزش IPTables در لینوکس و مراحل گام‌به‌گام ساخت آن

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

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

نصب و پیکربندی IPTables در لینوکس

قبل از هر کاری شما باید مطمئن شویم که ابزار IPTables روی سیستم نصب است. برای بررسی این موضوع می‌توان از دستور ساده زیر استفاده کرد:

iptables –version

اگر تصویری مشابه زیر به شما نشان داده شد، یعنی IPTables روی لینوکس نصب است.

در غیر این صورت یعنی IPTables بر روی سیستم عامل شما نصب نیست و باید ابتدا این کار را انجام دهید.

نصب IPTables روی لینوکس دبیان

نصب و راه‌اندازی فایروال IPTables یکی از مراحل مهم برای ایمن‌سازی سیستم به شمار می‌آید. لازم به ذکر است که IPTables برای مدیریت ترافیک مبتنی بر IPv4 طراحی شده و برای پشتیبانی از IPv6 باید از ابزار جداگانه‌ای به ‌نام ip6tables استفاده کرد. خیلی از افراد به اشتباه این دو ابزار را یکی می‌دانند، اما باید بدانید که این دو سیستم به‌صورت کاملا مستقل از هم عمل می‌کنند و قابل ترکیب نیستند. برای نصب کافیست تا مراحل زیر را به ترتیب انجام دهید.

ابتدا از طریق ترمینال دستور زیر را وارد کنید تا بسته IPTables نصب شود:

sudo apt install iptables

با این فرمان ابزار اصلی فایروال به سیستم اضافه می‌شود. اما برای اینکه تنظیمات اعمال ‌شده بعد از هر بار راه‌اندازی مجدد سیستم (Reboot) حفظ شوند، لازم است پکیج iptables-persistent را نیز نصب کنید. برای انجام این کار باید کد زیر را وارد کنید:

sudo apt install iptables-persistent

در حین نصب این بسته از شما سوال می‌شود که آیا مایل به ذخیره‌سازی قوانین فعلی فایروال برای IPv4 و IPv6 هستید یا خیر. با تایید این گزینه‌ها سیستم فایل‌هایی ایجاد می‌کند که قوانین IPTables در آن‌ها نگهداری می‌شوند.

در نهایت، برای اینکه سرویس مربوط به فایروال به‌طور خودکار در هر بار ری‌استارت سیستم فعال شود، دستور زیر را وارد کنید:

sudo systemctl enable netfilter-persistent

اجرای این مرحله باعث می‌شود قوانین امنیتی شما همواره پس از روشن شدن سرور فعال بمانند و نیازی به اعمال دستی مجدد آن‌ها نباشد. این روش یکی از مطمئن‌ترین راه‌ها برای مدیریت فایروال در توزیع‌های مبتنی‌بر دبیان است.

نصب IPTables در لینوکس RedHat

در توزیع‌های لینوکسی مبتنی‌بر RedHat مانند RHEL، CentOS و Rocky Linux ابزار IPTables همچنان یکی از گزینه‌های پرکاربرد برای مدیریت ترافیک شبکه و پیاده‌سازی سیاست‌های امنیتی محسوب می‌شود. اگرچه در نسخه‌های جدیدتر ابزار firewalld به‌صورت پیش‌فرض جایگزین IPTables شده، اما بسیاری از کاربران به ‌دلیل سادگی و کنترل دقیق‌تر همچنان IPTables را ترجیح می‌دهند. برای نصب IPTables ابتدا باید از مدیریت بسته YUM استفاده کنید. با اجرای دستور زیر بسته اصلی IPTables به سیستم شما اضافه می‌شود:

sudo yum install iptables

البته نصب این بسته به تنهایی کافی نیست؛ چرا که قوانین IPTables پس از هر بار راه‌اندازی مجدد سیستم از بین می‌روند. برای جلوگیری از این مشکل باید بسته iptables-services را نیز نصب کنید:

sudo yum install iptables-services

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

sudo systemctl enable iptables

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

پیکربندی IPTables در لینوکس

پس از نصب موفقیت‌آمیز IPTables نوبت به پیکربندی آن برای کنترل ترافیک شبکه می‌رسد. این پیکربندی بسته به نیاز هر سرور یا سیستم ممکن است متفاوت باشد، اما اصول کلی آن مشابه است. در ادامه به برخی از رایج‌ترین سناریوهای پیکربندی با مثال‌های عملی خواهیم پرداخت.

مشاهده قوانین

برای مشاهده لیست قوانین فعال در فایروال، می‌توانید از دستور زیر استفاده کنید:

sudo iptables -L

این دستور لیستی از زنجیره‌ها (chains) و قوانین فعال در جدول پیش‌فرض فیلتر (filter table) را نمایش می‌دهد.

Loopback Traffic

یکی از مراحل اولیه در پیکربندی اجازه دادن به ترافیک داخلی سیستم یا همان loopback interface است. این مورد با دستور زیر انجام می‌شود:

sudo iptables -A INPUT -i lo -j ACCEPT

در این دستور، -A INPUT  قانون را به زنجیره ورودی اضافه می‌کند، -i lo  مشخص می‌کند که ترافیک از رابط لوکال‌هاست دریافت می‌شود و -j ACCEPT  بیانگر پذیرش آن است.

اجازه دادن به عبور ترافیک

برای باز کردن پورت‌های مربوط به سرویس‌های متداول مانند HTTP، HTTPS و SSH می‌توان از دستورات زیر استفاده کرد:

برای HTTP sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT برای HTTPS sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT SSH sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

کنترل کردن ترافیک به وسیله IP سیستم

شما می‌توانید ترافیک را بر اساس IP سیستم مبدا و مقصد نیز کنترل کنید. برای اینکه بتوان تمام ترافیک یک آدرس IP را دریافت کرد باید از کد دستوری زیر استفاده کنید:

sudo iptables -A INPUT -s [IP-address] -j ACCEPT

امکان محدودسازی دسترسی به یک آدرس IP خاص یا محدوده‌ای از IPها وجود دارد. برای انجام این کار می‌توانید از کد زیر را وارد کنید:

sudo iptables -A INPUT -s [IP-address] -j DROP

برای رد کردن ترافیک از محدوده IP باید از کد زیر استفاده کنید:

sudo iptables -A INPUT -m iprange --src-range [IP-address-range] -j REJECT

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

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

در سیستم‌های مبتنی‌بر دبیان و توزیع‌هایی مانند اوبونتو این کار با کمک بسته‌ی iptables-persistent انجام می‌شود. اگر این پکیج نصب باشد، کافی‌ست دستور زیر را برای ذخیره قوانین وارد کنید:

sudo netfilter-persistent save

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

در مقابل برای توزیع‌های RedHat و خانواده آن مانند CentOS یا Rocky Linux از دستور زیر برای ذخیره قوانین استفاده می‌شود:

sudo service iptables save

این دستور محتوای فعلی قوانین IPTables را در فایل /etc/sysconfig/iptables ذخیره می‌کند و به سیستم این امکان را می‌دهد تا در هر راه‌اندازی مجدد تنظیمات فایروال را از این فایل بارگذاری کند. با رعایت این مراحل تنظیمات امنیتی IPTables به‌طور دائمی در سیستم باقی خواهند ماند و دیگر نیازی به پیکربندی مجدد پس از هر ری‌استارت نخواهد بود.

سخن پایانی

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

سوالات متداول

فایروال IPTables در لینوکس چیست؟

IPTables ابزاری قدرتمند برای مدیریت و پیکربندی قوانین فایروال در هسته لینوکس است. این ابزار با استفاده از خط فرمان، به مدیران سیستم امکان می‌دهد تا کنترل دقیقی بر ترافیک ورودی و خروجی شبکه اعمال کنند.

آیا استفاده از IPTables در لینوکس ضروری است؟

استفاده از IPTables الزامی نیست، اما به ‌شدت توصیه می‌شود. این ابزار یک لایه امنیتی اضافی فراهم می‌کند و در سرورها، نقش مهمی در محافظت از سیستم در برابر تهدیدات شبکه‌ای دارد.

تفاوت IPTables و firewalld چیست؟

IPTables ابزار سنتی و سطح ‌پایین‌تری است که کنترل دقیق‌تری ارائه می‌دهد. این در حالی است که firewalld رابطی مدرن‌تر با پشتیبانی از نواحی (Zones) و استفاده آسان‌تر دارد.

آیا امکان استفاده هم‌زمان از IPTables و ابزارهای دیگر وجود دارد؟

استفاده هم ‌زمان ممکن است باعث تداخل شود. بهتر است تنها یکی از آن‌ها به‌عنوان فایروال اصلی سیستم فعال باشد.

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