Sshd (openssh) neden bağlantı başına iki işlem yaratıyor?


26

Giriş yapmadan önce:

$ 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

Giriş yaptıktan sonra:

$ 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

İki süreç ne için?

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

Teşekkürler,

Yanıtlar:


39

Ayrıcalık ayrımı - yalnızca kökün yapabileceği şeyleri yapmak için kök ayrıcalıklarını koruyan, diğeri ise her şeyi yapan bir süreç.

Bu soru sorulduğunda, ayrıcalık ayrımı bir seçenek tarafından kontrol edildi sshd_configve sshd_configkılavuz sayfası bunun ne için olduğunu açıkladı. Ayrıcalık ayrımı 7.5 sürümünde zorunlu hale geldi , böylece bu seçenek ve dokümantasyonu ortadan kalktı. Artık ayrıcalık ayırma özelliğinin kurallı belgelerini nerede bulacağımı bilmiyorum, eğer böyle bir belge varsa.

Kaldırmadan önce man sayfa öğesinin son sürümü şöyle dedi:

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.

İşaretçi için teşekkürler, daha yakından baktıktan sonra, oturum açma sırasında oluşturulan, biri ayrıcalıklı modda çalışan, biri ayrıcalıklı olmayan "sshd" kullanıcısı olan, kimlik doğrulama işlemi bittikten sonra bu ayrıcalıklı olmayan işlemin öldüğü ve giriş adı altında oluşturulan yeni bir sshd işlemi. Bu işlemleri belgeleyen herhangi bir yer var mı, örneğin bu işlemler arasındaki etkileşimler? Teşekkürler.
wei

4
@wei, evet, BXR.SU/OpenBSD/usr.bin/ssh/sshd.c adresinde belgelenmiştir . Eğer forkararsanız, privsep_preauth()defalarca tekrar tekrar kullanıldığını göreceksiniz privsep_postauth().
cnst

@WumpusQWumbley, sağlanan bağlantı, UsePrivilegeSeparation ile ilgili herhangi bir bölüm içermiyor. İmtiyaz ayrılmasının tek referansı en alt kısımda, krediler bölümünde. Bir şey mi eksik? :)
Sorin Postelnicu

1
@SorinPostelnicu Değilsiniz, ancak görünen o ki OpenBSD projesi privsep belgelerine sahip değil.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.