مقدمه
دنیای امنیت سرور هیچوقت نمیخوابه! اگه سالها با iptables سر و کله زدی، وقتشه با بازیگر مدرنتر این عرصه آشنا بشی: nftables. این ابزار توسط خود بنیاد لینوکس به عنوان نسل جدید فایروال توسعه داده شده و قراره دردسرهای iptables رو کم کنه و یه عالمه امکانات خفنتر بهت بده. پس اگه دنبال یه فایروال همهفنحریف، سادهتر، بهینهتر و آیندهنگر هستی، وقتشه جدی به nftables فکر کنی.
nftables دقیقاً چیه؟
nftables یه فریمورک و ابزار مدیریت فایروال لینوکسیه که اومده جای iptables، ip6tables، arptables و ebtables رو بگیره و همه چیز رو یکپارچه و مدرن کنه. به کمکش میتونی قوانین Filtering، NAT و دستکاری ترافیک رو برای IPv4 و IPv6 و … با یک زبان ساده و قدرتمند مدیریت کنی.
چرا باید به nftables فکر کنی؟
مزایای کلیدی
- سادگی سینتکس: قوانین با زبان خیلی قابل فهمتر نوشته میشن، حتی رولهای پیچیده هم شسته رفته و کمحجم میمونن!
- یکپارچگی: مدیریت همه پروتکلها از یه پنجره. تموم اون سردرگمیهای نسخههای iptables تمام شد.
- عملکرد بالا: طراحی بهینهتر، مصرف کمتر منابع بهخصوص برای ترافیک زیاد.
- آیندهنگر بودن: اکثر توزیعها از نسخههای جدیدش پشتیبانی میکنن و این روند رو به افزایشه.
- اسکریپتنویسی منعطف: دستت حسابی بازه برای تعریف جدول، زنجیره و مجموعه رولهای سفارشی.
- استفاده از sets و maps: میتونی مجموعۀ IP، پورت یا … رو خیلی راحت تعریف و استفاده کنی.
- مدیریت همزمان IPv4 و IPv6
مفاهیم پایهای در nftables
- Table (جدول): مجموعهای از زنجیرهها و قوانین.
- Chain (زنجیره): جایی که رولها توش قرار میگیرن.
- Rule (قانون): دستوراتی که روی بستهها اجرا میشن.
- Set / Map: ساختار دادهای کاربردی برای قرار دادن لیست IP یا پورت و استفاده سریع.
اولین تجربه: راهاندازی عملی nftables
مثال: فقط SSH و HTTP و خروجی رو باز بذار، بقیش رو ببند
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; }
sudo nft add chain inet filter forward { type filter hook forward priority 0 \; }
sudo nft add chain inet filter output { type filter hook output priority 0 \; }
sudo nft add rule inet filter input iif "lo" accept
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input tcp dport { 22, 80 } accept
sudo nft add rule inet filter input drop
یعنی با این چند خط عملاً یه فایروال استاندارد و بهینه داری!
رایجترین دستورات nftables
مشاهده وضعیت فعلی
sudo nft list ruleset
حذف همه قوانین
sudo nft flush ruleset
ذخیره و لود قوانین
- در اوبونتو:
sudo nft list ruleset > /etc/nftables.conf
sudo systemctl enable nftables
sudo systemctl restart nftables
سناریوهای حرفهای با استفاده از sets و maps
مثلاً بخوای فقط چند تا IP به SSH وصل بشن:
sudo nft add set inet filter allowed_ssh_ips { type ipv4_addr\; }
sudo nft add rule inet filter input tcp dport 22 ip saddr @allowed_ssh_ips accept
ساده، خوانا و به شدت منعطف!
تفاوت nftables با iptables و firewalld
ویژگی | nftables | iptables | firewalld |
---|---|---|---|
سینتکس | مدرن، ساده | پیچیدهتر | بدیهی ولی وابسته به backend |
عملکرد خروجی | عالی و مقیاسپذیر | قابل قبول | خوب، راحت برای مبتدیها |
مدیریت IPv4/6 | یکپارچه و همزمان | جداگانه | با هم |
امکانات جدید | sets, maps, counters | نداره | وابسته به backend |
ذخیره قوانین | بله | بله | بله |
learning curve | متوسط | زیاد (حرفهایها) | بسیار ساده |
آیندهنگری | خیلی زیاد | رو به منسوخ شدن | برای محیط دوستانه |
ضعفها و چالشهای nftables
- منابع فارسی و آموزشها کمتر از iptablesه (ولی روز به روز در حال زیاد شدن!)
- ابزارهای جانبی، پلاگینها و اسکریپتها هنوز با سرعت بهروز نمیشن
- اگه قبلاً با iptables نفس میکشیدی، باید یه مدت برای migration وقت بذاری
نکات طلایی استفاده از nftables
- مشابه iptables، هر تغییری رو حتماً تست کن، مخصوصاً وقتی رولهای drop زیاد داری!
- سینتکس و ساختار رکتره، اما هنوز باید حواست به ترتیب اجرای رولها باشه.
- همیشه از فایل کانفیگ بکاپ بگیر تا اگه رول اشتباهی نوشتی، سرورتو از دست ندی.
- بعد هر تغییر، ruleهای فعال رو با
sudo nft list ruleset
چک کن.
- با توجه به افزایش حملات سایبری، داشتن فایروال edge server با nftables مثل خرید بیمهنامه برای شبکهته!
جدول: مزایا و معایب nftables
مزایا | معایب (پایان ۲۰۲۵) |
---|---|
سینتکس و ساختار خیلی تمیز و واضح | منابع آموزشی فارسی هنوز کمه |
یکپارچه و مدرن | برخی ابزارهای قدیمی ناسازگارن |
همزمان IPv4 و IPv6 | کمی نیاز به یادگیری داره |
پرفورمنس عالی و بهینه | انتقال رولها از iptables |
sets, maps, counters و flags جدید | نیاز به تست در سناریوهای خاص |
خلاصه به زبان آدمیزاد 😎
اگه جات تو دنیای لینوکس محکم کردی و دنبال فایروال آیندهداری، راحتی و انعطاف بیشتر میخوای، nftables همون انتخابیه که باید از همین امروز دوسش داشته باشی! دستت تو نوشتن رولها خیلی بازتره، آیندهنگرتر کار میکنی و خلاصه یه سر و گردن بالاتر از نسل قبلیشه. فقط واسه مهاجرت شاید ته دلت قرص نباشه، اما امتحانش کنی دیگه برنمیگردی!
سوالات رایج کاربران
nftables یک سیستم فایروال در لینوکس است که جایگزین iptables، ip6tables، arptables و ebtables شده و قوانین فیلترینگ شبکه را مدیریت میکند.
فرقش در زبان سادهتر، سرعت و مدیریت یکپارچگیه. هرچی تو iptables پراکنده بود، اینجا جمع و جور و ساده شده.
داشته باشی میتونه باعث تداخل و سردرگمی بشه. حدوداً فقط یکی باید فعال باشه تا مشکلات شبکهای پیش نیاد.
از نسخههای جدید بله، backend پیشفرض firewalld روی اکثر توزیعها شده nftables.
از نسخههای جدید مثل ۲۰.۰۴ و بعد، nftables به صورت پیشفرض نصب و فعال میشه.
ابزارهای کمکی وجود داره؛ مثل iptables-translate، ولی در نهایت باید شخصیسازی و تست اسکریپت بکنی تا همه چی امن و بیاشکال پیش بره.
نظر شما در مورد این مطلب چیه؟