কীভাবে এসএফটিপি ব্যবহারকারীদের ক্রুট জেল ব্যবহার করে হোম ডিরেক্টরিতে সীমাবদ্ধ করবেন


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

ব্যবহারকারীদের হোম ডিরেক্টরিগুলি সীমাবদ্ধ করা বিশেষত একটি ভাগ করা সার্ভার পরিবেশে গুরুত্বপূর্ণ, যাতে অননুমোদিত ব্যবহারকারী অন্য ব্যবহারকারীর ফাইল এবং ফোল্ডারগুলিতে উঁকি দেয় না।

গুরুত্বপূর্ণ: দয়া করে নোট করুন যে এই নিবন্ধটির উদ্দেশ্য কেবলমাত্র এসএফটিপি অ্যাক্সেস সরবরাহ করা, এসএসএইচ লগইন নয়, এই নিবন্ধটি অনুসরণ করে ফাইল স্থানান্তর করার অনুমতি থাকবে, তবে দূরবর্তী এসএসএইচ অধিবেশন করার অনুমতি নেই।

এটি করার সহজতম উপায় হ'ল এসএফটিপি অ্যাক্সেসের জন্য জেল পরিবেশ তৈরি করা। এই পদ্ধতিটি সমস্ত ইউনিক্স/লিনাক্স অপারেটিং সিস্টেমের জন্য একই। ক্রোটেড এনভায়রনমেন্ট ব্যবহার করে আমরা ব্যবহারকারীদের তাদের হোম ডিরেক্টরি বা একটি নির্দিষ্ট ডিরেক্টরিতে সীমাবদ্ধ করতে পারি।

ব্যবহারকারীদের হোম ডিরেক্টরিতে সীমাবদ্ধ করুন

এই বিভাগে, আমরা sftpgroup নামক একটি নতুন গ্রুপ তৈরি করব এবং ব্যবহারকারীর অ্যাকাউন্টগুলিতে সঠিক মালিকানা এবং অনুমতিগুলি অর্পণ করব। ব্যবহারকারীদের বাড়িতে বা নির্দিষ্ট ডিরেক্টরিগুলিতে সীমাবদ্ধ করার জন্য দুটি পছন্দ রয়েছে, আমরা এই নিবন্ধে উভয়ভাবেই দেখতে পাব।

আসুন আমরা বিদ্যমান ব্যবহারকারীর জন্য টেকমিন্ট উদাহরণস্বরূপ তার /home/tecmint নামক হোম ডিরেক্টরিতে সীমাবদ্ধ রাখি। এর জন্য আপনাকে গ্রুপপ্যাড কমান্ড ব্যবহার করে একটি নতুন এসফ্টগ্রুপ গ্রুপ তৈরি করতে হবে যা প্রদর্শিত হবে:

# groupadd sftpgroup

এরপরে, ব্যবহারকারীকে 'টেকমিন্ট' এসফ্টগ্রুপ গ্রুপে বরাদ্দ করুন।

# usermod -G sftpgroup tecmint

আপনি ইউর্যাডড কমান্ড ব্যবহার করে একটি নতুন ব্যবহারকারী তৈরি করতে পারেন, উদাহরণস্বরূপ সেন্থিল এবং ব্যবহারকারীকে স্টেপপিউজার গ্রুপে বরাদ্দ করুন।

# adduser senthil -g sftpgroup -s /sbin/nologin
# passwd tecmint

/etc/ssh/sshd_config কনফিগারেশন ফাইলটিতে নিম্নলিখিত লাইনগুলি খুলুন এবং যুক্ত করুন।

Subsystem sftp internal-sftp
 
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

ফাইলটি সংরক্ষণ এবং প্রস্থান করুন, নতুন পরিবর্তনগুলি কার্যকর হওয়ার জন্য sshd পরিষেবাটি পুনরায় চালু করুন।

# systemctl restart sshd
OR
# service sshd restart

আপনি যদি একই ডিরেক্টরিতে একাধিক ব্যবহারকারীকে আঁকেন, আপনার ব্যবহারকারীর একে অপরের ব্যবহারকারীর হোম ডিরেক্টরি ব্রাউজ করতে বাধা দেওয়ার জন্য আপনার প্রতিটি ব্যবহারকারীর হোম ডিরেক্টরিগুলির অনুমতি পরিবর্তন করা উচিত।

