Cara Mengehadkan Akses Pengguna SSH ke Direktori tertentu Menggunakan Penjara Chrooted
- 4635
- 1262
- Daryl Wilderman
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, ttyPenyenaraian 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 8Buat /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 /TestTetapkan 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 /ujianKonfigurasikan 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 $ unameMenguji 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 $ SejarahPerintah 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/tecmintBuat 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.
- « 4 Perintah berguna untuk membersihkan skrin terminal Linux
- 6 Metrik Prestasi Utama untuk Memantau di Linux Server - Bahagian 1 »