it-swarm-id.com

Membatasi pengguna SSH / SCP / SFTP ke direktori

Apakah ada cara sederhana untuk membatasi pengguna SCP/SFTP ke direktori? Semua metode yang saya temui mengharuskan saya untuk mengatur chroot jail dengan menyalin binari, tetapi saya rasa itu tidak perlu.

37
user4518

SSH Mendukung chroot pengguna SFTP secara asli. Anda hanya perlu memasok

Direktori Chroot

Di file konfigurasi sshd Anda, dan restart sshd.

Jika Anda hanya melakukan sftp, maka Anda tidak perlu melakukan apa-apa lagi. Sayangnya, ini tidak berfungsi untuk scp. Untuk Shell interaktif, Anda perlu menyalin binari, dan/dev node ke chroot.

Contoh konfigurasi, hanya untuk satu pengguna, testuser:

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

Beberapa hal yang perlu diperhatikan, dari halaman manual sshd_config:

 Semua komponen pathname harus direktori yang dimiliki oleh root yang tidak 
 Dapat ditulis oleh pengguna atau grup lain. Setelah chroot, sshd (8) mengubah direktori kerja 
 Menjadi direktori home pengguna. 

Cari ChrootDirectory di man sshd_config untuk informasi lebih lanjut.

30
gabe.

Chroot adalah metode yang cukup sederhana. Karena sistem operasi sudah memiliki fitur keamanan ini, penulis daemon cenderung tidak berusaha untuk mengimplementasikannya kembali.

Rssh dilengkapi dengan panduan tentang pengaturan chroot jail. Ada dalam file CHROOT dalam distribusi sumber. Singkatnya, Anda harus memiliki:

  • Beberapa binari, disalin dari root: /usr/bin/scp, /usr/libexec/openssh/sftp-server, /usr/bin/rssh_chroot_helper
  • Perpustakaan ({/usr,}/lib/lib*.so.[0-9]) yang mereka gunakan, juga disalin
  • SEBUAH /etc/passwd (sangat mungkin bukan salinan tetapi berasal dari master)
  • Beberapa perangkat: /dev/null, /dev/tty, dan juga /dev/log socket untuk logging (dan Anda perlu memberitahu daemon syslog Anda untuk mendengarkan socket itu)

Kiat tambahan yang tidak ada dalam dokumentasi rssh: Jika Anda memerlukan beberapa file agar dapat diakses di chroot jail, Anda dapat menggunakan bindfs atau Linux mount --bind untuk membuat hierarki direktori tambahan dari luar penjara. bindfs memungkinkan direktori remounted memiliki izin yang lebih ketat, misalnya hanya baca. (mount --bind tidak kecuali Anda menerapkan patch kernel; Debian telah memasukkan tambalan ini sejak di lenny timur tetapi sebagian besar distribusi lainnya belum pada 2011.)

Anda mungkin ingin melihat scponly (atau lebih baru-baru ini, rssh ); itu pada dasarnya adalah Shell login yang hanya dapat digunakan untuk meluncurkan subsistem scp atau sftpd. Dalam varian scponlyc ia melakukan chroot sebelum mengaktifkan subsistem yang dimaksud.

7
Shadur