কেন sshd (ওপেনশ) সংযোগ প্রতি দুটি প্রক্রিয়া তৈরি করে?


26

লগইনের আগে:

$ ps -elf | grep sshd
5 S root     26135     1  0  80   0 - 13115 ?      17:26 ?        00:00:00 /usr/sbin/sshd
0 S test     26480 21337  0  80   0 -  4154 -      18:41 pts/27   00:00:00 grep --colour=auto sshd

লগইন পরে:

$ ps -elf | grep sshd
5 S root     26135     1  0  80   0 - 13115 ?      17:26 ?        00:00:00 /usr/sbin/sshd
4 S root     26577 26135  0  80   0 - 24204 ?      18:42 ?        00:00:00 sshd: test [priv] 
5 S test     26582 26577  0  80   0 - 24204 ?      18:42 ?        00:00:00 sshd: test@pts/30 
0 S test     26653 21337  0  80   0 -  4155 -      18:42 pts/27   00:00:00 grep --colour=auto sshd

দুটি প্রক্রিয়া কি জন্য?

4 S root     26577 26135  0  80   0 - 24204 ?      18:42 ?        00:00:00 sshd: test [priv] 
5 S test     26582 26577  0  80   0 - 24204 ?      18:42 ?        00:00:00 sshd: test@pts/30

ধন্যবাদ,

উত্তর:


39

প্রিভিলেজ পৃথকীকরণ - এমন একটি প্রক্রিয়া যা কেবলমাত্র রুট করতে পারে এমন কাজ করার জন্য মূল অধিকারগুলি বজায় রাখে এবং অন্যটি যা সমস্ত কিছু করে।

এই প্রশ্নটি জিজ্ঞাসা করার সময়, সুবিধার বিচ্ছেদটি কোনও বিকল্প দ্বারা নিয়ন্ত্রণ করা হয়েছিল sshd_configএবং sshd_configম্যান পৃষ্ঠাটি এটি কী জন্য তা ব্যাখ্যা করেছিল। 7.5 সংস্করণে প্রিভিলেজ পৃথকীকরণ বাধ্যতামূলক হয়ে ওঠে , সুতরাং সেই বিকল্পটি এবং এর ডকুমেন্টেশনগুলি শেষ হয়ে যায়। এই ধরণের কোনও ডকুমেন্টেশন উপস্থিত থাকলে বিশেষাধিকার পৃথকীকরণ বৈশিষ্ট্যটির প্রামাণিক ডকুমেন্টেশনটি কোথায় পাওয়া যায় তা আমি আর জানি না।

অপসারণের আগে ম্যান পৃষ্ঠা আইটেমের শেষ সংস্করণটি বলেছে:

UsePrivilegeSeparation
        Specifies whether sshd(8) separates privileges by creating an
        unprivileged child process to deal with incoming network traffic.
        After successful authentication, another process will be created
        that has the privilege of the authenticated user.  The goal of
        privilege separation is to prevent privilege escalation by con-
        taining any corruption within the unprivileged processes.  The
        argument must be yes, no, or sandbox.  If UsePrivilegeSeparation
        is set to sandbox then the pre-authentication unprivileged
        process is subject to additional restrictions.  The default is
        sandbox.

পয়েন্টারের জন্য ধন্যবাদ, আমি এটি ঘনিষ্ঠভাবে দেখার পরে, দেখে মনে হচ্ছে যে লগইন চলাকালীন 3 টি প্রক্রিয়া তৈরি হয়েছে, একটি সুবিধাপ্রাপ্ত মোডে চলছে, একটি অনিচ্ছুক "sshd" ব্যবহারকারীর মধ্যে চলছে, প্রমাণীকরণ শেষ হওয়ার পরে, এই অনিরাপদ প্রক্রিয়াটি মারা গিয়েছিল এবং লগইন নামের অধীনে তৈরি একটি নতুন sshd প্রক্রিয়া। কোথাও এটি বিশদে ডকুমেন্টিং আছে, যেমন এই প্রক্রিয়াগুলির মধ্যে মিথস্ক্রিয়া? ধন্যবাদ।
ওয়েই

4
@ ওয়েই, হ্যাঁ, এটি BXR.SU/OpenBSD/usr.bin/ssh/sshd.cনথিভুক্ত । আপনি যদি সন্ধান করেন তবে আপনি forkদেখতে পাবেন এটি একবার এবং একবারে ব্যবহৃত privsep_preauth()হয়েছিল privsep_postauth()
সিএনএসটি

@ ওম্পাসকিউউম্বলি, প্রদত্ত লিঙ্কটিতে ইউজপ্রাইভিলিজেপারেশন সম্পর্কিত কোনও বিভাগ রয়েছে বলে মনে হচ্ছে না। বিশেষাধিকার পৃথকীকরণের একমাত্র উল্লেখটি ক্রেডিট বিভাগে নীচে রয়েছে। আমি কিছু অনুপস্থিত করছি? :)
সোরিন পোষ্টেলনিকু

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