SSD Nodes Learn
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-07-24

নতুন VPS নিরাপদ করার ১০ মিনিটের গাইড

একটি নতুন VPS পাবলিক IP পাওয়ার মুহূর্ত থেকেই আক্রমণের শিকার হয়। root অ্যাক্সেস বন্ধ, SSH key সেটআপ এবং firewall কনফিগার করার সঠিক নিয়মটি জানুন।

প্রথম ১০ মিনিট নির্ধারণ করে আপনার সার্ভার কতটা নিরাপদ

একটি একদম নতুন VPS নিরাপদ নয়। পাবলিক IP পাওয়ার মুহূর্ত থেকেই স্ক্যানারগুলো লগ ইন করার চেষ্টা করতে থাকে। ডিফল্ট ইমেজ স্ক্যানারদের জন্য একটি বড় লক্ষ্যবস্তু তৈরি করে দেয়: root প্রায়ই অ্যাক্সেসযোগ্য থাকে, পাসওয়ার্ড প্রায়ই অনুমোদিত থাকে, কোনো firewall থাকে না এবং কোনো শিডিউল অনুযায়ী প্যাচ করা হয় না। আশার কথা হলো, এই সব কিছু বন্ধ করতে মাত্র দশ মিনিট এবং কিছু কমান্ড লাগে। এটি হলো সেই runbook যা আমি প্রতিটি নতুন সার্ভারে কোনো কিছু রাখার আগে ব্যবহার করি।

এটি ক্রমানুসারে সম্পন্ন করুন, কারণ প্রতিটি ধাপ একে অপরের ওপর ভিত্তি করে তৈরি। প্রতিটি ধাপের নিজস্ব গাইড আছে যা কাজের সময় লিঙ্ক করা থাকবে; এই পৃষ্ঠাটি হলো তাদের একত্রে সংযুক্ত করার একটি দ্রুত পথ।

১ম মিনিট: সবকিছু আপডেট করুন

আপনার প্রোভাইডার দেওয়া ক্রেডেনশিয়াল দিয়ে root হিসেবে লগ ইন করুন এবং অন্য যেকোনো কাজের আগে সিস্টেমটি সম্পূর্ণ আপ-টু-ডেট করে নিন:

apt update && apt upgrade -y

প্যাচ না করা বক্স হলো সবচেয়ে সহজ লক্ষ্যবস্তু, তাই এটি সবার আগে করতে হবে। শেষ হয়ে গেলে, অটোমেটিক সিকিউরিটি আপডেট সেটআপ করুন যাতে আপনাকে মনে রাখতে না হয়।

২য় মিনিট: sudo সহ একটি সাধারণ ইউজার তৈরি করুন

root হিসেবে কাজ করা চালিয়ে যাবেন না। নিজের জন্য একটি ইউজার তৈরি করুন এবং তাকে sudo দিন:

adduser matt
usermod -aG sudo matt

এখান থেকে আপনি এই ইউজার হিসেবে লগ ইন করবেন এবং অ্যাডমিন কাজের জন্য sudo ব্যবহার করবেন। সবসময় root হিসেবে কাজ করার মানে হলো প্রতিটি ভুল এবং প্রতিটি কম্প্রোমাইজ আনলিমিটেড পাওয়ার নিয়ে ঘটে, যা unprivileged user হিসেবে কাজ করা প্রতিরোধ করার জন্যই তৈরি করা হয়েছে।

৪র্থ মিনিট: SSH keys সেটআপ করুন

পাসওয়ার্ড অনুমান করা যায়; কী (key) করা যায় না। আপনার নিজের ল্যাপটপে, যদি আপনার কাছে আগে থেকেই কোনো কী না থাকে, তবে একটি তৈরি করুন:

ssh-keygen -t ed25519

তারপর পাবলিক অংশটি সার্ভারে কপি করুন:

ssh-copy-id matt@YOUR_SERVER

নতুন ইউজারের জন্য ssh-copy-id এ পাসওয়ার্ড লগইন অন থাকতে হবে; যদি এটি আগে থেকেই অফ থাকে, তবে root এর ~/.ssh/authorized_keys কে /home/matt/.ssh/authorized_keys এ কপি করুন (যা matt এর মালিকানাধীন), অথবা আপনার পাবলিক কী ম্যানুয়ালি সেই ফাইলে পেস্ট করুন।

