Pertanyaan Izinkan SFTP tetapi izinkan SSH?


Saya memulai perusahaan hosting yang sangat kecil untuk beberapa teman dan klien kecil, tidak ada yang besar.

Saya ingin memberikan "klien" saya hak untuk mengelola file mereka di server. Saya benci FTP karena tidak aman dan menurut saya sudah usang.

Jadi saya ingin mengizinkan pengguna saya untuk terhubung melalui SFTP tetapi tidak memungkinkan mereka untuk terhubung melalui SSH. (Saya tahu, saya tahu, SFTP menggunakan SSH). Tapi saya hanya bertanya-tanya, mungkinkah?

Jadi saya tidak perlu menginstal layanan FTP di server dan semuanya akan luar biasa!


87
2018-01-28 20:40






Jawaban:


Dimulai dengan versi 4.9 OpenSSH (tidak tersedia di centos 5.x tetapi fitur ChrootDirectory telah dilaporkan) memiliki internal-sftp subsistem:

Subsystem sftp internal-sftp

Dan kemudian blokir kegunaan lain:

Match group sftponly
     ChrootDirectory /home/%u
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Tambahkan pengguna Anda ke sftponly kelompok. Anda harus mengubah direktori pengguna menjadi / karena chroot dan /home/user harus dimiliki oleh root. Saya juga akan mengatur /bin/false sebagai cangkang pengguna.


113
2018-01-28 20:46



Wow! Luar biasa! Saya akan menguji ini dan kembali ke sini untuk memvalidasi. Terima kasih banyak! - TomShreds
+1 untuk hal ChrootDirectory! - Kyle Hodgson
Setelah melakukan ini, pengguna sftponly saya tidak dapat mengakses melalui ssh dan dapat terhubung dengan sftp. Namun tidak bisa melihat file sama sekali! Meskipun file-file ini memiliki izin untuk pengguna ini. :-( - Emilio Nicolás
Jika Anda ingin melakukan ini dan menemukan entri di sshd_config Anda dengan "/ usr / lib / openssh / sftp-server" sudah ada, periksa di sini: serverfault.com/questions/660160/…  - internal-sftp adalah "lebih baru, lebih baik dan lebih mudah" - Xosofox


Ada sebuah shell scponly apa ini? Bisa chroot terlalu.


19
2018-01-28 21:11



Ini akan bagus jika Anda membutuhkan pengguna SFTP dan pengguna SSH. Anda tinggal mengganti shell di / etc / passwd untuk yang dibatasi hanya untuk SFTP. - Dragos


Checkout rssh yang merupakan shell palsu yang memungkinkan sftp tetapi menyangkal ssh

Lebih lanjut tentang RSSH

http://www.pizzashack.org/rssh/

RPM

http://pkgs.repoforge.org/rssh/

Anda dapat mengkonfigurasi rssh untuk mengizinkan / menolak perilaku yang berbeda seperti sft, scp dll.


4
2018-02-02 13:15



Bagus. Ini adalah cara termudah untuk mengkonfigurasi tanpa menyentuh sshd_config sama sekali. Hanya mengubah shell dalam file passwd dan selesai. - Tomofumi


Anda dapat memodifikasi / etc / passwd dan memberi pengguna itu shell palsu sehingga dia tidak dapat menggunakan ssh.


2
2018-01-28 20:46



Apakah Anda menguji ini? - splattne
Ketika saya mencoba mengatur shell untuk /bin/false tidak ssh atau sftp bekerja - Brad Mace
/ bin / false adalah untuk melarang segala jenis login, itu bukan pendekatan yang benar di sini. Jawaban yang diterima dari Rob Wouters 'adalah bagaimana Anda harus membatasi pengguna hanya untuk SFTP, bukan dengan mengubah shell. Jika Anda memang ingin mengubah shell @ Stone, itu adalah ide yang bagus. - jwbensley
jadi APA cangkang harus digunakan dengan asumsi / bin / bash tidak dapat diterima dan / bin / false atau / sbin / nologin menolak akses? - Putnik


Saya menggunakan metode menentukan shell pengguna sebagai / bin / false seperti yang disebutkan. Namun, Anda harus memastikan bahwa / bin / shell ada di / etc / shells. Maka ia bekerja ssh = no ftp = ok.

Saya juga menggunakan vsftpd dan menambahkan ini
chroot_local_user = YA untuk /etc/vsftpd/vsftpd.conf sehingga ftp-ers tidak dapat melihat tanggal selain miliknya.

Keuntungan dari perubahan sederhana ini adalah tidak ada konfigurasi yang mengganggu konfigurasi ssh untuk setiap pengguna.


1
2017-09-23 17:09





Jangan lupa menemukan garisnya UsePAM yes dan beri komentar:

#UsePAM yes

Tanpa menonaktifkan ini, server SSH Anda akan mogok di reload / restart. Karena Anda tidak membutuhkan fungsi PAM yang mewah, ini bagus.


1
2018-01-25 22:02





Mengonfigurasi ssh untuk mengaktifkan hanya sftp untuk beberapa pengguna terpilih adalah ide yang bagus dan berfungsi dengan baik, asalkan Anda menginstalnya juga scponly atau rssh.

rssh berfungsi dengan baik, kecuali jika Anda perlu mengkonfigurasi jail, dalam hal ini mencoba untuk mengikuti instruksi yang disediakan oleh manual CHROOT adalah gila, yang mengarah ke "menyalin" bagian besar dari sistem yang dapat dieksekusi dan pustaka tepat di bawah "setiap jail pengguna", termasuk rssh cangkang itu sendiri. Ini adalah metode yang membuang-buang ruang.

scponly membutuhkan pemahaman yang mendalam dalam konfigurasi yang mengarah ke masalah penolakan masuk yang selalu ada dalam kasus penyiapan jail.

Cara langsung untuk memungkinkan fungsionalitas "ftp" dengan penjara berfungsi dengan baik, dukungan SSL / TLS untuk transaksi aman dan masuk adalah menggunakan VSFTPD "lama-tapi-kerja", yang menginstal dengan cepat dan bersih dan menawarkan semua konfigurasi sesuai kebutuhan dan, terakhir tetapi tidak sedikit: itu berhasil!

Maurizio.


0
2018-04-23 12:47