Cara Menghadkan Pengguna SFTP ke Direktori Rumah Menggunakan Penjara Chroot
- 901
- 258
- Clay Weber
Dalam tutorial ini, kami akan membincangkan cara menyekat Sftp pengguna ke direktori rumah mereka atau direktori tertentu. Ini bermaksud pengguna hanya boleh mengakses direktori rumah masing -masing, bukan keseluruhan sistem fail.
Mengehadkan direktori rumah pengguna adalah penting, terutamanya dalam persekitaran pelayan bersama, supaya pengguna yang tidak dibenarkan tidak akan menyelinap ke dalam fail dan folder pengguna lain.
Penting: Sila juga ambil perhatian bahawa tujuan artikel ini adalah untuk menyediakan akses SFTP sahaja, bukan login SSH, dengan mengikuti artikel ini akan mempunyai keizinan untuk melakukan pemindahan fail, tetapi tidak dibenarkan melakukan sesi SSH jauh.
Cadangan Baca: Hadkan akses pengguna SSH ke direktori tertentu menggunakan penjara chrooted
Cara paling mudah untuk melakukan ini, adalah untuk mewujudkan persekitaran penjara chrooted untuk akses SFTP. Kaedah ini sama untuk semua sistem operasi Unix/Linux. Menggunakan persekitaran chrooted, kita boleh menyekat pengguna sama ada ke direktori rumah mereka atau ke direktori tertentu.
Hadkan pengguna ke direktori rumah
Dalam bahagian ini, kami akan membuat kumpulan baru yang dipanggil sftpgroup dan memberikan pemilikan dan kebenaran yang betul kepada akaun pengguna. Terdapat dua pilihan untuk menyekat pengguna ke rumah atau direktori tertentu, kita akan melihat kedua -dua cara dalam artikel ini.
Buat atau ubah pengguna dan kumpulan
Marilah kita menyekat pengguna yang sedia ada, sebagai contoh Tecmint
, ke direktori rumahnya bernama /rumah/tecmint
. Untuk ini, anda perlu membuat yang baru sftpgroup kumpulan menggunakan GroupAdd perintah seperti yang ditunjukkan:
# GroupAdd SFTPGroup
Seterusnya, berikan pengguna 'Tecmint' ke sftpgroup kumpulan.
# usermod -g sftpgroup tecmint
Anda juga boleh membuat pengguna baru menggunakan perintah useradd, contohnya Senthil
dan serahkan pengguna ke sftpusers kumpulan.
# adduser senthil -g sftpgroup -s /sbin /nologin # passwd tecmint
Ubah suai fail konfigurasi SSH
Buka dan tambahkan baris berikut ke /etc/ssh/sshd_config
fail konfigurasi.
Subsistem SFTP Kumpulan Perlawanan SFTP Dalaman SFTPGroup Chrootdirectory /Laman Utama Forcecommand Internal-SFTP X11forwarding No Allowtcpforwarding No
Simpan dan keluar dari fail, mulakan semula perkhidmatan SSHD untuk melaksanakan perubahan baru.
# Systemctl mulakan semula sshd atau # perkhidmatan sshd mulakan semula
Sekiranya anda mengutamakan pelbagai pengguna ke direktori yang sama, anda harus mengubah keizinan direktori rumah setiap pengguna untuk mengelakkan semua pengguna melayari direktori rumah bagi pengguna masing -masing.
# chmod 700 /home /tecmint
Sahkan log masuk pengguna SSH dan SFTP
Sekarang, sudah tiba masanya untuk memeriksa log masuk dari sistem tempatan. Cuba ssh sistem jauh anda dari sistem tempatan anda.
# ssh [dilindungi e -mel]
Di sini,
- Tecmint - Nama Pengguna Sistem Jauh.
- 192.168.1.150 - Alamat IP Sistem Jauh.
Output Contoh:
[E -mel dilindungi] Kata Laluan: Tidak boleh Chdir ke Direktori Rumah /Laman Utama /Tecmint: Tiada fail atau direktori sedemikian perkhidmatan ini membolehkan sambungan SFTP sahaja. Sambungan ke 192.168.1.150 ditutup.
Kemudian, akses sistem jauh menggunakan sftp.
# sftp [dilindungi e -mel]
Output Contoh:
[E -mel dilindungi] Kata Laluan: Disambungkan ke 192.168.1.150. sftp>
Mari kita periksa direktori kerja semasa:
sftp & gt pwd Direktori Kerja Jauh: / sftp & gt ls Tecmint
Di sini, Tecmint
adalah direktori rumah. CD ke Tecmint direktori dan buat fail atau folder pilihan anda.
sftp & gt cd tecmint Direktori Kerja Jauh: / ujian sftp & gt mkdir Tecmint
Hadkan pengguna ke direktori tertentu
Dalam contoh terdahulu kami, kami menyekat pengguna sedia ada ke direktori rumah. Sekarang, kita akan melihat bagaimana untuk menyekat pengguna baru ke direktori tersuai.
Buat kumpulan dan pengguna baru
Buat kumpulan baru sftpgroup
.
# GroupAdd SFTPGroup
Seterusnya, buat direktori untuk kumpulan sftp dan berikan kebenaran untuk pengguna root.
# mkdir -p/sftpusers/chroot # chown root: root/sftpusers/chroot/
Seterusnya, buat direktori baru untuk setiap pengguna, yang mana mereka akan mendapat akses penuh. Contohnya, kami akan mencipta Tecmint
pengguna dan direktori rumah baru dengan kebenaran kumpulan yang betul menggunakan siri arahan berikut.
# adduser tecmint -g sftpgroup -s /sbin/nologin # passwd tecmint # mkdir /sftpusers/chroot/tecmint # chown tecmint:sftpgroup /sftpusers/chroot/tecmint/ # chmod 700 /sftpusers/chroot/tecmint/
Konfigurasikan SSH untuk akses SFTP
Ubah suai atau tambahkan baris berikut pada akhir fail:
#Subsystem sftp/usr/libexec/openssh/sftp-server subsystem sftp sftp sftp cocok sftpgroup chrootdirectory/sftpusers/chroot/forcecommand internal-sftp x11forwarding no membenarkan
Simpan dan keluar dari fail. Mulakan semula perkhidmatan SSHD untuk melaksanakan perubahan yang disimpan.
# Systemctl mulakan semula sshd atau # perkhidmatan sshd mulakan semula
Itu sahaja, anda boleh menyemak dengan log masuk ke pelayan SSH dan SFTP jauh anda dengan menggunakan langkah yang disediakan di atas di Verify SSH dan SFTP Login.
Berhati -hati bahawa kaedah ini akan melumpuhkan akses shell, i.e anda tidak dapat mengakses sesi shell sistem jauh menggunakan SSH. Anda hanya boleh mengakses sistem jauh melalui SFTP dan melakukan pemindahan fail ke dan dari sistem tempatan dan jauh.
Kesimpulan
Sekarang anda tahu cara menyekat direktori rumah pengguna menggunakan persekitaran chroot di linux. Sekiranya anda mendapati ini berguna, kongsi artikel ini di rangkaian sosial anda dan beritahu kami di bahagian komen di bawah jika terdapat sebarang kaedah lain untuk menyekat direktori rumah pengguna.
- « Cara Memasang CMS Magento terkini di Ubuntu dan Debian
- 3 cara untuk menyenaraikan semua pakej yang dipasang di RHEL, Centos dan Fedora »