چطور مدیریت فایروال و nftables را از پایه تا پیشرفته انجام دهیم؟
مدیریت فایروال و تنظیمات nftables برای هر مدیر سیستم، DevOps یا صاحب سرور حیاتی است. در این راهنما به زبان فنی و عملیاتی از مبانی تا سناریوهای پیشرفته همراه با مثالهای قابل اجرا و فایل کانفیگ میپردازیم.
- چطور مدیریت فایروال و nftables را از پایه تا پیشرفته انجام دهیم؟
- مفاهیم اصلی nftables
- چرا nftables؟
- شروع سریع: نصب، بررسی و ذخیرهسازی قوانین
- مثال عملی: یک ruleset پایه (برای سرور لینوکسی)
- مدیریت setها و بلاک موقت
- NAT، Port Forwarding و Masquerade
- مقابله با DDoS و حملات SYN
- لاگینگ و مانیتورینگ قوانین
- Consejos prácticos de seguridad
- Consejos prácticos para diferentes aplicaciones
- نکات عملی برای پیادهسازی و نگهداری
- ابزارها و دیباگ
- نتیجهگیری و توصیههای عملی
- Preguntas frecuentes
مفاهیم اصلی nftables
nftables اجزای مشخصی دارد که برای طراحی یک ruleset باید با آنها آشنا باشید:
- family: خانواده پروتکل (مثلاً inet برای همزمان IPv4 و IPv6، ip، ip6، arp، bridge).
- table: کانتینر قوانین (مثلاً inet filter).
- chain: زنجیره قوانین با hook و type (input, forward, output) و priority.
- rule: شرطها و اکشنها (accept, drop, reject, counter, log).
- set / map: مجموعهها برای نگهداری IPها، پورتها یا مقادیر برای matching سریع.
- conntrack: رهگیری وضعیت اتصالات (established, related, new, invalid).
چرا nftables؟
دلایل اصلی انتخاب nftables عبارتاند از:
- پشتیبانی همزمان IPv4 و IPv6 با استفاده از family inet.
- عملکرد بهتر و امکان atomic replace برای بارگذاری امن ruleset.
- Apoyo para setها با timeout y maps برای NAT پیشرفته.
- سازگاری با iptables از طریق compatibility layer در توزیعهای جدید.
شروع سریع: نصب، بررسی و ذخیرهسازی قوانین
دستورات پایه برای بررسی، بارگذاری و ذخیرهسازی ruleset:
nft --version
nft list ruleset
nft -f /etc/nftables.conf
nft list ruleset > /etc/nftables.conf
systemctl enable --now nftablesمثال عملی: یک ruleset پایه (برای سرور لینوکسی)
فایل پیشنهادی /etc/nftables.conf با استفاده از family inet تا هم IPv4 و هم IPv6 پوشش داده شود:
table inet filter {
set allowed_ssh {
type ipv4_addr; flags timeout;
}
chain input {
type filter hook input priority 0;
policy drop;
# loopback
iif "lo" accept
# established/related
ct state established,related accept
# ICMP/ICMPv6
ip protocol icmp accept
ip6 nexthdr ipv6-icmp accept
# Allow SSH with rate limit & whitelist
tcp dport 22 ct state new limit rate 3/minute accept
ip saddr @allowed_ssh accept
# HTTP/HTTPS
tcp dport { 80, 443 } ct state new accept
# DNS
udp dport 53 accept
tcp dport 53 accept
# log and drop others
counter log prefix "nft-drop: " flags all drop
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}Explicación: این ruleset پایه loopback، اتصالات موجود، SSH (با rate limit)، HTTP/HTTPS و DNS را اجازه میدهد و بقیه ترافیک را لاگ و drop میکند. set allowed_ssh برای whitelist آیپیها با timeout مناسب است.
مدیریت setها و بلاک موقت
ایجاد و مدیریت setها برای whitelist یا blacklist بسیار کاربردی است. مثالها:
nft add element inet filter allowed_ssh { 203.0.113.5 timeout 1h }
nft list set inet filter allowed_sshبرای بلاک موقت مهاجمین، یک set با flag se acabó el tiempo بسازید و آیپیها را برای مدت مشخص اضافه کنید.
NAT، Port Forwarding و Masquerade
نمونه NAT برای VPS که چند سرویس را پشت یک IP خصوصی منتشر میکند:
table ip nat {
chain prerouting {
type nat hook prerouting priority 0;
tcp dport 2222 dnat to 10.0.0.10:22
tcp dport 8443 dnat to 10.0.0.20:443
}
chain postrouting {
type nat hook postrouting priority 100;
oif "eth0" masquerade
}
}Nota: در معماریهای cloud با چندین آدرس، از masquerade یا src NAT برای خروجی استفاده کنید. برای IPv6 از DNAT یا CIDR mapping مناسب بهره ببرید.
مقابله با DDoS و حملات SYN
nftables امکاناتی برای نرخمحدودسازی و flowtable دارد که میتوان از آنها برای کاهش اثر حملات استفاده کرد.
# allow limited number of new SYNs per second
tcp flags syn ct state new limit rate 10/second burst 20 accept
# synproxy can be used in extreme cases (kernel feature)
# nftables can match and direct traffic to synproxy or other mitigationsبرای حملات حجمی بزرگ، ترکیب فایروال سرور (nftables) با یک لایه ضد DDoS شبکهای بهترین رویکرد است تا ترافیک مخرب قبل از رسیدن به سرور فیلتر شود.
لاگینگ و مانیتورینگ قوانین
ابزارها و دستورات مفید برای مانیتورینگ:
- نمایش counters برای هر rule: nft list ruleset.
- فعالسازی لاگ با prefix و محدودسازی نرخ:
nft add rule inet filter input tcp dport 22 counter log prefix "ssh-drop: " limit rate 10/minute dropابزارهای دیگر: journalctl -f -u nftables, volcado de tcp, tshark, و nft monitor.
Consejos prácticos de seguridad
چند توصیه عملی و مهم:
- همیشه پشتیبان بگیرید: قبل از deploy، خروجی nft list ruleset را ذخیره کنید.
- از بارگذاری اتمیک استفاده کنید: nft -f /etc/nftables.conf بهصورت atomic فایل را لود میکند.
- از قفل شدن SSH جلوگیری کنید: یک rule accept موقت برای IP خود قرار دهید یا از کنسول بیرونی استفاده کنید.
- اسکریپت undo خودکار: هنگام اعمال تغییرات حساس، یک rollback خودکار در صورت عدم تأیید تنظیم کنید.
Consejos prácticos para diferentes aplicaciones
برای مدیران وردپرس و وبسایتها
تنها پورتهای ضروری (80/443/22) را باز کنید. از rate limit برای فرمهای ورود و XML-RPC استفاده کنید و مجموعهای از IPهای پنالتی برای جلوگیری از brute-force بسازید. ترکیب با CDN و WAF توصیه میشود.
Para programadores y DevOps
از family inet برای همزمان پشتیبانی IPv4/IPv6 استفاده کنید. قوانین را در VCS نگهداری و از CI/CD برای اعمال خودکار استفاده کنید. برای تست تغییرات از بارگذاری از فایل و قابلیت rollback سریع بهره ببرید.
Para comerciantes (VPS para comercio)
لوکیشن نزدیک به سرورهای بروکر یا صرافی برای کمترین latency انتخاب کنید. ترافیک inbound و outbound را به IPهای لازم محدود کنید و از whitelist برای جلوگیری از بستهشدن پورتها در زمان آپدیت بهره ببرید.
Para jugadores (VPS para juegos)
پورتهای UDP مورد نیاز بازی را باز کنید و conntrack timeouts را برای UDP بهینه کنید. در صورت نیاز به NAT، از flowtable برای عملکرد بهتر استفاده کنید و لوکیشن با پینگ پایین انتخاب نمایید.
برای هوش مصنوعی و GPU Cloud
دسترسی به پورتهای مدیریت (SSH, Kubernetes API) را فقط از IPهای مشخص مجاز کنید. در محیطهای توزیعشده قوانین بین نودها را تعریف و عملکرد conntrack را بررسی کنید. استفاده از شبکه اختصاصی و BGP/Private VLAN برای امنیت و throughput بالا توصیه میشود.
نکات عملی برای پیادهسازی و نگهداری
چند نکته عملی برای فرایند نگهداری:
- پشتیبانگیری همیشگی از ruleset قبل از تغییر.
- Uso de atomic replace Con nft -f /etc/nftables.conf.
- قرار دادن یک rule موقت accept برای IP مدیریتی قبل از اعمال تغییرات حساس.
- راهاندازی cron یا systemd-timer برای rollback خودکار در صورت عدم تأیید.
ابزارها و دیباگ
ابزارهای کلیدی برای دیباگ و مانیتورینگ:
- nft list ruleset
- nft monitor / nft monitor trace
- ss -tunlp برای نمایش پورتها
- conntrack -L از بسته conntrack-tools
- volcado de tcp O tshark برای packet capture
نتیجهگیری و توصیههای عملی
nftables ابزار قدرتمندی است که مدیریت فایروال را مدرن، سریع و منعطف میکند. با استفاده از family inet، setها، rate limit و conntrack میتوانید یک لایه حفاظتی مؤثر بسازید که برای وبسرور، VPS ترید، گیمینگ و GPU cloud مناسب است.
در کنار پیکربندی سرور، ترکیب با سرویسهای شبکهای مانند CDN، Anti-DDoS و BGP که در ۸۵+ لوکیشن جهانی ارائه میشوند، امنیت و دسترسیپذیری را به سطح قابلاطمینانتری میرساند.