প্রতিটি ডিভাইসের জন্য একটি করে কী রাখা, কী লগইন নষ্ট করে দেয় এমন পারমিশন এবং হারিয়ে যাওয়া কী বাতিল করা—এই ধাপের পেছনের মডেলটি SSH key management basics এ আলোচনা করা হয়েছে।

লগ আউট করুন এবং কী ব্যবহার করে matt হিসেবে পুনরায় লগ ইন করুন, এবং পরবর্তী ধাপে যাওয়ার আগে নিশ্চিত করুন এটি কাজ করছে। কী দিয়ে ঢোকার আগে SSH লকড ডাউন করা মানে হলো মানুষ নিজেকে সার্ভার থেকে লক আউট করে ফেলে।

৬ষ্ঠ মিনিট: root লগইন এবং পাসওয়ার্ড বন্ধ করুন

এখন যেহেতু আপনার কী কাজ করছে, স্ক্যানারগুলো যে দুটি দরজা ব্যবহার করে তা বন্ধ করে দিন। একটি drop-in ফাইল ব্যবহার করুন যাতে প্যাকেজ আপগ্রেড এটি ওভাররাইট না করে। এর নাম 00- দিন যাতে এটি 50-cloud-init.conf এর আগে সাজানো থাকে, যা Ubuntu cloud images এ PasswordAuthentication yes সহ আসে; sshd প্রথম যে ভ্যালুটি পড়ে সেটিই রাখে, তাই পরে সাজানো কোনো ফাইল নীরবে হারিয়ে যেতে পারে:

sudo nano /etc/ssh/sshd_config.d/00-hardening.conf
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

তারপর SSH রিলোড করুন:

sudo systemctl restart ssh

তারপর sshd আসলে কোন সেটিংস ব্যবহার করছে তা পরীক্ষা করুন, যাতে কোনো ভুল drop-in আপনাকে ঠকাতে না পারে:

sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'

পাসওয়ার্ড অফ এবং root লগইন চলে গেলে, আপনার সার্ভারের বিরুদ্ধে ক্রমাগত brute-force ট্রাফিক সফল হতে পারবে না। একটি ঐচ্ছিক পোর্ট পরিবর্তনের সহ সম্পূর্ণ পদ্ধতি SSH hardening on a VPS এ আছে।

৮ম মিনিট: firewall চালু করুন

ইনবাউন্ড সব কিছু ডিফল্টভাবে রিজেক্ট (deny) করুন, তারপর শুধুমাত্র যা প্রয়োজন তা অনুমতি দিন। SSH চালু করার আগে এটিকে অনুমতি দিন, অন্যথায় আপনি নিজের কানেকশন নিজেই কেটে ফেলবেন:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable

আপনার চালানো যেকোনো সার্ভিসের জন্য allow রুল যোগ করুন, যেমন ওয়েবসাইটের জন্য 80/tcp এবং 443/tcp। নিশ্চিত করুন যে IPv4 এবং IPv6 উভয়ই কভার করা হয়েছে, কারণ একটি firewall যা শুধুমাত্র IPv4 ফিল্টার করে তা IPv6 side wide open রেখে দেয়। সম্পূর্ণ গাইড হলো Firewalls 101 on a VPS

১০ম মিনিট: Fail2ban দিয়ে স্ক্যানারদের ধীর করুন

অবশেষে, আপনার পোর্টগুলোতে আঘাত করা অ্যাড্রেসগুলোকে তাড়িয়ে দিতে Fail2ban যোগ করুন:

sudo apt install -y fail2ban

Ubuntu 24.04 এ ডিফল্ট ইন্সটলেশন প্রথম বুট থেকেই SSH কে সুরক্ষা দেয়। যেহেতু কী (key) আগে থেকেই প্রয়োজন, এটি আপনার প্রধান প্রতিরক্ষা হওয়ার বদলে লগ নয়েজ কমায় এবং বারবার অপরাধীদের ব্লক করে।

আপনার চেকলিস্ট

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

ToolBuild your VPS hardening checklist

প্রতিটি নতুন সার্ভারের জন্য এটি একবার করে অনুসরণ করুন এবং পুরো বিষয়টি আপনার অভ্যাসে পরিণত হবে। এখনকার এই দশ মিনিট আপনাকে সার্ভার হ্যাক হওয়ার পরবর্তী ভয়াবহ পরিস্থিতি থেকে বাঁচাবে।

প্রয়োজনীয় বিষয়গুলো সেটআপ হয়ে গেলে, automatic security updates on Ubuntu আপনাকে লগ ইন না করেই সার্ভারকে আপ-টু-ডেট রাখবে।

