কোনও এসএসএইচ / এসসিপি / এসএফটিপি ব্যবহারকারীর একটি ডিরেক্টরিতে সীমাবদ্ধ


36

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

উত্তর:


29

এসএসএইচ একটি এসএফটিপি ব্যবহারকারীকে স্থানীয়ভাবে ক্রুটিং সমর্থন করে। আপনার কেবল সরবরাহ করা দরকার

ChrootDirectory

আপনার sshd কনফিগারেশন ফাইলে, এবং sshd পুনরায় আরম্ভ করুন।

আপনি যদি কেবল sftp করছেন, তবে আপনাকে আরও কিছু করতে হবে না। দুর্ভাগ্যক্রমে, এটি scp এর জন্য কাজ করে না। ইন্টারেক্টিভ শেলের জন্য, আপনাকে বাইনারিগুলি এবং / দেব নোডগুলি ক্রোটে অনুলিপি করতে হবে।

একটি কনফিগারেশন, কেবলমাত্র একক ব্যবহারকারীর জন্য, পরীক্ষক:

Match User testuser
    ChrootDirectory /home/testuser
    ForceCommand internal-sftp

Sshd_config ম্যান পৃষ্ঠা থেকে কয়েকটি বিষয় সম্পর্কে সচেতন হতে হবে:

    পথের সমস্ত উপাদান অবশ্যই মূল-মালিকানাধীন ডিরেক্টরিগুলি নয় be
    অন্য কোনও ব্যবহারকারী বা গোষ্ঠী দ্বারা লিখনযোগ্য। ক্রুটের পরে, sshd (8) পরিবর্তন করে
    ব্যবহারকারীর হোম ডিরেক্টরিতে ওয়ার্কিং ডিরেক্টরি।

আরও তথ্যের জন্য পুরুষ sshd_config এ ক্রুটডাইরেক্টরি অনুসন্ধান করুন।


2
নোট করুন যে অংশটি "ম্যাচ ব্যবহারকারী পরীক্ষক" এর সাথে শুরু হবে তা অবশ্যই ফাইলের শেষে থাকা উচিত, কারণ এতে কনফিগারেশন লাইনগুলি কেবল তখনই অন্তর্ভুক্ত থাকবে যদি ব্যবহারকারী সেই বিন্দু থেকে "পরীক্ষক" থাকে।
ম্যাগনাস

1
কেবল এসএফটিপি প্রোটোকলের জন্যও ক্রুটের পক্ষে কি সম্ভব, তবে এখনও সাধারণ এসসিপি সংযোগের অনুমতি দেওয়া সম্ভব?
ল্যানক্সিক্স

1
আমার উবুন্টু 14.04 মেশিন উপর, এটি প্রয়োজন ছিল পরিবর্তন করতে Subsystem sftp /usr/lib/openssh/sftp-serverলাইনSubsystem sftp internal-sftp -f AUTH -l VERBOSE
partofthething

@ ম্যাগনাস বা অন্য Matchবিভাগ পর্যন্ত ।
রোয়াইমা

12

একটি ক্রুট একটি যুক্তিসঙ্গত সহজ পদ্ধতি। যেহেতু অপারেটিং সিস্টেমটিতে ইতিমধ্যে এই সুরক্ষা বৈশিষ্ট্য রয়েছে, ডেমন লেখকরা এটি পুনরায় প্রয়োগের চেষ্টা করবেন না।

আরএসএস একটি ক্রুট জেল স্থাপনের জন্য গাইড নিয়ে আসে। এটা এর CHROOTউৎস বিতরণে ফাইল। সংক্ষেপে, আপনার প্রয়োজন:

  • কয়েক বাইনেরিতে, রুট থেকে অনুলিপি: /usr/bin/scp, /usr/libexec/openssh/sftp-server,/usr/bin/rssh_chroot_helper
  • {/usr,}/lib/lib*.so.[0-9]তারা যে লাইব্রেরিগুলি ব্যবহার করে ( ) সেগুলিও অনুলিপি করে
  • একটি /etc/passwd(সম্ভবত সম্ভবত একটি অনুলিপি নয় তবে মাস্টার থেকে প্রাপ্ত)
  • কয়েক ডিভাইস: /dev/null, /dev/tty, এবং এছাড়াও একটি /dev/logলগিং জন্য সকেট (এবং আপনি যে সকেট শুনতে আপনার syslog- র ডেমন বলতে চাই)

আরএসএস ডকুমেন্টেশনে নেই এমন অতিরিক্ত টিপ: ক্রুট কারাগারে অ্যাক্সেসযোগ্য হওয়ার জন্য আপনার যদি কিছু ফাইলের প্রয়োজন হয় তবে আপনি জেলের বাইরে থেকে অতিরিক্ত ডিরেক্টরি শ্রেণিবদ্ধ করতে বাইন্ডফ বা লিনাক্স ব্যবহার করতে পারেন mount --bindbindfsপুনঃনির্দিষ্ট ডিরেক্টরিটিকে আরও নিয়ন্ত্রিত অনুমতি থাকতে দেয়, উদাহরণস্বরূপ কেবল পঠনযোগ্য। ( mount --bindআপনি কার্নেল প্যাচ প্রয়োগ না করলেই হয় না; পূর্ব লেবানিতে দেবিয়ান এই প্যাচটি অন্তর্ভুক্ত করেছেন তবে বেশিরভাগ অন্যান্য বিতরণে ২০১১-তে নেই n't)


7

আপনি স্ক্যানলি (বা আরও সম্প্রতি, আরআরএস ) দেখতে চাইবেন ; এটি মূলত একটি লগইন শেল যা কেবল স্কিপ বা এসফ্টপিডি সাবসিস্টেম চালু করতে ব্যবহার করা যেতে পারে। ইন scponlycবৈকল্পিক এটা প্রশ্নে সাব-সিস্টেম সক্রিয় করার পূর্বে একটি chroot সম্পাদন করে।


scponly অবচিত বলে মনে হচ্ছে, কমপক্ষে উবুন্টু
tobixen
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.