Cara Mengehadkan Akses Pengguna SSH ke Direktori tertentu Menggunakan Penjara Chrooted

Cara Mengehadkan Akses Pengguna SSH ke Direktori tertentu Menggunakan Penjara Chrooted

Terdapat beberapa sebab untuk menyekat sesi pengguna SSH ke direktori tertentu, terutamanya di pelayan web, tetapi yang jelas adalah keselamatan sistem. Untuk mengunci pengguna SSH dalam direktori tertentu, kita boleh menggunakan chroot mekanisme.

Tukar Root (chroot) dalam sistem seperti Unix seperti Linux, adalah cara untuk memisahkan operasi pengguna tertentu dari seluruh sistem Linux; mengubah direktori akar yang jelas untuk proses pengguna yang sedang berjalan dan proses anaknya (ibu bapa) dengan direktori root baru yang dipanggil a Penjara Chrooted.

Dalam tutorial ini, kami akan menunjukkan kepada anda bagaimana untuk menyekat akses pengguna SSH ke direktori yang diberikan di Linux. Perhatikan bahawa kami akan menjalankan semua arahan sebagai akar, gunakan arahan sudo jika anda log masuk ke pelayan sebagai pengguna biasa.

Isi kandungan

1
  • Langkah 1: Buat Penjara SSH Chroot
  • Langkah 2: Persediaan Shell Interaktif untuk Penjara SSH Chroot
  • Langkah 3: Buat dan Konfigurasikan Pengguna SSH
  • Langkah 4: Konfigurasikan SSH untuk menggunakan Penjara Chroot
  • Langkah 5: Menguji SSH dengan Penjara Chroot
  • Langkah 6. Buat direktori rumah pengguna SSH dan tambahkan arahan Linux
  • Langkah 7. Menguji SFTP dengan Penjara Chroot

Langkah 1: Buat Penjara SSH Chroot

1. Mulakan dengan membuat penjara chroot menggunakan perintah mkdir di bawah:

# mkdir -p /rumah /ujian 

2. Seterusnya, mengenal pasti fail yang diperlukan, mengikut sshd_config halaman lelaki, Chrootdirectory Pilihan Menentukan nama laluan direktori ke chroot selepas pengesahan. Direktori mesti mengandungi fail dan direktori yang diperlukan untuk menyokong sesi pengguna.

Untuk sesi interaktif, ini memerlukan sekurang -kurangnya cangkang, biasanya sh, dan asas /Dev nod seperti null, sifar, stdin, stdout, stderr, dan peranti tty:

# ls -l /dev /null, sifar, stdin, stdout, stderr, rawak, tty 
Penyenaraian fail yang diperlukan

3. Sekarang, buat /Dev fail seperti berikut menggunakan perintah mknod. Dalam arahan di bawah, -m Bendera digunakan untuk menentukan bit kebenaran fail, c bermaksud fail aksara dan kedua -dua nombor adalah nombor utama dan kecil yang ditunjuk oleh fail.

# mkdir -p/home/test/dev/ # cd/home/test/dev/ # mknod -m 666 null c 1 3 # mknod -m 666 tty c 5 0 # mknod -m 666 sifar c 1 5 # mknod - M 666 Rawak C 1 8 
Buat /dev dan fail yang diperlukan

4. Selepas itu, tetapkan kebenaran yang sesuai di Penjara Chroot. Perhatikan bahawa penjara chroot dan subdirektori dan subfilesnya mesti dimiliki oleh akar pengguna, dan tidak boleh ditulis oleh pengguna atau kumpulan biasa:

# Chown Root: Root /Home /Test # CHMOD 0755 /Home /Test # ls -ld /Home /Test 
Tetapkan kebenaran pada direktori

Langkah 2: Persediaan Shell Interaktif untuk Penjara SSH Chroot

5. Pertama, buat bin direktori dan kemudian menyalin /bin/bash fail ke dalam bin Direktori menggunakan arahan CP seperti berikut:

# mkdir -p/home/test/bin # cp -v/bin/bash/rumah/ujian/bin/ 
Salin fail ke direktori bin

6. Sekarang, kenal pasti bash yang diperlukan untuk dikongsi bersama libs, seperti di bawah, dan menyalinnya ke dalam lib Direktori:

# ldd/bin/bash # mkdir -p/home/test/lib64 # cp -v/lib64/libtinfo.Jadi.5, libdl.Jadi.2, libc.Jadi.6, LD-LINUX-X86-64.Jadi.2/rumah/ujian/lib64/ 
Salin fail perpustakaan bersama

Langkah 3: Buat dan Konfigurasikan Pengguna SSH

7. Sekarang, buat pengguna SSH dengan arahan USERADD dan tetapkan kata laluan yang selamat untuk pengguna:

# useradd tecmint # passwd tecmint 

8. Buat Direktori Konfigurasi Umum Penjara Chroot, /rumah/ujian/dll dan menyalin fail akaun yang dikemas kini (/etc/passwd dan /etc/kumpulan) ke dalam direktori ini seperti berikut:

