−25%

Windows-এর বার্ষিক পেমেন্টে, ৩১ অক্টোবর পর্যন্ত। প্ল্যান দেখুন

EQVPS

VPS-এ কীভাবে sudo ইউজার তৈরি করবেন আর root ছাড়বেন

Ubuntu বা Debian-এ root ছাড়া একটা sudo ইউজার তৈরি করুন, তাকে আপনার SSH কী দিন, পরীক্ষা করুন, তারপর root লগইন বন্ধ করুন — এমন ক্রমে যাতে আপনি বাইরে আটকে না যান।

প্রায় প্রতিটি নতুন VPS একইভাবে শুরু হয়: আপনি root হিসেবে লগইন করেন, কয়েকটা জিনিস ইনস্টল করেন, আর এক মাস পরেও root-ই থাকেন। এটা ততদিন চলে যতদিন না কোনো পেস্ট করা স্ক্রিপ্ট ভুল ফোল্ডার মুছে ফেলে। sudo সহ সাধারণ ইউজার সেট করতে পাঁচ মিনিট লাগে, আর কমান্ডের চেয়ে ক্রম বেশি গুরুত্বপূর্ণ — ক্রম ভুল হলে নিজেকে বাইরে আটকে ফেলবেন।

Ubuntu 22.04/24.04 আর Debian 12-এর জন্য নিরাপদ ক্রম এটা।

১. ইউজার তৈরি করুন

root হিসেবে:

adduser deploy
usermod -aG sudo deploy

adduser একটা পাসওয়ার্ড আর কিছু ঐচ্ছিক তথ্য চায় (ওগুলোতে শুধু Enter চাপুন)। আসল পাসওয়ার্ড বাছুন: sudo-র জন্য আপনি এটা টাইপ করবেন। Debian-এর মিনিমাল ইমেজে কমান্ড না থাকলে আগে apt install -y sudo চালান।

২. তাকে আপনার SSH কী দিন

সবচেয়ে সহজ উপায় হলো সঠিক মালিকানা রেখে root-এর অনুমোদিত কী কপি করা:

rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy

হাতে করতে চাইলে:

mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

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

৩. কিছু বদলানোর আগে পরীক্ষা করুন

root সেশন খোলা রাখুন। একটা নতুন টার্মিনালে:

ssh -p 22 deploy@203.0.113.10
sudo whoami

নিজের IP আর পোর্ট ব্যবহার করুন — NAT প্ল্যানে সেটা ড্যাশবোর্ডের ব্যক্তিগত SSH পোর্ট। sudo whoami যদি root ছাপে, সব ঠিক আছে। লগইন ব্যর্থ হলে ঠিক করার জন্য root উইন্ডো এখনও আপনার হাতে আছে।

৪. root লগইন বন্ধ করুন

এবার দরজা বন্ধ করুন। মূল কনফিগ বদলানোর বদলে একটা ছোট drop-in ফাইল তৈরি করুন:

cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh

sshd -t আগে সিনট্যাক্স পরীক্ষা করে। ভাঙা কনফিগ আর reload — এভাবেই মানুষ কনসোলের ওপর নির্ভরশীল হয়ে পড়ে। PasswordAuthentication no তখনই অর্থবহ যখন নতুন ইউজারের জন্য কী দিয়ে লগইন কাজ করছে — যা আপনি এইমাত্র পরীক্ষা করলেন।

আরেকটা টার্মিনাল খুলে নিশ্চিত হন যে root প্রত্যাখ্যাত হচ্ছে আর deploy এখনও ঢুকতে পারছে। তারপর পুরোনো root সেশন বন্ধ করুন।

৫. ঐচ্ছিক: অটোমেশনের জন্য পাসওয়ার্ড ছাড়া sudo

কোনো ডিপ্লয় স্ক্রিপ্টের প্রশ্ন ছাড়া sudo দরকার হলে ঠিক ততটুকুই দিন, তার বেশি নয়:

visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp

সত্যি বলতে NOPASSWD: ALL লোভনীয়, কিন্তু এর মানে চুরি হওয়া কী মানেই root। অটোমেশন যে কমান্ডগুলো চালায় শুধু সেগুলোতে সীমিত রাখুন।

কিছু গোলমাল হলে

ড্যাশবোর্ডের ওয়েব কনসোল SSH বা ফায়ারওয়ালের ওপর নির্ভর করে না। সেখান থেকে ঢুকুন, /etc/ssh/sshd_config.d/-এর ফাইলটা ঠিক করুন, reload করুন, ব্যস। পুরো পুনরুদ্ধারের পদ্ধতি আমরা লিখেছি আটকে যাওয়া VPS-এ কীভাবে আবার ঢুকবেন-এ।

এরপর কী

প্রতিটি প্ল্যানের অ্যাক্সেস বিকল্প অ্যাক্সেস ডকুমেন্টেশনে আছে। $3-এর Nano-ও root ছাড়া একজন ইউজারের যোগ্য — এটাই সবচেয়ে সস্তা নিরাপত্তা আপগ্রেড।

FAQ

শুধু root ব্যবহার করে গেলে সমস্যা কী?

root হিসেবে চালানো যেকোনো কিছু পুরো সিস্টেম নষ্ট করতে পারে, একটা টাইপো পর্যন্ত। বটরাও প্রথমে 'root' নাম চেষ্টা করে, তাই root লগইন বন্ধ করলে সবচেয়ে বেশি অনুমান করা লক্ষ্যটাই সরে যায়। নামওয়ালা ইউজার আর sudo প্রতিটি বিশেষাধিকারের কমান্ডের আগে আপনাকে একটু থামার সুযোগ আর কী চালানো হলো তার রেকর্ড দেয়।

যদি নিজেকে বাইরে আটকে ফেলি?

আপনার ড্যাশবোর্ডের ওয়েব কনসোল ব্যবহার করুন। SSH নষ্ট থাকলে বা ফায়ারওয়াল আটকালেও এটা কাজ করে, তাই ঢুকে sshd_config ঠিক করতে পারবেন। এ কারণেই root সেশন বন্ধ করার আগে নতুন ইউজার পরীক্ষা করা হয়।

পাসওয়ার্ড ছাড়া sudo কি চালু করব?

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

আমার Debian সার্ভারে sudo কমান্ডই নেই। কেন?

Debian-এর মিনিমাল ইমেজে এটা সবসময় থাকে না। root হিসেবে 'apt install -y sudo' দিয়ে ইনস্টল করুন, তারপর আপনার ইউজারকে sudo গ্রুপে যোগ করুন।

কোন SSH পোর্ট ব্যবহার করব?

ড্যাশবোর্ডে যেটা দেখানো আছে। ডেডিকেটেড IP প্ল্যান আপনার নিজের IP-তে পোর্ট 22 ব্যবহার করে; NAT প্ল্যান আপনার ব্যক্তিগত SSH পোর্ট ব্যবহার করে।

মন্তব্য

এখনো কোনো মন্তব্য নেই। প্রথম হোন।

একটি মন্তব্য দিন

মন্তব্য প্রকাশের আগে মডারেট করা হয়।