Saya punya rilis CentOs 6.4 dengan Digital Ocean dan ingin berhasil membuat pengguna SFTP dan memenjarakan mereka ke direktori home chroot milik pengguna, tetapi saya khawatir saya membuat kekacauan ini.
Saya sudah mencoba banyak hal, terlalu banyak untuk disebutkan di sini karena kebanyakan mungkin salah atau tidak masuk akal, tetapi apa yang saya rasa seharusnya merupakan proses yang benar dan apa yang saya coba adalah: -
Buat grup untuk sftp
: -
groupadd sftp
Buat pengguna dan atur direktori home mereka: -
useradd -d /var/www/vhosts/domain.com dummyuser
Tetapkan kata sandi untuk pengguna: -
passwd dummyuser
Ubah grup pengguna menjadi 'sftp': -
usermod -g sftp dummyuser
Setel shell pengguna ke /bin/false
: -
usermod -s /bin/false dummyuser
Edit Subsistem di sshd_config
( /etc/ssh/
): -
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Tambahkan yang berikut ke bagian bawah sshd_config
file: -
Match group sftp
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Saya memastikan semua direktori berikut adalah root:root
: -
/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Jika saya kemudian mencoba masuk ke server melalui SFTP dengan pengguna dummyuser
(di WinSCP), saya mendapatkan yang berikut: -
Authentication log (see session log for details):
Using username "dummyuser".
Authentication failed.
Yang ingin saya capai adalah memenjarakan pengguna ke direktori home mereka. Saya juga sudah mengatur dan mengkonfigurasi vsftpd. Pengguna dapat masuk dengan baik tetapi akan memiliki akses ke seluruh server - Saya hanya belum berhasil memenjarakan bekerja sama sekali.
Edit
Lupa menyebutkan, saya kemudian memulai kembali sshd
juga: -
service sshd restart
Ketika kesalahan dihasilkan di WinSCP, halaman bantuan mereka di sini ada di sini .
Hasil Log
/var/log/secure
Saya mengganti nama server yang sebenarnya dengan server_name
.
Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser
sshd
? Apa yang ada di file log di server?/var/log/secure
.vhosts
adaroot:root
.Jawaban:
Ini perangkap umum:
Semua folder hingga rumah chroot harus dimiliki dan hanya dapat ditulis oleh
root
pengguna.Folder tidak dapat ditulis grup - bahkan jika grup itu
root
.sumber
namei -l /var/www/vhosts
Saya menemukan dan berhasil mengkonfigurasi sftp pada CentOS 6.5: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
Edit sshd config:
vim / etc / ssh / sshd_config
Keluar dan simpan.
Kemudian:
Untuk pengguna baru bernama "testuser" (anggota grup sftp-only dengan GID 500):
(Saya menggunakan kosong / etc / skel2 sehingga tidak ada. Bashrc dll disalin secara default oleh CentOS)
Jadi, dalam contoh ini, saya membuatnya untuk memberikan akses aman ke perusahaan konsultan eksternal yang mengelola situs web. Anda bisa setelah membuat semua ini dilakukan:
Orang bisa memperbaiki semua ini sesuai kebutuhan.
Semoga ini bisa membantu!
Guy Boisvert IngTegration inc. http://www.ingtegration.com
sumber
service sshd restart