# chmod 700 /home/tecmint

এখন, স্থানীয় সিস্টেম থেকে লগইন পরীক্ষা করার সময় এসেছে। আপনার স্থানীয় সিস্টেম থেকে আপনার দূরবর্তী সিস্টেমটি ছড়িয়ে দেওয়ার চেষ্টা করুন।

# ssh [email 

এখানে,

  1. টেকমিন্ট - রিমোট সিস্টেমের ব্যবহারকারীর নাম
  2. 192.168.1.150 - রিমোট সিস্টেমের আইপি ঠিকানা

[email 's password: 
Could not chdir to home directory /home/tecmint: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.

তারপরে, এসএফটিপি ব্যবহার করে দূরবর্তী সিস্টেমে অ্যাক্সেস করুন।

# sftp [email 
[email 's password: 
Connected to 192.168.1.150.
sftp>

আসুন আমরা বর্তমান কার্যকারী ডিরেক্টরিটি পরীক্ষা করি:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

এখানে টেকমিন্ট হোম ডিরেক্টরি। টেকমিন্ট ডিরেক্টরিতে সিডি করুন এবং আপনার পছন্দসই ফাইল বা ফোল্ডার তৈরি করুন।

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

ব্যবহারকারীদের একটি নির্দিষ্ট ডিরেক্টরিতে সীমাবদ্ধ করুন

আমাদের পূর্ববর্তী উদাহরণে, আমরা বিদ্যমান ব্যবহারকারীদের হোম ডিরেক্টরিতে সীমাবদ্ধ করি। এখন, আমরা কীভাবে একটি নতুন ব্যবহারকারীকে কাস্টম ডিরেক্টরিতে সীমাবদ্ধ করব তা দেখব।

একটি নতুন গোষ্ঠী তৈরি করুন sftproup

# groupadd sftpgroup

এরপরে, এসএফটিপি গ্রুপের জন্য একটি ডিরেক্টরি তৈরি করুন এবং মূল ব্যবহারকারীর জন্য অনুমতি বরাদ্দ করুন।

# mkdir -p /sftpusers/chroot
# chown root:root /sftpusers/chroot/

এরপরে, প্রতিটি ব্যবহারকারীর জন্য নতুন ডিরেক্টরি তৈরি করুন, এতে তাদের সম্পূর্ণ অ্যাক্সেস থাকবে। উদাহরণস্বরূপ, আমরা টেকমিন্ট ব্যবহারকারী তৈরি করব এবং এটি নিম্নলিখিত সিরিজের কমান্ডের সাহায্যে সঠিক গোষ্ঠী অনুমতি সহ নতুন হোম ডিরেক্টরি তৈরি করব।

# adduser tecmint -g sftpgroup -s /sbin/nologin
# passwd tecmint
# mkdir /sftpusers/chroot/tecmint
# chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
# chmod 700 /sftpusers/chroot/tecmint/

ফাইলের শেষে নিম্নলিখিত লাইনগুলি সংশোধন বা যুক্ত করুন:

#Subsystem  	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp  internal-sftp
 
Match Group sftpgroup
   ChrootDirectory /sftpusers/chroot/
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন। সংরক্ষিত পরিবর্তনগুলি কার্যকর করতে sshd পরিষেবা পুনরায় চালু করুন।

# systemctl restart sshd
OR
# service sshd restart

এটি হ'ল আপনি যাচাই করুন এসএসএইচ এবং এসএফটিপি লগইন-এ উপরে সরবরাহিত পদক্ষেপটি ব্যবহার করে আপনার দূরবর্তী এসএসএইচ এবং এসএফটিপি সার্ভারে লগ ইন করে চেক করতে পারেন।

মনে রাখবেন যে এই পদ্ধতিটি শেল অ্যাক্সেসকে অক্ষম করবে, অর্থাৎ আপনি এসএসএইচ ব্যবহার করে দূরবর্তী সিস্টেমের শেল সেশনটি অ্যাক্সেস করতে পারবেন না। আপনি কেবল এসএফটিপি এর মাধ্যমে দূরবর্তী সিস্টেমগুলিতে অ্যাক্সেস করতে পারবেন এবং স্থানীয় এবং দূরবর্তী সিস্টেমে ফাইল ট্রান্সফার করতে পারেন।

উপসংহার

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