it-swarm-tr.com

SSH / SCP / SFTP kullanıcısını bir diziyle kısıtlama

SCP/SFTP kullanıcısını bir dizinle sınırlamanın basit bir yolu var mı? Karşılaştığım tüm yöntemler, ikili dosyaları kopyalayarak bir chroot hapishanesi kurmamı gerektiriyor, ancak bunun gerekli olması gerektiğini düşünmüyorum.

37
user4518

SSH Bir SFTP kullanıcısını yerel olarak köklendirmeyi destekler. Sadece tedarik etmeniz gerekiyor

ChrootDirectory

Sshd yapılandırma dosyanızda sshd'yi yeniden başlatın.

Sadece sftp yapıyorsanız, başka bir şey yapmanız gerekmez. Ne yazık ki, bu scp için işe yaramaz. Etkileşimli Kabuk için, ikili dosyaları ve/dev düğümlerini chroot'a kopyalamanız gerekir.

Yalnızca tek bir kullanıcı için test kullanıcısına örnek bir yapılandırma:

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

Dikkat edilmesi gereken birkaç şey, sshd_config man sayfasından:

 Yol adının tüm bileşenleri, başka bir kullanıcı veya grup tarafından yazılamayacak kök sahip dizinler olmalıdır. Kökten sonra sshd (8) 
 Çalışma dizinini kullanıcının ana dizinine değiştirir. 

Daha fazla bilgi için sshd_config dosyasında ChrootDirectory öğesini arayın.

30
gabe.

Bir kroot oldukça basit bir yöntemdir. İşletim sistemi zaten bu güvenlik özelliğine sahip olduğundan, arka plan yazarları yeniden uygulama girişiminde bulunmazlar.

Rssh bir chroot hapishane kurmak için bir rehber ile birlikte gelir. Kaynak dağıtımında CHROOT dosyasında bulunur. Özetle, şunlara sahip olmanız gerekir:

  • Kökten kopyalanan birkaç ikili dosya: /usr/bin/scp, /usr/libexec/openssh/sftp-server, /usr/bin/rssh_chroot_helper
  • Kütüphaneler ({/usr,}/lib/lib*.so.[0-9]) kullandıkları gibi kopyalandı
  • A /etc/passwd (büyük olasılıkla bir kopya değil, ana kopyadan türetilmiş)
  • Birkaç cihaz: /dev/null, /dev/tty ve ayrıca bir /dev/log giriş için soket (ve syslog arka plan programınıza bu soketi dinlemesini söylemeniz gerekir)

Rssh belgelerinde olmayan ek ipucu: Bir chroot hapishanesinde erişilebilir olması için bazı dosyalara ihtiyacınız varsa bindfs veya Linux'un mount --bind hapishanenin dışından ek dizin hiyerarşileri yapmak için. bindfs yeniden bağlanan dizinin daha kısıtlayıcı izinlere sahip olmasına izin verir, örneğin salt okunur. (mount --bind bir çekirdek düzeltme eki uygulamadığınız sürece yapmaz; Debian bu yamayı doğu lenny'den beri eklemiştir, ancak diğer dağıtımların çoğu 2011 itibariyle değildir.)

scponly (veya son zamanlarda rssh ); aslında scp veya sftpd alt sistemini başlatmak için yalnızca kullanılabilen bir oturum açma Kabuğu. scponlyc varyantında, söz konusu alt sistemi etkinleştirmeden önce bir chroot gerçekleştirir.

7
Shadur