Skip to content
VDS · نیٹ ورک، IP ایڈریس اور ڈومینز

nftables: مزید پیچیدہ قواعد

جب ufw کافی نہ رہے: nftables ٹیبلز اور چینز کی ساخت، تیار اور کام کرنے والا کنفیگ، ایڈریس سیٹس، ریٹ لمیٹنگ، اور پورٹ فارورڈنگ۔

اپ ڈیٹ 23 اگست، 2026

nftables وہی کرنل میکانزم ہے جس پر ufw کام کرتا ہے۔ آپ کو اسے براہِ راست استعمال کرنا چاہیے جب آپ کو نامزد ایڈریس سیٹس، ریٹ لِمٹنگ، ہر انٹرفیس کے لیے مختلف پالیسیاں، یا پورٹ فارورڈنگ کی ضرورت ہو — یعنی جب آپ کے قواعد "ایک پورٹ کی اجازت دیں" سے آگے بڑھ جائیں۔

آپ کو دونوں ٹولز بیک وقت استعمال کرنے کی ضرورت نہیں: سوئچ کرنے سے پہلے ufw کو ufw disable کے ذریعے بند کریں، ورنہ قواعد آپس میں ٹکرائیں گے اور ڈی بگنگ کے دوران آپ کو الجھن میں ڈالیں گے۔

ساخت

قواعد ٹیبلز میں رہتے ہیں، ٹیبلز چینز پر مشتمل ہوتے ہیں، اور چینز قواعد رکھتی ہیں۔ ایک چین پیکٹ پروسیسنگ مرحلے (input، forward، output) سے منسلک ہوتی ہے اور اس کی ایک ڈیفالٹ پالیسی ہوتی ہے۔

apt install -y nftables
systemctl enable --now nftables
nft list ruleset

کام کرنے والی کنفگ

فائل /etc/nftables.conf:

#!/usr/sbin/nft -f
flush ruleset

table inet filter {
    set admins {
        type ipv4_addr
        elements = { 203.0.113.5, 198.51.100.7 }
    }

    chain input {
        type filter hook input priority 0; policy drop;

        iif lo accept
        ct state established,related accept
        ct state invalid drop

        ip protocol icmp icmp type echo-request limit rate 5/second accept

        tcp dport 22 ip saddr @admins accept
        tcp dport 22 ct state new limit rate 6/minute accept
        tcp dport { 80, 443 } accept
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

لاگو کریں اور محفوظ کریں:

nft -c -f /etc/nftables.conf
nft -f /etc/nftables.conf
systemctl restart nftables

-c فلیگ صرف نحو چیک کرتا ہے، قواعد لاگو نہیں کرتا۔ اسے ہمیشہ استعمال کریں: ٹائپو کے ساتھ drop پالیسی رسائی منقطع کر دیتی ہے، اور آپ کو /hosting/vds/m/<id> پینل میں کنسول کے ذریعے دوبارہ اندر آنا پڑے گا۔

ایڈریس سیٹس اور ریٹ لِمٹنگ

نامزد سیٹ قواعد دوبارہ لوڈ کیے بغیر موقع پر ہی ایڈٹ کیا جاتا ہے:

nft add element inet filter admins { 192.0.2.10 }
nft delete element inet filter admins { 198.51.100.7 }
nft list set inet filter admins

ٹائم آؤٹ کے ساتھ ڈائنامک سیٹ حسبِ ضرورت بلاکس کے لیے مفید ہے:

set blocked {
    type ipv4_addr
    flags timeout
    timeout 1h
}

فارورڈنگ اور ایڈریس کی تبدیلی

اس کی ضرورت ہوتی ہے اگر اندر کوئی کنٹینر یا ٹنل چل رہا ہو:

table ip nat {
    chain prerouting {
        type nat hook prerouting priority -100;
        tcp dport 8443 dnat to 10.10.0.2:443
    }
    chain postrouting {
        type nat hook postrouting priority 100;
        oifname "eth0" masquerade
    }
}

عام غلطیاں

غلطینتیجہحل
ct state established قاعدہ نہ ہوناباہر جانے والی درخواستوں کے جوابات منقطع ہو جاتے ہیںاسے پہلے قاعدے کے طور پر شامل کریں
iif lo accept بھول جانالوکل سروسز اور ڈیٹا بیسز خراب ہو جاتے ہیںلوپ بیک انٹرفیس کی اجازت دیں
قواعد لاگو کیے گئے مگر محفوظ نہیں کیے گئےری بوٹ کے بعد سب کچھ کھلا رہتا ہے/etc/nftables.conf میں لکھیں
ufw اور nftables اکٹھےغیر متوقع نتیجہصرف ایک ٹول رکھیں

نیا رول سیٹ ایک الگ سیشن میں ٹیسٹ کریں، اپنا کام کرتا ہوا سیشن بند کیے بغیر۔ ایک آسان حفاظتی اقدام: بیک گراؤنڈ میں sleep 300 && nft flush ruleset — اگر آپ خود کو لاک آؤٹ کر لیں تو رسائی خودبخود واپس آ جائے گی۔

اگر آپ کو ان تفصیلات کی ضرورت نہیں، تو ufw پر واپس جائیں: یہ زیادہ تر کاموں کا احاطہ کرتا ہے۔