Android

Bagaimana untuk menubuhkan penjara sftp chroot

SFTP Jailed Environment (chroot)

SFTP Jailed Environment (chroot)

Isi kandungan:

Anonim

Dalam tutorial ini, kami akan menerangkan cara membuat persekitaran SFTP Chroot Jail yang akan menyekat pengguna ke direktori rumah mereka. Pengguna hanya akan mempunyai akses SFTP, akses SSH akan dilumpuhkan. Arahan ini harus berfungsi untuk mana-mana pengedaran Linux moden termasuk Ubuntu, CentOS, Debian, dan Fedora.

Mewujudkan Kumpulan SFTP

Daripada mengkonfigurasi pelayan OpenSSH untuk setiap pengguna secara individu kami akan membuat kumpulan baru dan menambah semua pengguna chrooted kami ke kumpulan ini.

Jalankan perintah groupadd berikut untuk membuat kumpulan pengguna sftponly :

sudo groupadd sftponly Anda boleh menamakan kumpulan yang anda mahu.

Menambah Pengguna ke Kumpulan SFTP

Langkah seterusnya adalah untuk menambah pengguna yang anda mahu untuk menyekat kepada kumpulan sftponly .

Jika ini adalah persediaan baru dan pengguna tidak wujud, anda boleh membuat akaun pengguna baru dengan menaip:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • -g sftponly akan menambah pengguna ke kumpulan sftponly.The -s /bin/false menetapkan shell masuk pengguna. Dengan menetapkan shell masuk ke /bin/false pengguna tidak akan dapat login ke pelayan melalui pilihan SSH. -M -m -d /home/username memberitahu useradd untuk membuat direktori rumah pengguna.

Tetapkan kata laluan yang kuat untuk pengguna yang baru dibuat:

sudo passwd username

Jika tidak, jika pengguna yang ingin menyekat telah wujud, tambahkan pengguna ke kumpulan sftponly dan tukar shell pengguna:

sudo usermod -G sftponly -s /bin/false username2

Direktori rumah pengguna mesti dimiliki oleh root dan mempunyai 755 keizinan:

sudo chown root: /home/username sudo chmod 755 /home/username

Memandangkan pengguna direktori rumah dimiliki oleh pengguna root, pengguna ini tidak akan dapat membuat fail dan direktori dalam direktori rumah mereka. Sekiranya tiada direktori di rumah pengguna, anda perlu membuat direktori baru yang mana pengguna akan mempunyai akses penuh. Sebagai contoh, anda boleh membuat direktori berikut:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Sekiranya aplikasi web menggunakan direktori public_html pengguna sebagai akar dokumen, perubahan ini mungkin membawa kepada isu kebenaran. Sebagai contoh, jika anda menjalankan WordPress, anda perlu membuat kolam PHP yang akan berjalan sebagai pengguna yang memiliki fail dan menambah web erver ke kumpulan sftponly .

Mengkonfigurasi SSH

SFTP adalah subsistem SSH dan menyokong semua mekanisme pengesahan SSH.

Buka fail konfigurasi SSH /etc/ssh/sshd_config dengan editor teks anda:

sudo nano /etc/ssh/sshd_config

Cari baris yang bermula dengan Subsystem sftp , biasanya pada akhir fail. Jika garisan bermula dengan hash # alihkan hash # dan ubah suai untuk kelihatan seperti berikut:

/ etc / ssh / sshd_config

Subsystem sftp internal-sftp

Ke arah akhir fail, blok tetapan berikut:

/ etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

Arahan ChrootDirectory menentukan jalan ke direktori chroot. %h bermaksud direktori rumah pengguna. Direktori ini, mesti dimiliki oleh pengguna root dan tidak boleh ditulis oleh mana-mana pengguna atau kumpulan lain.

Berhati-hati apabila mengubah suai fail konfigurasi SSH. Konfigurasi yang salah boleh menyebabkan perkhidmatan SSH gagal dimulakan.

Sebaik sahaja selesai, simpan fail dan mulakan semula perkhidmatan SSH untuk memohon perubahan:

sudo systemctl restart ssh

Di CentOS dan Fedora, perkhidmatan ssh dinamakan sshd :

sudo systemctl restart sshd

Menguji Konfigurasi

Sekarang anda telah mengkonfigurasi SFTP chroot anda boleh cuba log masuk ke mesin jauh melalui SFTP menggunakan kelayakan pengguna chrooted. Dalam kebanyakan kes, anda akan menggunakan klien SFTP seperti FileZilla tetapi dalam contoh ini, kami akan menggunakan perintah sftp.

Buka sambungan SFTP menggunakan perintah sftp diikuti oleh nama pengguna pelayan jauh dan alamat IP pelayan atau nama domain:

sftp [email protected]

Anda akan diminta memasukkan kata laluan pengguna. Setelah disambungkan, pelayan jauh akan memaparkan mesej pengesahan dan sftp> prompt:

[email protected]'s password: sftp>

Jalankan arahan pwd , seperti yang ditunjukkan di bawah, dan jika semuanya berfungsi seperti yang diharapkan perintah itu harus kembali / .

sftp> pwd Remote working directory: /

Anda juga boleh menyenaraikan fail dan direktori jauh menggunakan arahan ls dan anda harus melihat direktori yang kami buat sebelumnya:

sftp> ls public_html uploads

Kesimpulannya

Dalam tutorial ini, anda telah belajar cara membuat persekitaran SFTP Chroot Jail di pelayan Linux anda dan menyekat akses pengguna ke direktori rumah mereka.

Secara lalai, SSH didengar pada port 22. Menukar port SSH lalai menambah lapisan tambahan keselamatan ke pelayan anda dengan mengurangkan risiko serangan automatik. Anda mungkin juga ingin menyiapkan pengesahan berasaskan kunci SSH dan menyambung ke pelayan tanpa memasukkan kata laluan.

keselamatan sshp