# mkdir/home/test/etc # cp -vf/etc/passwd, kumpulan/rumah/ujian/etc/ 
Salin fail kata laluan Catatan: Setiap kali anda menambah lebih banyak pengguna SSH ke sistem, anda perlu menyalin fail akaun yang dikemas kini ke dalam /rumah/ujian/dll direktori.

Langkah 4: Konfigurasikan SSH untuk menggunakan Penjara Chroot

9. Sekarang, buka sshd_config fail.

# vi/etc/ssh/sshd_config 

dan tambahkan/ubah suai baris di bawah dalam fail.

#define nama pengguna untuk memohon penjara chroot ke Padankan pengguna tecmint #Specify Chroot Jail Chrootdirectory /rumah /ujian 
Konfigurasikan Penjara SSH Chroot

Simpan fail dan keluar, dan mulakan semula perkhidmatan SSHD:

# Systemctl mulakan semula sshd atau # perkhidmatan sshd mulakan semula 

Langkah 5: Menguji SSH dengan Penjara Chroot

10. Pada ketika ini, ujian jika persediaan penjara chroot berfungsi seperti yang diharapkan:

# ssh [dilindungi e -mel] -Bash-4.1 $ ls -bash -4.1 $ tarikh -bash -4.1 $ uname 
Menguji Penjara Pengguna SSH

Dari tangkapan skrin di atas, kita dapat melihat bahawa pengguna SSH dikunci di penjara yang diketepikan, dan tidak dapat menjalankan arahan luaran (LS, Tarikh, Uname, dll).

Pengguna hanya boleh melaksanakan Bash dan perintah terbinanya seperti (PWD, Sejarah, Echo, dll) seperti yang dilihat di bawah:

# ssh [dilindungi e -mel] -Bash-4.1 $ pwd -bash -4.1 $ echo "tecmint -tapak linux yang paling pesat berkembang" -bash -4.1 $ Sejarah 
Perintah terbina dalam SSH

Langkah 6. Buat direktori rumah pengguna SSH dan tambahkan arahan Linux

11. Dari langkah sebelumnya, kita dapat melihat bahawa pengguna dikunci dalam direktori root, kita boleh membuat direktori rumah untuk pengguna SSH seperti SO (lakukan ini untuk semua pengguna masa depan):

# mkdir -p/home/test/home/tecmint # chown -r tecmint: tecmint/home/test/home/tecmint # chmod -r 0700/home/test/home/tecmint 
Buat Direktori Rumah Pengguna SSH

12. Seterusnya, pasang beberapa arahan pengguna seperti LS, Tarikh, dan MKDIR di bin Direktori:

# cp -v/bin/ls/rumah/ujian/bin/ # cp -v/bin/tarikh/rumah/ujian/bin/ # cp -v/bin/mkdir/rumah/ujian/bin/ 
Tambahkan arahan kepada pengguna SSH

13. Seterusnya, periksa perpustakaan yang dikongsi untuk arahan di atas dan gerakkannya ke Direktori Perpustakaan Penjara Chrooted:

# ldd /bin /ls # cp -v /lib64 /libselinux.Jadi.1, libcap.Jadi.2, libacl.Jadi.1, libc.Jadi.6, libpcre.Jadi.1, libdl.Jadi.2, LD-LINUX-X86-64.Jadi.2, libattr.Jadi.1, libpthread.Jadi.0/rumah/ujian/lib64/ 
Salin perpustakaan bersama

Langkah 7. Menguji SFTP dengan Penjara Chroot

14. Lakukan ujian akhir menggunakan SFTP; periksa sama ada arahan yang baru anda pasang berfungsi.

Tambahkan garis di bawah di /etc/ssh/sshd_config Fail:

#Enable sftp ke penjara yang dipenjara forcecommand dalaman-sftp 

Simpan fail dan keluar. Kemudian mulakan semula perkhidmatan SSHD:

# Systemctl mulakan semula sshd atau # perkhidmatan sshd mulakan semula 

15. Sekarang, ujian menggunakan SSH, dan anda akan mendapat ralat berikut:

# ssh [dilindungi e -mel] 
Uji Penjara SSH Chroot

Cuba gunakan SFTP seperti berikut:

# sftp [dilindungi e -mel] 
Menguji Pengguna SFTP SSH

Anda mungkin juga berminat:

  • Cara Menghadkan Pengguna SFTP ke Direktori Rumah Menggunakan Penjara Chroot
  • Penggunaan dan Konfigurasi Perintah SSH Asas di Linux
  • 5 Amalan Terbaik Untuk Mencegah Serangan Log Masuk SSH Brute di Linux
  • 5 Amalan Keselamatan Terbaik OpenSSH Terbaik

Itu sahaja buat masa ini! Dalam artikel ini, kami menunjukkan kepada anda bagaimana untuk menyekat pengguna SSH dalam direktori tertentu (penjara chrooted) di Linux. Gunakan bahagian komen di bawah untuk menawarkan pemikiran anda mengenai panduan ini.