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

ufw ফায়ারওয়াল: অপ্রয়োজনীয় বন্ধ করা

পাঁচ মিনিটে ufw সেটআপ: প্রয়োজনীয় পোর্ট খোলা, বাকিগুলো বন্ধ, ঠিকানা অনুযায়ী অ্যাক্সেস সীমিত করা এবং নিজের SSH কেটে ফেলা এড়ানো।

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

একটি নতুন মেশিনে নেটওয়ার্কে যেসব সার্ভিস শোনে, সবই খোলা থাকে। কিছু সার্ভিস আপনি সচেতনভাবে ইনস্টল করেছেন, কিছু প্যাকেজের সাথে এসেছে। একটি ফায়ারওয়াল এক ধাপেই এটি সমাধান করে: আপনি যা তালিকাভুক্ত করবেন তা ছাড়া বাকি সব বন্ধ থাকে।

ufw কার্নেল নিয়মের উপর একটি সহজ র‍্যাপার। বেশিরভাগ ক্ষেত্রেই এটি যথেষ্ট; আরও জটিল সেটআপ নিয়ে আলোচনা আছে nftables নিবন্ধে।

প্রাথমিক সেটআপ

apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw enable
ufw status verbose

এখানে ক্রম গুরুত্বপূর্ণ: SSH নিয়মটি এনেবল করার আগে যোগ করা হয়। অন্যথায় ufw enable আপনার সংযোগ কেটে দেবে, এবং প্যানেলের কনসোল /hosting/vds/m/<id> বা রেসকিউ মোড দিয়ে আপনাকে আবার ঢুকতে হবে।

প্যানেলের কনসোল নেটওয়ার্কের উপর নির্ভর করে না, তাই আপনি সম্পূর্ণভাবে নিজেকে লক আউট করতে পারবেন না — তবে এতে সময় লাগে।

সাধারণ নিয়ম

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow from 203.0.113.5 to any port 22 proto tcp
ufw limit 22/tcp
ufw delete allow 80/tcp
ufw status numbered
ufw delete 3

ufw limit যে কেউ ৩০ সেকেন্ডে ছয়টির বেশি সংযোগ খোলে তাকে ধীর করে দেয় — পাসওয়ার্ড ব্রুট-ফোর্সিংয়ের বিরুদ্ধে সস্তা সুরক্ষা। একই কাজের জন্য আরও নির্ভুল টুল হলো fail2ban।

allow from নিয়মটি সেইসব সার্ভিসের জন্য উপযোগী যেগুলো পাবলিক হওয়া উচিত নয়: ডেটাবেস, অ্যাডমিন প্যানেল, মেট্রিক্স এক্সপোর্টার।

ufw allow from 203.0.113.5 to any port 5432 proto tcp

ফলাফল যাচাই করুন

ufw status verbose
ss -tulpn

ss দেখায় সিস্টেম কী শুনছে, ufw status দেখায় বাইরে থেকে কী অনুমোদিত। তালিকা দুটির পার্থক্যই হলো আপনার বন্ধ করা সার্ভিসগুলো, এবং এটা ঠিক আছে। উল্টোটা খারাপ: ufw-তে একটি পোর্ট খোলা, কিন্তু কোনো লিসেনার নেই।

বাইরে থেকে পিং নয়, পোর্ট দিয়ে যাচাই করুন:

nc -vz <address> 443

Docker এবং ufw

মেশিনে Docker চললে মনে রাখবেন: কন্টেইনার পোর্ট ফরওয়ার্ডিং ufw নিয়মের আগে কার্নেল চেইনে পরিচালিত হয়। -p 5432:5432 দিয়ে চালু করা একটি কন্টেইনার ufw status-এ deny দেখালেও বাইরে থেকে পৌঁছানো যাবে। এমন পোর্ট লোকাল ইন্টারফেসে বাইন্ড করুন:

docker run -p 127.0.0.1:5432:5432 postgres

সাধারণ ভুল

ভুলপরিণতিসমাধান
SSH নিয়ম ছাড়া ufw enableনেটওয়ার্ক অ্যাক্সেস হারানোপ্যানেল কনসোল দিয়ে ঢুকুন, ufw allow 22/tcp
SSH পোর্ট বদলেছেন, পুরনো নিয়ম রেখে দিয়েছেনএকই ঘটনাআগে নিয়ম, তারপর পোর্ট
পোর্ট খোলা, সার্ভিস সাড়া দেয় নাসার্ভিস 127.0.0.1-এ শোনেবাইন্ড অ্যাড্রেস বদলান
deny সত্ত্বেও কন্টেইনারে পৌঁছানো যায়Docker ufw এড়িয়ে যায়127.0.0.1-এ বাইন্ড করুন

কোনো পোর্ট বন্ধ করার আগে ss -tulpn চালান এবং নিশ্চিত করুন সেখানে কী আছে তা আপনি বুঝছেন। বন্ধ করা মনিটরিং পোর্ট পরে "সার্ভিস ডাউন হয়ে গেছে" বলে মনে হয়।