Skip to content
VDS · নেটওয়ার্ক, IP অ্যাড্রেস ও ডোমেইন

nftables: আরও জটিল নিয়ম

কখন ufw আর যথেষ্ট নয়: nftables টেবিল ও চেইনের গঠন, একটি রেডি-টু-ইউজ কার্যকর কনফিগ, অ্যাড্রেস সেট, রেট লিমিটিং, এবং পোর্ট ফরওয়ার্ডিং।

আপডেট: ২৩ আগস্ট, ২০২৬

nftables হলো সেই কার্নেল মেকানিজম, যার উপরে ufw চলে। আপনার যখন নামযুক্ত অ্যাড্রেস সেট, রেট লিমিটিং, ইন্টারফেসভেদে ভিন্ন পলিসি বা পোর্ট ফরওয়ার্ডিং দরকার — অর্থাৎ যখন আপনার রুলগুলো "একটি পোর্ট allow করুন" দিয়ে শেষ হয় না — তখন এটি সরাসরি ব্যবহার করা উচিত।

দুটি টুল একসাথে ব্যবহার করার দরকার নেই: সুইচ করার আগে ufw disable দিয়ে ufw বন্ধ করে দিন, নইলে রুলগুলো ওভারল্যাপ করবে এবং ডিবাগ করার সময় আপনাকে বিভ্রান্ত করবে।

গঠন

রুল থাকে টেবিলে, টেবিলে থাকে চেইন, আর চেইনে থাকে রুল। একটি চেইন প্যাকেট প্রসেসিং স্টেজের (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 ভুলে গেছেনলোকাল সার্ভিস ও ডেটাবেস ভেঙে পড়েলুপব্যাক ইন্টারফেস allow করুন
রুল প্রয়োগ হয়েছে কিন্তু সংরক্ষণ হয়নিরিবুটের পর সবকিছু খোলা/etc/nftables.conf-এ লিখুন
ufw ও nftables একসাথেঅনির্দেশ্য ফলাফলশুধু একটি টুল রাখুন

আপনার কাজের সেশন বন্ধ না করে আলাদা সেশনে নতুন রুলসেট পরীক্ষা করুন। একটি সহজ সুরক্ষা: ব্যাকগ্রাউন্ডে sleep 300 && nft flush ruleset — যদি নিজেই লক আউট হয়ে যান, তবে অ্যাক্সেস নিজে থেকেই ফিরে আসবে।

এই বিস্তারিতগুলো আপনার দরকার না হলে ufw-তে ফিরে যান: এটি বেশিরভাগ কাজ কভার করে।