সেন্টফেসে এসএফটিপি ব্যবহারকারী তৈরি করা এবং ক্রুটে জেল করা - ব্যবহারকারীর প্রমাণীকরণের ত্রুটি


18

আমি ডিজিটাল মহাসাগরের সাথে একটি সেন্টো রিলিজ পেয়েছি .4.৪ এবং সফলভাবে এসএফটিপি ব্যবহারকারী তৈরি করতে এবং তাদের ব্যবহারকারীর নিজস্ব ক্রুট হোম ডিরেক্টরিতে জেল করতে চাই তবে আমি আশঙ্কা করছি যে আমি এ নিয়ে গোলমাল করছি।

আমি অনেক কিছুই চেষ্টা করেছি, অনেকগুলি এখানে তালিকাভুক্ত করার জন্য সত্যই সম্ভবত বেশিরভাগই ভুল বা বেশি অর্থবোধ করতে পারে না তবে আমার মনে হয় সঠিক প্রক্রিয়া হওয়া উচিত এবং আমি যা চেষ্টা করেছি তা হ'ল: -

এর জন্য একটি গ্রুপ তৈরি করুন sftp: -

groupadd sftp

একটি ব্যবহারকারী তৈরি করুন এবং তাদের হোম ডিরেক্টরি সেট করুন: -

useradd -d /var/www/vhosts/domain.com dummyuser

ব্যবহারকারীর জন্য একটি পাসওয়ার্ড সেট করুন: -

passwd dummyuser

ব্যবহারকারীর গোষ্ঠীটিকে 'sftp' এ পরিবর্তন করুন: -

usermod -g sftp dummyuser

ব্যবহারকারীর শেল এতে সেট করুন /bin/false: -

usermod -s /bin/false dummyuser

sshd_config( /etc/ssh/) এ সাবসিস্টেম সম্পাদনা করুন : -

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

sshd_configফাইলটির নীচে নিম্নলিখিতগুলি যুক্ত করুন: -

Match group sftp
    X11Forwarding no
    ChrootDirectory %h
    AllowTcpForwarding no
    ForceCommand internal-sftp

নিম্নলিখিত ডিরেক্টরিগুলি নিশ্চিত করে রাখছি root:root: -

/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com

তারপরে যদি আমি ব্যবহারকারীর সাথে dummyuser(উইনসিসিপিতে) এসএফটিপি এর মাধ্যমে সার্ভারে লগ ইন করার চেষ্টা করি তবে আমি নিম্নলিখিতগুলি পেয়েছি: -

Authentication log (see session log for details):
Using username "dummyuser".

Authentication failed.

আমি যা অর্জন করতে চাই তা হ'ল কোনও ব্যবহারকারীকে তাদের হোম ডিরেক্টরিতে জেল করা। আমি vsftpd সেট আপ করেছি এবং কনফিগার করেছি। ব্যবহারকারীরা সূক্ষ্মভাবে লগ ইন করতে পারে তবে পুরো সার্ভারটিতে অ্যাক্সেস থাকতে পারে - আমি জেলিংয়ের কাজটি মোটেই করতে পারিনি।

সম্পাদন করা

উল্লেখ করতে ভুলে গেছি, আমি sshdআবারও শুরু করেছি: -

service sshd restart

উইনসিসিপিতে ত্রুটিটি তৈরি করা হলে, তাদের সহায়তা পৃষ্ঠাটি এখানে

লগ ফলাফল

/var/log/secure

আমি এর সাথে প্রকৃত সার্ভারের নামটি প্রতিস্থাপন করেছি server_name

 Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
 Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
 Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
 Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser

আপনি কি আবার চালু করলেন sshd? সার্ভারে লগ ফাইলগুলিতে কী আছে?
ফেকার

হ্যাঁ আমি করেছি, দুঃখিত আমি আমার প্রশ্নের শেষে এটি যুক্ত করতে ভুলে গেছি (এখন অন্তর্ভুক্ত থাকবে)। কোন লগ ফাইল (এবং অবস্থান) আমার সন্ধান করা উচিত কারণ আমি এখনও 'সেশন লগ' ফাইল খুঁজে পেতে ব্যর্থ হয়েছি? ধন্যবাদ।
জিগোজাকো

