شبکه در لینوکس

معرفی nftables و مهاجرت از iptables

جانشین رسمی iptables

nftables جانشین رسمی iptables در هسته لینوکس است و در توزیع‌های جدید (مثل Debian و RHEL نسخه‌های اخیر) به‌صورت پیش‌فرض جایگزین آن شده. مزیت‌های اصلی nftables نسبت به iptables عبارت‌اند از سینتکس خواناتر، امکان تعریف چند قانون در یک دستور (به‌جای فراخوانی جداگانه برای هر پروتکل)، و کارایی بهتر برای مجموعه قوانین بزرگ.

› ایجاد یک جدول و زنجیره جدید
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }

› اجازه به لوپ‌بک و اتصالات برقرارشده
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input ct state established,related accept

› اجازه به SSH و HTTPS در یک خط با آدرس مجموعه پورت
sudo nft add rule inet filter input tcp dport { 22, 443 } accept

› مشاهده قوانین فعلی
sudo nft list ruleset

برخلاف iptables که هر خانواده پروتکل (IPv4، IPv6) جدول جداگانه‌ای داشت، در nftables با استفاده از خانواده inet می‌توان هر دو را با یک مجموعه قانون پوشش داد. برای ذخیره دائمی قوانین معمولاً از فایل /etc/nftables.conf استفاده می‌شود که با سرویس systemd مرتبط به آن در بوت بارگذاری می‌شود. برای شروع کار، بهتر است ابتدا با iptables آشنا شوید (چون بیشتر مستندات و مثال‌های قدیمی بر اساس آن‌اند) و سپس به nftables مهاجرت کنید، چون مفاهیم بنیادی هر دو یکسان است.

یک تفاوت مهم دیگر در عملکرد داخلی است: iptables برای هر بسته ورودی، قوانین را یکی‌یکی و به‌ترتیب بررسی می‌کند که در مجموعه قوانین بسیار بزرگ (چند هزار خط) می‌تواند کند شود، اما nftables از یک ساختار داخلی بهینه‌تر برای مجموعه‌های بزرگ (مثل نگاشت و مجموعه‌های hash) استفاده می‌کند که سرعت پردازش را حتی با هزاران قانون تقریباً ثابت نگه می‌دارد. برای سرورهایی با ترافیک بالا یا فایروال‌هایی با قوانین پیچیده و متعدد، این تفاوت کارایی به‌مرور زمان محسوس می‌شود.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.