آنچه در این مقاله میخوانید
nftables در Debian چیست و چگونه از آن استفاده کنیم؟
۲۴ شهریور ۱۴۰۴
اگر تا امروز برای مدیریت فایروال در لینوکس از iptables استفاده میکردید، وقتش رسیده با نسل جدید این ابزار آشنا شوید. در Debian 12، فریمورک nftables جایگزین کامل iptables شده و با امکانات پیشرفتهتر، کار شما را سادهتر و سریعتر میکند. از پشتیبانی همزمان IPv4 و IPv6 گرفته تا امکان اجرای چندین عمل در یک قانون، همهچیز در nftables به شکلی طراحی شده که مدیریت امنیت شبکه را دقیقتر و بهینهتر کند.
حتی اگر هیچ تجربهای در نوشتن اسکریپتهای فایروال نداشته باشید، میتوانید با کمک ابزارهایی مثل firewalld یا رابطهای گرافیکی، در چند دقیقه یک فایروال قدرتمند بسازید. در ادامه این مقاله، قدمبهقدم با nftables در Debian 12 آشنا میشویم، قابلیتهای آن را بررسی میکنیم و نمونه دستورات کاربردی را معرفی خواهیم کرد.
در ادامه خواهید خواند:
- معرفی nftables و کاربردهای آن
- nftables به عنوان فایروال پیشفرض در Debian
- استفاده از firewalld به جای نوشتن قوانین دستی
- بازگشت به نسخه قدیمی xtables در Debian
- فعالسازی و پیکربندی ساده nftables
- نمونه دستورات و سینتکس جدید nftables
- سوالات متداول
- جمع بندی