আপনি একবার দেখতে চাইবেন /var/log/secure
faker

দুর্দান্ত, আপনাকে ধন্যবাদ - এটি সহায়তা করে (লগ এন্ট্রি সহ প্রশ্ন আপডেট করে)।
জিগোজাকো

মারাত্মক: এই আমি সন্দেহভাজন কিন্তু খারাপ মালিকানা বা chroot ডিরেক্টরির উপাদান "/ var / www / vhosts /" কিছু মোড যেমন vhostsহয় root:root
জিগোজাকো

উত্তর:


14

এটি একটি সাধারণ ক্ষতি:
ক্রুট হোম পর্যন্ত সমস্ত ফোল্ডার অবশ্যই মালিকানার মালিকানাধীন এবং কেবল লেখার যোগ্য root
ফোল্ডারগুলি গ্রুপ লিখনযোগ্য হতে পারে না - এমনকি গ্রুপটি থাকলেও root


4
আমি এটি সুবিধে করে পরীক্ষা করার জন্য একটি কৌশল শিখেছি:namei -l /var/www/vhosts
ক্লক ওয়ার্কজেক

5

আমি সেন্টোস .5.৫ এ সাফল্যের সাথে এসটিএফপি খুঁজে পেয়েছি এবং http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/ এ সাফল্যের সাথে কনফিগার করেছি

Sshd কনফিগারেশন সম্পাদনা করুন:

vim / etc / ssh / sshd_config

#Subsystem      sftp    /usr/libexec/openssh/sftp-server (comment out the default with "#")

add:

Subsystem sftp internal-sftp
Match Group sftp-only
ChrootDirectory /var/www/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

প্রস্থান করুন এবং সংরক্ষণ করুন।

তারপর:

mkdir /etc/skel2
groupadd sftp-only
getent group |grep sftp-only  (take note the GID (Group ID).  Here, in my example it's 500)

"পরীক্ষক" নামের নতুন ব্যবহারকারীর জন্য (জিআইডি 500 সহ কেবলমাত্র এসএফটিপি-এর গ্রুপের সদস্য):

useradd --base-dir /var/www --gid 500 --skel /etc/skel2 --create-home --shell /sbin/nologin testuser

(আমি খালি / ইত্যাদি / স্কেল 2 ব্যবহার করি তাই কোনও বাশার্ক ইত্যাদি সেন্টোস দ্বারা ডিফল্টরূপে অনুলিপি করা হয় না)

mkdir -p /var/www/testuser/home/testuser

chown root:sftp-only /var/www/testuser
chmod 750 /var/www/testuser

chown root:root /var/www/testuser/home
chmod 755 /var/www/testuser/home

chown testuser:sftp-only /var/www/testuser/home/testuser
chmod 770 /var/www/testuser/home/testuser

সুতরাং এই উদাহরণে, আমি ওয়েবসাইটগুলি পরিচালনা করে এমন বাহ্যিক পরামর্শ সংস্থাগুলিতে সুরক্ষিত অ্যাক্সেস দেওয়ার জন্য এটি তৈরি করেছি। আপনি এই সব করতে তৈরি করার পরে:

mkdir /var/www/testuser/home/testuser/www.somesite.com
chown testuser:apache /var/www/testuser/home/testuser/www.somesite.com
chmod xxx (permissions to the website as needed, usually 750 so apache would get read access)

প্রয়োজন অনুসারে কেউ এই সমস্ত টিউন করতে পারে।

আশা করি এটি সাহায্য করেছে!

গাই বোয়েসভার্ট ইনগ্রিগ্রেশন ইনক। http://www.ingtegration.com


সার্ভার ফল্ট আপনাকে স্বাগতম! যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
masegaloeh

1
যেহেতু আপনি sshd কনফিগারেশন পরিবর্তন করেছেন, তাই আমি আপনাকে এটি পুনরায় চালু করার পরামর্শ দেব:service sshd restart
লুচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.