SSH (সিকিউর শেল) ব্যবহার করে সার্ভারে সংযোগ করা সিস্টেম অ্যাডমিনিস্ট্রেটর এবং ডেভেলপারদের জন্য একটি মৌলিক কাজ। যদিও SSH একটি এনক্রিপ্টেড চ্যানেল সরবরাহ করে, অননুমোদিত অ্যাক্সেস থেকে আপনার সার্ভারকে রক্ষা করার জন্য এটি নিরাপদে কনফিগার করা অপরিহার্য। এই গাইডটি নিরাপদ SSH সংযোগের জন্য মূল অনুশীলনগুলি কভার করে।
1. SSH কী-ভিত্তিক প্রমাণীকরণ ব্যবহার করুন
SSH কীগুলি পাসওয়ার্ডের চেয়ে উল্লেখযোগ্যভাবে বেশি নিরাপদ। এগুলিতে ক্রিপ্টোগ্রাফিক কীগুলির একটি জোড়া জড়িত থাকে: একটি ব্যক্তিগত কী (আপনার স্থানীয় মেশিনে গোপন রাখা হয়) এবং একটি পাবলিক কী (সার্ভারে স্থাপন করা হয়)।
- কী তৈরি করুন: আপনার স্থানীয় মেশিনে, একটি কী পেয়ার তৈরি করতে
ssh-keygenব্যবহার করুন।bash ssh-keygen -t rsa -b 4096আপনাকে আপনার ব্যক্তিগত কী-এর জন্য একটি পাসফ্রেজ প্রবেশ করতে বলা হবে। একটি শক্তিশালী পাসফ্রেজ ব্যবহার করুন। - সার্ভারে পাবলিক কী কপি করুন: আপনার পাবলিক কী সার্ভারে সহজে স্থানান্তর করতে
ssh-copy-idব্যবহার করুন।bash ssh-copy-id username@your_server_ipএই কমান্ডটি আপনার পাবলিক কী সার্ভারের~/.ssh/authorized_keysফাইলে যুক্ত করে।
2. পাসওয়ার্ড প্রমাণীকরণ অক্ষম করুন
একবার SSH কী প্রমাণীকরণ কাজ করলে, ব্রুট-ফোর্স আক্রমণ প্রতিরোধ করার জন্য পাসওয়ার্ড লগইন অক্ষম করুন।
- SSH কনফিগারেশন সম্পাদনা করুন: সার্ভারে SSH ডেমন কনফিগারেশন ফাইলটি খুলুন।
bash sudo nano /etc/ssh/sshd_config - সেটিংস পরিবর্তন করুন: নিম্নলিখিত লাইনগুলি খুঁজুন এবং পরিবর্তন করুন:
PasswordAuthentication no # আপনি যদি রুট লগইন ব্যবহার করেন, তবে নিশ্চিত করুন যে এটিও অক্ষম করা হয়েছে: # PermitRootLogin no - SSH পরিষেবা পুনরায় চালু করুন: SSH পরিষেবা পুনরায় চালু করে পরিবর্তনগুলি প্রয়োগ করুন।
bash sudo systemctl restart sshd
3. ডিফল্ট SSH পোর্ট পরিবর্তন করুন
ডিফল্ট SSH পোর্ট (22) স্বয়ংক্রিয় স্ক্যানগুলির জন্য একটি সাধারণ লক্ষ্য। এটি পরিবর্তন করলে অবাঞ্ছিত ট্র্যাফিক হ্রাস পেতে পারে।
- SSH কনফিগারেশন সম্পাদনা করুন:
/etc/ssh/sshd_configএ,Port 22লাইনটি খুঁজুন এবং22কে অন্য একটি অব্যবহৃত পোর্ট নম্বর (যেমন2222) দিয়ে প্রতিস্থাপন করুন।Port 2222 - ফায়ারওয়াল আপডেট করুন: নিশ্চিত করুন যে আপনার ফায়ারওয়াল নতুন পোর্টে ট্র্যাফিকের অনুমতি দেয়।
bash sudo ufw allow 2222/tcp sudo ufw delete allow ssh # পোর্ট 22 এর জন্য পুরানো নিয়মটি সরান - SSH পরিষেবা পুনরায় চালু করুন:
bash sudo systemctl restart sshdসংযোগ করার সময়, আপনাকে নতুন পোর্ট নির্দিষ্ট করতে হবে:ssh -p 2222 username@your_server_ip।
4. ব্যবহারকারীর অ্যাক্সেস সীমিত করুন
SSH অ্যাক্সেস শুধুমাত্র প্রয়োজনীয় ব্যবহারকারীদের মধ্যে সীমাবদ্ধ করুন।
- রুট লগইন অক্ষম করুন:
/etc/ssh/sshd_configএPermitRootLogin noসেট করুন। সর্বদা একটি নিয়মিত ব্যবহারকারী হিসাবে লগ ইন করুন এবং প্রশাসনিক কাজের জন্যsudoব্যবহার করুন। - নির্দিষ্ট ব্যবহারকারী/গোষ্ঠী অনুমতি দিন: নির্দিষ্ট অ্যাকাউন্টগুলিকে হোয়াইটলিস্ট করতে
sshd_configএAllowUsersবাAllowGroupsনির্দেশাবলী ব্যবহার করুন।AllowUsers your_user another_user
5. ফায়ারওয়াল ব্যবহার করুন
শুধুমাত্র বিশ্বস্ত আইপি ঠিকানা বা নেটওয়ার্ক থেকে SSH সংযোগের অনুমতি দেওয়ার জন্য আপনার সার্ভারের ফায়ারওয়াল (যেমন ufw) কনফিগার করুন।
- UFW সহ উদাহরণ:
bash sudo ufw allow from trusted_ip_address to any port 2222 proto tcp # অথবা একটি নির্দিষ্ট সাবনেট থেকে অনুমতি দিতে # sudo ufw allow from 192.168.1.0/24 to any port 2222 proto tcpআপনার অ্যাপ্লিকেশনগুলির জন্য অন্যান্য প্রয়োজনীয় পোর্টগুলির অনুমতি দিতে ভুলবেন না।
6. Fail2Ban প্রয়োগ করুন
Fail2Ban লগ ফাইলগুলি সন্দেহজনক কার্যকলাপের জন্য স্ক্যান করে (যেমন বারবার ব্যর্থ লগইন প্রচেষ্টা) এবং স্বয়ংক্রিয়ভাবে আপোসকারী আইপি ঠিকানাগুলিকে ব্লক করার জন্য ফায়ারওয়াল নিয়মগুলি আপডেট করে।
- Fail2Ban ইনস্টল করুন:
bash sudo apt install fail2ban - কনফিগার করুন: এটি সাধারণত SSH এর জন্য আউট-অফ-দ্য-বক্স কাজ করে, তবে আপনি
/etc/fail2ban/jail.localএ এর সেটিংস কাস্টমাইজ করতে পারেন।
7. সফ্টওয়্যার আপডেট রাখুন
যেকোনো পরিচিত দুর্বলতা প্যাচ করার জন্য নিয়মিত আপনার সার্ভারের অপারেটিং সিস্টেম এবং SSH সফ্টওয়্যার আপডেট করুন।
sudo apt update && sudo apt upgrade -y
এই অনুশীলনগুলি প্রয়োগ করে, আপনি আপনার SSH সংযোগগুলির নিরাপত্তা উল্লেখযোগ্যভাবে উন্নত করতে পারেন এবং আপনার সার্ভারকে অননুমোদিত অ্যাক্সেস থেকে রক্ষা করতে পারেন।