Bagaimana saya bisa membuat pengguna SFTP di CentOS?

8

Saya ingin memberikan akses SFTP sementara ke seorang pria pendukung. Bagaimana cara membuat pengguna SFTP? Dan bagaimana saya bisa menghapusnya setelah pekerjaan selesai?

Juga, bagaimana cara menentukan direktori home untuk mereka? Bisakah saya mencegah mereka mengakses subdirektori tertentu dalam direktori home mereka?

Kami menggunakan CentOS 6.3 dan fzSftp

OC2PS
sumber
Tergantung pada konfigurasi Anda, berikan kami file konfigurasi Anda dapat membantu.
Kiwy
Pengaturan khusus apa yang harus saya posting?
OC2PS
the one of you ftp deamon
Kiwy
Anda yakin ingin FTP atau SFTP? Alasan saya bertanya adalah Anda mendaftar fzsftp (filezilla sftp) yang merupakan klien yang digunakan Filezilla untuk koneksi SFTP.
slm
Ah! Saya terhubung melalui FileZilla ke SFTP, maka terdaftar fzsftp ... mengira ini adalah server saya. SFTP akan baik-baik saja, jika Anda dapat membantu saya dengan itu. Terima kasih!
OC2PS

Jawaban:

14

Akses non-chroot

Jika Anda tidak memiliki pengaturan server FTP, dan Anda memercayai pengguna yang akan masuk, untuk tidak terlalu banyak melihat-lihat server Anda, saya akan cenderung memberi mereka akun ke SFTP ke dalam sistem sebagai gantinya.

CentOS wiki memelihara howto sederhana berjudul: SFTP setup sederhana yang membuat ini sangat bebas rasa sakit.

Saya mengatakan itu bebas rasa sakit karena Anda benar-benar hanya perlu membuat akun dan memastikan bahwa firewall memungkinkan lalu lintas SSH, pastikan SSH layanan sedang berjalan, dan Anda sudah cukup banyak selesai.

Jika sshdbelum berjalan:

$ /etc/init.d/sshd start

Untuk menambahkan pengguna:

$ sudo useradd userX
$ sudo passwd userX
... set the password ...

Setelah selesai dengan akun:

$ sudo userdel -r userX

Akses chroot

Jika di sisi lain Anda ingin membatasi pengguna ini ke direktori yang ditentukan, server SFTP yang disertakan dengan SSH (openssh) menyediakan konfigurasi yang membuatnya mudah untuk diaktifkan juga. Ini sedikit lebih banyak pekerjaan tetapi tidak terlalu banyak. Langkah-langkahnya dibahas di sini dalam tutorial berjudul: Cara Mengatur Chroot SFTP di Linux (Izinkan Hanya SFTP, bukan SSH) .

Buat perubahan ini pada /etc/ssh/sshd_configfile Anda .

Subsystem       sftp    internal-sftp

## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config

Match Group sftpusers
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp

Sekarang Anda harus membuat pohon direktori chroot di mana pengguna ini akan terkunci.

$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}

Izin harus terlihat seperti berikut:

$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing

Direktori tingkat atas seperti ini:

$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser

Jangan lupa me-restart sshdserver:

$ sudo service sshd restart

Sekarang buat akun userX:

$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...

Anda dapat memeriksa apakah akun itu dibuat dengan benar:

$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin

Setelah selesai dengan akun, hapus dengan cara yang sama di atas:

$ sudo userdel -r userX

... dan jangan lupa untuk menghapus perubahan file konfigurasi yang kami buat di atas, lalu mulai kembali sshduntuk membuatnya aktif sekali lagi.

slm
sumber
Bagus! Bagaimana saya bisa membatasi pengguna ke direktori tertentu, dan mencegah pengguna mengakses beberapa subdirektori dalam direktori itu?
OC2PS
ikat pengguna di dalam folder beranda dan tambahkan tautan simbolis ke dalam direktori berbeda yang ingin Anda izinkan
Kiwy
@ OC2PS - di atas menunjukkan satu metode chroot pengguna, Anda juga dapat chroot mereka ke direktori home mereka juga. Saya biasanya memecah pengguna ini ke area yang ditentukan sehingga jelas ketika saya melihat /home/...siapa yang benar-benar pengguna pada suatu sistem. Meskipun saya menjalankan server SFTP yang sebenarnya untuk bekerja sehingga kebutuhan saya sedikit berbeda.
slm
Ketika saya melakukan sudo useradd -D userX, saya mendapatkan Usage: useradd [options] LOGIN
OC2PS
@ OC2PS coba useradd userX. Maaf saya salah membaca halaman manual untuk useradd.
slm