ابرآراز | ArazCloud

قوانین و دستورالعمل‌های iptables: راهنمای جامع برای مبتدیان

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

تنظیمات اولیه

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

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

دستورات پایه

پذیرش اتصالات Loopback

برای پذیرش تمام ترافیک در رابط Loopback، دستورات زیر را اجرا کنید:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

مجاز کردن اتصالات ورودی و خروجی

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

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

مسدود کردن ترافیک

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

برای مسدود کردن ترافیک از یک آدرس IP خاص:

sudo iptables -A INPUT -s 203.0.113.51 -j DROP

یا برای رد کردن اتصال با پیغام خطا:

sudo iptables -A INPUT -s 203.0.113.51 -j REJECT

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

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

sudo iptables -A INPUT -i eth0 -s 203.0.113.51 -j DROP

قوانین سرویس‌های خاص

مجاز کردن SSH ورودی

برای مجاز کردن تمام اتصالات SSH ورودی:

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

مجاز کردن SSH ورودی از یک Subnet خاص

برای مجاز کردن اتصالات SSH ورودی از یک Subnet خاص:

sudo iptables -A INPUT -p tcp -s 203.0.113.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

مدیریت قوانین

ذخیره قوانین

قوانین iptables پس از راه‌اندازی مجدد سیستم از بین می‌روند. برای ذخیره آنها در اوبونتو:

sudo apt install iptables-persistent

برای ذخیره تغییرات:

sudo netfilter-persistent save

مشاهده و حذف قوانین

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

sudo iptables -S
sudo iptables -L

حذف بسته‌های نامعتبر

برای حذف بسته‌های ترافیک نامعتبر:

sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

مجاز کردن ترافیک وب‌سرور

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

برای مجاز کردن اتصالات HTTP و HTTPS ورودی:

sudo iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

نکات ایمنی

  • دسترسی SSH را قفل نکنید: در صورت از دست دادن دسترسی، باید از طریق کنسول ابرک به سرور متصل شوید و قوانین فایروال را تغییر دهید.
  • اولویت‌بندی قوانین: ترتیب اجرای قوانین اهمیت زیادی دارد، از این رو دقت کنید که قوانین به ترتیب مورد نظر شما اعمال شوند.

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