Bagaimana saya bisa membuat pengguna dengan hanya akses ftp jarak jauh di server Linux?

11

Saya menjalankan server Ubuntu 10,04 LTS dan saya ingin membuat pengguna yang hanya dapat mengakses server dari FTP.

Apa yang saya lakukan sejauh ini adalah:

  • Install vsftpd
  • Buat pengguna baru dengan shell login default diatur ke /bin/false

Pengguna normal pada server semua dapat mengakses folder rumah mereka melalui ftp tetapi pengguna yang akses shell jarak jauh dihapus dengan mengaturnya untuk /bin/falsetidak dapat login dengan ftp juga.

Saya tidak mengerti bagaimana akses shell mempengaruhi vsftpdserver? Bagaimana saya bisa mengaktifkan akses ftp tanpa mengaktifkan kembali shell?

Pembaruan:
Saya menemukan referensi ini yang menyatakan bahwa saya harus menggunakan /sbin/nologin(tampaknya berada /usr/sbin/nologindi Ubuntu) dan itu seharusnya tidak mempengaruhi akses ftp tetapi tidak berfungsi dalam kasus saya.

terima kasih
sumber
Mungkin mencoba mengatur ke / bin / true
balki
Saya tidak pernah menggunakan vsftpd tetapi saya menemukan solusi yang melakukan apa yang Anda butuhkan. Saya tidak tahu apakah itu solusi terbaik (saya pikir itu harus bekerja, tetapi mungkin ada sesuatu yang lebih baik).
pbm
Baru saja mencoba / bin / true dan tidak berfungsi.
jmbouffard
Terima kasih @ pbm tetapi tidak persis apa yang saya cari karena saya lebih suka menggunakan pengguna nyata.
jmbouffard

Jawaban:

12

Saya tidak tahu apakah itu praktik yang baik untuk menjawab pertanyaan saya sendiri tetapi saya menemukan solusi sederhana yang memungkinkan ftp login.

Saya perlu menambahkan baris

/ usr / sbin / nologin

ke file / etc / shells. Tepat setelah modifikasi ini server ftp mulai menerima login dari pengguna yang shell-nya diset / usr / sbin / nologin. Jadi mereka tidak dapat masuk melalui ssh tetapi ia bekerja dengan ftp persis seperti yang saya inginkan.

Terima kasih atas komentar Anda yang bermanfaat.

terima kasih
sumber
Saya membaca di suatu tempat beberapa hari yang lalu bahwa ini membuka kerentanan keamanan. Setiap ahli di luar sana yang bisa menjelaskan ini untuk saya.
Navneil
0

Set pengguna shell kembali ke /bin/false(atau beberapa shell tidak valid lainnya) kemudian ditetapkan /bin/falsedalam /etc/shells.

Saya melihat masalah keamanan utama dengan pengaturan /usr/sbin/nologinke /etc/shells. Anda memberi FTP (dan mungkin lainnya) akses ke semua daemon dan login yang memiliki /usr/sbin/nologinshell.

Jerry Callahan
sumber
1
Bagaimana sebenarnya? nologin ada untuk mengizinkan, well, nologin - dengan pesan khusus yang disesuaikan di /etc/nologin.txtsehingga pengguna ftp bisa tahu itu hanya ftp atau semacamnya.
Dani_l
vsftpd adalah yang melindungi dari akses tidak sah dengan memiliki daftar aksesnya sendiri.
Dani_l