معرفی nftables و کاربردهای آن
nftables یک فریمورک پیشرفته برای مدیریت قوانین فایروال، Network Address Translation (NAT) و تغییر بستههای شبکه است که توسط پروژه Netfilter توسعه یافته است. در Debian 12، این ابزار بهطور پیشفرض جایگزین کامل iptables شده و بهعنوان چارچوب اصلی فیلترینگ بستهها مورد استفاده قرار میگیرد. هدف از معرفی nftables، حل مشکلات ساختاری iptables در زمینه مقیاسپذیری، کارایی و نگهداری کد بوده است.
برخلاف iptables که برای هر پروتکل (IPv4، IPv6، ARP، Bridge) ابزار جداگانهای داشت، nftables با یک رابط خط فرمان واحد، همه اینها را پوشش میدهد. این موضوع باعث سادگی مدیریت و کاهش پیچیدگیها در پیکربندی قوانین میشود. از دیگر قابلیتهای برجسته nftables میتوان به پشتیبانی از dual-stack برای IPv4 و IPv6 در یک جدول واحد، امکان انجام چندین عملیات در یک قانون، و پشتیبانی داخلی از sets برای مدیریت لیستهای آدرس یا پورت اشاره کرد.
در Debian 12، کاربران میتوانند با استفاده از این فریمورک، فایروالهای قدرتمند، انعطافپذیر و بهینهتری ایجاد کنند و از آن برای محافظت از سرورها، ایستگاههای کاری یا حتی روترهای خانگی بهره ببرند.
فایروال چیست و چگونه کار میکند؟نقش حیاتی آن در امنیت سرور
فایروال چیست
nftables به عنوان فایروال پیشفرض در Debian
از نسخه 10 (Buster) به بعد، و بهخصوص در Debian 12، فایروال nftables بهعنوان فایروال پیشفرض سیستم انتخاب شده است و جایگزین کامل ابزار قدیمی iptables شده است. این تغییر به دلیل مزایای متعدد nftables در زمینه عملکرد، مقیاسپذیری و سادگی نگهداری قوانین اعمال شده است.
در Debian 12، بسته nftables بهصورت پیشفرض نصب نیست، اما با یک دستور ساده قابل نصب و فعالسازی است و از طریق سرویس systemd به صورت خودکار در هنگام بوت سیستم اجرا میشود. این موضوع باعث میشود که امنیت شبکه از همان لحظه راهاندازی سیستم تضمین شود. همچنین، ابزارهای قدیمی مانند iptables، ip6tables، arptables و ebtables نیز بهطور پیشفرض به backend جدید nftables متصل شدهاند تا سازگاری و سهولت مهاجرت حفظ شود.
بنابراین، کاربران Debian 12 میتوانند با اطمینان کامل از یک سیستم فایروال مدرن، سریع و یکپارچه بهرهمند شوند که قابلیت مدیریت تمام پروتکلهای شبکه را در یک رابط واحد دارد.
با سرور مجازی Debian لیارا، پروژههای لینوکسی خود را روی زیرساختی پایدار و امن اجرا کن.
✅ نسخههای Debian 11 و 12 ✅ منابع اختصاصی و مقیاسپذیر ✅ دسترسی کامل SSH و مدیریت از راه دور
خرید و راهاندازی سرور مجازی Debian
استفاده از firewalld به جای نوشتن قوانین دستی
نوشتن مستقیم قوانین nftables گاهی پیچیده و وقتگیر است، مخصوصاً اگر تازهکار باشید. به همین دلیل در Debian 12 پیشنهاد میشود از firewalld استفاده کنید، یک ابزار مدیریت فایروال که کار را برای شما ساده میکند.
- مدیریت آسان: firewalld به شما اجازه میدهد بدون نیاز به نوشتن قوانین پیچیده، فایروال خود را پیکربندی کنید.
- ادغام با سیستم: این ابزار به خوبی با NetworkManager، Docker و دیگر سرویسها هماهنگ است.
- رابط گرافیکی: اگر ترجیح میدهید، میتوانید با رابط گرافیکی firewalld، تنظیمات را راحتتر انجام دهید.
- امنیت سریع: با چند دستور ساده میتوانید فایروال خود را فعال و امن کنید.
در نتیجه، firewalld گزینهای مناسب برای افرادی است که میخواهند به سرعت و بدون دردسر، فایروالی قدرتمند و قابل اعتماد داشته باشند.
بازگشت به نسخه قدیمی xtables در Debian
اگرچه nftables در Debian 12 بهعنوان فایروال پیشفرض و مدرنترین ابزار مدیریت فایروال معرفی شده، اما ممکن است در برخی شرایط خاص نیاز داشته باشید به نسخه قدیمیتر xtables بازگردید.
دلایل بازگشت به نسخه قدیمی ممکن است شامل موارد زیر باشد:
- سازگاری نرمافزارها و اسکریپتهای قدیمی که هنوز از iptables legacy پشتیبانی میکنند و با nftables به درستی کار نمیکنند.
- نیاز به استفاده از قابلیتها یا ماژولهایی که هنوز در nftables به طور کامل پیادهسازی نشدهاند.
- وجود مشکلات یا باگهایی خاص در نسخه nftables که ممکن است در محیط کاری شما تأثیرگذار باشد.
خوشبختانه Debian 12 امکان سوئیچ آسان بین نسخههای nftables و legacy را با استفاده از سیستم update-alternatives
فراهم کرده است.
برای بازگشت به نسخه قبل کافی است دستورات زیر را اجرا کنید:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo update-alternatives --set arptables /usr/sbin/arptables-legacy
sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy
و برای بازگشت دوباره به nftables، دستورات زیر را اجرا کنید:
sudo update-alternatives --set iptables /usr/sbin/iptables-nft
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
sudo update-alternatives --set arptables /usr/sbin/arptables-nft
sudo update-alternatives --set ebtables /usr/sbin/ebtables-nft
این قابلیت به شما اجازه میدهد بدون نیاز به حذف یا نصب مجدد بستهها، بهراحتی بین دو نسخه جابهجا شوید و انعطافپذیری بیشتری در مدیریت فایروال داشته باشید.
مبانی Iptables: پرکاربردترین قوانین و دستورات فایروال
مبانی Iptables
فعالسازی و پیکربندی ساده nftables
در Debian 12، فعالسازی nftables بسیار ساده و مستقیم است و به شما این امکان را میدهد که فایروالی مدرن و قابل اطمینان در سیستم خود داشته باشید. برای شروع، کافی است بسته nftables را نصب کنید و سرویس مربوطه را فعال نمایید تا در هنگام بوت سیستم بهصورت خودکار بارگذاری شود.
برای نصب و فعالسازی nftables مراحل زیر را دنبال کنید:
sudo apt update
sudo apt install nftables
sudo systemctl enable nftables.service
sudo systemctl start nftables.service
پس از این مراحل، nftables به صورت پیشفرض فعال میشود و فایل تنظیمات اصلی آن در مسیر /etc/nftables.conf
قرار دارد. میتوانید قوانین فایروال خود را در این فایل بنویسید یا از نمونه قوانین پیشفرض Debian استفاده کنید که در مسیر /usr/share/doc/nftables/examples/
موجود هستند.
برای غیرفعال کردن nftables در صورت نیاز:
sudo systemctl mask nftables.service
sudo systemctl stop nftables.service
و برای حذف کامل nftables از سیستم:
sudo apt purge nftables
با این روش ساده، میتوانید به راحتی nftables را در Debian 12 فعال و مدیریت کنید و از مزایای فایروال نسل جدید بهرهمند شوید.
آموزش نصب و راهاندازی فایروال UFW در سرور مجازی اوبونتو به زبان ساده
نصب و فایروال UFW
نمونه دستورات و سینتکس جدید nftables
nftables با یک سینتکس جدید و بهینه طراحی شده که نسبت به iptables بسیار سادهتر و قدرتمندتر است. در Debian 12 میتوانید با استفاده از ابزار خط فرمان nft
، جداول، chain ها و قوانین فایروال را به سادگی ایجاد و مدیریت کنید.
در ادامه نمونههایی از دستورات پایه nftables آورده شده است:
- ایجاد یک جدول dual-stack (برای IPv4 و IPv6) از خانواده
inet
:
sudo nft add table inet filter
- ایجاد یک chain برای ورودی ترافیک با اولویت 0:
sudo nft add chain inet filter input { type filter hook input priority 0\; }
- افزودن قانونی که همه ترافیک ورودی را قبول و شمارش کند:
sudo nft add rule inet filter input counter accept
- نمایش قوانین جدول ایجاد شده:
sudo nft list table inet filter
- پاک کردن قوانین chain مشخص:
sudo nft flush chain inet filter input
- حذف chain و سپس حذف جدول:
sudo nft delete chain inet filter input
sudo nft delete table inet filter
- ایجاد جدول و chain برای IPv6 به صورت جداگانه:
sudo nft add table ip6 filter
sudo nft add chain ip6 filter input
sudo nft add rule ip6 filter input counter accept
- نمونه قانونی برای شمارش و قبول ترافیک TCP در پورتهای 80 و 443 با وضعیتهای جدید و برقرار شده (dual-stack):
sudo nft add rule inet filter input tcp dport {80,443} ct state new,established counter accept
این سینتکس ساده و انعطافپذیر nftables، امکان تعریف قوانین پیچیده را با خوانایی و مدیریت بهتر فراهم میکند و استفاده از آن در Debian 12 به شکل پیشفرض توصیه میشود.
آشنایی با قوانین و دستورات رایج فایروال (UFW)
دستورات رایج فایروال
سوالات متداول
در ادامه، به پرسشهای رایجی میپردازیم که ممکن است در طول مطالعه این مقاله برای شما مطرح شود.
تفاوت اصلی سینتکس nftables با iptables چیست؟
سینتکس nftables سادهتر و ماژولارتر از iptables است. در nftables، شما جداول، chainها و قوانین را بهصورت ساختارمند تعریف میکنید و میتوانید IPv4 و IPv6 را در یک جدول مشترک (inet
) مدیریت کنید.
آیا میتوانم همزمان از iptables و nftables استفاده کنم؟
در Debian 12، به طور پیشفرض nftables فعال است. استفاده همزمان با iptables ممکن است باعث تداخل در قوانین شود. برای کار با iptables باید بستههای iptables-legacy
نصب و سرویس nftables غیرفعال شود.
چطور میتوانم قوانین nftables را ذخیره و پس از ریبوت سیستم بارگذاری کنم؟
قوانین فعال را میتوانید با دستور زیر ذخیره کنید:
sudo nft list ruleset > /etc/nftables.conf
و مطمئن شوید که سرویس nftables هنگام بوت فعال است:
sudo systemctl enable nftables
در مثالها، چرا از خانواده inet
استفاده میشود؟
خانواده inet
به شما اجازه میدهد قوانین را برای IPv4 و IPv6 به صورت یکجا بنویسید، بدون اینکه نیاز به تکرار قوانین برای هر پروتکل داشته باشید.
۵. آیا nftables از state connection پشتیبانی میکند؟
بله، nftables از سیستم connection tracking پشتیبانی میکند و میتوانید وضعیت اتصال را با استفاده از ct state
بررسی کنید (مانند ct state new,established
).
چطور میتوانم تمام قوانین فعال nftables را مشاهده کنم؟
با دستور زیر میتوانید کل RuleSet را ببینید:
sudo nft list ruleset
آیا میتوانم از فایل کانفیگ جداگانه برای هر جدول استفاده کنم؟
بله، میتوانید چند فایل جداگانه ایجاد و آنها را با include
در /etc/nftables.conf
اضافه کنید.
راهنمای انتخاب بهترین سیاست فایروال برای حفاظت از سرورها
سیاست فایروال
جمع بندی
nftables در Debian 12 به عنوان فریمورک پیشفرض فایروال، امکاناتی مدرن و انعطافپذیر را برای مدیریت امنیت شبکه فراهم میکند. سینتکس ساده و پشتیبانی همزمان از IPv4 و IPv6، کار با فایروال را آسانتر میکند. ابزارهایی مثل firewalld نیز برای کاربران تازهکار، پیکربندی سریع و مطمئن را ممکن میسازند.
همچنین، امکان بازگشت به نسخههای legacy، انعطافپذیری مناسبی را در اختیار شما قرار میدهد تا در شرایط مختلف بهترین انتخاب را داشته باشید. با فعالسازی و پیکربندی nftables، امنیت شبکه خود را به شکل موثر و بهینه تضمین کنید.