FAQ

একটি নতুন VPS তে আমার প্রথমে কী করা উচিত?

apt update && apt upgrade -y দিয়ে সিস্টেম আপডেট করুন, তারপর sudo সহ একটি সাধারণ ইউজার তৈরি করুন এবং root হিসেবে কাজ করা বন্ধ করুন। সেখান থেকে, SSH keys সেটআপ করুন, root লগইন এবং পাসওয়ার্ড অথেন্টিকেশন ডিজেবল করুন, একটি ডিফল্ট-রিজেক্ট firewall চালু করুন এবং Fail2ban ইন্সটল করুন। এই ক্রমে এগুলো করলে প্রতিটি ধাপ নিরাপদভাবে সম্পন্ন করা যায় যাতে আপনি নিজেকে লক আউট না করেন।

SSH হার্ডেন করার সময় আমি কীভাবে নিজেকে লক আউট হওয়া থেকে বাঁচাব?

পাসওয়ার্ড বা root ডিজেবল করার আগে আপনার SSH key লগইন সেটআপ এবং টেস্ট করুন। কী দিয়ে লগ ইন কাজ করছে তা নিশ্চিত করতে লগ আউট করে পুনরায় লগ ইন করুন, এবং তারপরই PasswordAuthentication এবং PermitRootLogin বন্ধ করুন। যখন আপনি firewall চালু করবেন, তখন ufw enable চালানোর আগে পোর্ট 22 অনুমতি দিন। যদি আপনি লক আউট হয়ে যান, তবে আপনার প্রোভাইডারের ওয়েব কনসোল আপনাকে SSH ছাড়াই পুনরায় প্রবেশ করতে সাহায্য করবে।

একটি ছোট সার্ভারের জন্য কি আমার সত্যিই এই সব কিছুর প্রয়োজন আছে?

হ্যাঁ, কারণ স্ক্যানারগুলো আপনার সার্ভার কতটা ছোট তা নিয়ে পরোয়া করে না। তারা প্রতিটি পাবলিক IP একইভাবে পরীক্ষা করে। পুরো runbook নিতে মাত্র দশ মিনিট লাগে এবং এটি সহজ পথগুলো সরিয়ে দেয়: কোনো root লগইন নেই, পাসওয়ার্ড অনুমান করা যায় না, আপনি যা বেছে নেননি তা প্রকাশ করা নেই, এবং পরিচিত বাগগুলো অটোমেটিক প্যাচ করা থাকে।

সবচেয়ে গুরুত্বপূর্ণ ধাপ কোনটি?

রুট লগইন ডিজেবল করা সহ শুধুমাত্র কী (key) দিয়ে SSH ব্যবহার করা। নতুন VPS এর ওপর বেশিরভাগ আক্রমণ হলো root এর বিরুদ্ধে অটোমেটেড পাসওয়ার্ড অনুমান করা, এবং এই দুটি বন্ধ করে দিলে আক্রমণের পুরো ক্যাটাগরিটি অসম্ভব হয়ে পড়ে। এরপর firewall এবং Fail2ban যা অবশিষ্ট থাকে তা সীমিত করে এবং ধীর করে দেয়।

সার্ভারটি আসলে লকড ডাউন হয়েছে কিনা তা আমি কীভাবে নিশ্চিত করব?

বিশ্বাস করার আগে হাতে কলমে তিনটি জিনিস পরীক্ষা করুন। sudo ss -tlnp চালান এবং নিশ্চিত করুন যে শুধুমাত্র আপনি যে পোর্টগুলো খুলতে চেয়েছেন সেগুলোই পাবলিক অ্যাড্রেসে লিসেন করছে, কোনো ভুলে যাওয়া 0.0.0.0 বা [::] সার্ভিস নেই। sudo ufw status verbose চালান এবং নিশ্চিত করুন যে ডিফল্ট ইনকামিং পলিসি হলো deny এবং সাধারণ ও (v6) উভয় রুল বিদ্যমান আছে। এবং প্রথম সেশনটি বন্ধ করার আগে সবসময় একটি দ্বিতীয় SSH সেশন খুলে রাখুন, যাতে SSH কনফিগারেশনে কোনো ভুল হলে আপনি সার্ভার থেকে লক আউট না হয়ে যান। যদি তিনটিই ঠিক থাকে, তবে বেসিক বিষয়গুলো সেটআপ হয়ে গেছে।