Cara Menghadkan Pengguna SFTP ke Direktori Rumah Menggunakan Penjara Chroot

Cara Menghadkan Pengguna SFTP ke Direktori Rumah Menggunakan Penjara Chroot

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,

  1. Tecmint - Nama Pengguna Sistem Jauh.
  2. 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.