Jalankan SFTP atau server FTP secara independen dari akun pengguna sistem

2

Apakah mungkin untuk menjalankan server SFTP tanpa menggunakan daemon SSH, dalam "userspace"? Saya tidak suka bagaimana akun pengguna sistem terikat dengan kredensial login, saya akan banyak alih-alih memiliki file konfigurasi terpisah untuk menentukan pengguna yang diizinkan: kombinasi kata sandi dan menjalankan daemon di bawah satu pengguna. Jika itu tidak mungkin dilakukan dengan SFTP, solusi FTP juga akan baik-baik saja.

Vanadium
sumber

Jawaban:

4

tanpa menggunakan daemon SSH, dalam "userspace" untuk berbicara

Ada kesalahpahaman di sini. Daemon SSH adalah "userspace" , sama seperti server protokol jaringan lainnya - ini belum tentu merupakan bagian dari OS.

Yang lebih penting: Bagaimana kredensial info masuk tidak ada hubungannya dengan kehadiran daemon SSH, tapi semuanya dengan daemon SSH yang Anda gunakan dan bagaimana itu ditulis (diprogram) untuk berperilaku. Tidak ada yang seperti itu kekuatan daemon SSH untuk menggunakan akun sistem; itu adalah pilihan programmer (walaupun diakui satu-satunya pilihan yang masuk akal untuk penggunaan sehari-hari).

(Catatan: Ini tidak selalu terjadi pada semua perangkat lunak jaringan. Misalnya, server SMB bawaan Windows sebenarnya adalah bagian dari OS dan umumnya tidak dapat ditukar. Tetapi untungnya, pertanyaan Anda bukan tentang SMB pada Windows; ini tentang SSH di Linux.)

Melanjutkan:

Apakah mungkin untuk menjalankan server SFTP tanpa menggunakan daemon SSH

Iya dan tidak.

SFTP didefinisikan untuk digunakan pada transportasi SSH; kebanyakan klien tidak akan mendukung transportasi lain. Konsekuensi penting adalah bahwa SFTP memiliki tidak keamanan (mis. otentikasi atau enkripsi) sendiri - lapisan keamanan ini dibuat selama jabat tangan SSH.

Namun, SFTP tidak memerlukan OpenSSH sshd secara khusus, juga tidak memerlukan daemon SSH seluruh sistem berfitur lengkap secara umum - tumpukan lengkap dapat diimplementasikan oleh perangkat lunak lain, seringkali keduanya dalam satu program tunggal.

Saya tidak suka bagaimana akun pengguna sistem terkait dengan kredensial login

Untuk daemon SSH generik, menggunakan akun sistem cenderung menjadi satu-satunya pilihan yang masuk akal, karena memungkinkan klien memiliki akses shell interaktif, yang melaluinya mereka dapat menjalankan segala macam luar program dan perintah sistem. Layanan SSH saja tidak dapat memberikan pemisahan antara program yang dijalankan oleh pengguna yang berbeda kecuali jika mendapat bantuan dari OS - dan kebetulan, itulah tepatnya yang dibuat untuk akun sistem. Jadi itu sebabnya OpenSSH menggunakan akun sistem dan tidak ada yang lain.

Untungnya, hal di atas bukan masalah untuk daemon FTP dan daemon SSH khusus "SFTP", karena semua operasi FTP / SFTP terjadi secara internal pada daemon itu sendiri dan isolasi pengguna tidak memerlukan apa pun selain memvalidasi jalur file dengan hati-hati.

Jadi akhirnya sampai ke permintaan Anda:

Saya lebih suka memiliki file konfigurasi terpisah untuk menentukan pengguna yang diizinkan: kombinasi kata sandi dan menjalankan daemon di bawah satu pengguna

Ada perangkat lunak untuk itu. Cari server FTP yang mendukung otentikasi "pengguna virtual" melalui beberapa bentuk basis data. Beberapa dari mereka juga memiliki kemampuan SFTP, seperti ProFTPd . Namun sebagian besar hanya melakukan FTP / FTPS.

grawity
sumber
1
Terima kasih, ProFTPd adalah persis apa yang saya cari! Saya mengerti perbedaannya, saya tidak bisa menemukan perangkat lunak yang cocok dengan apa yang saya pikirkan.
Vanadium