Ada beberapa alasan untuk batasi sesi pengguna SSH ke direktori tertentu, terutama pada server web, tetapi yang jelas adalah keamanan sistem. Untuk mengunci pengguna SSH di direktori tertentu, kita dapat menggunakan chroot mekanisme.
ganti akar (chroot) dalam sistem mirip Unix seperti Linux, merupakan cara untuk memisahkan operasi pengguna tertentu dari sistem Linux lainnya; mengubah direktori root yang terlihat untuk proses pengguna yang sedang berjalan dan proses turunannya dengan direktori root baru yang disebut a penjara chroot.
Dalam tutorial ini, kami akan menunjukkan cara membatasi akses pengguna SSH ke direktori tertentu di Linux. Perhatikan bahwa kami akan menjalankan semua perintah sebagai root, gunakan perintah sudo jika Anda masuk ke server sebagai pengguna biasa.
1. Mulailah dengan membuat chroot jail menggunakan perintah mkdir di bawah ini:
# mkdir -p /home/test.
2. Selanjutnya, identifikasi file yang diperlukan, sesuai dengan sshd_config halaman manual,
Direktori Chroot
opsi menentukan nama path direktori ke chroot setelah otentikasi. Direktori harus berisi file dan direktori yang diperlukan untuk mendukung sesi pengguna.
Untuk sesi interaktif, ini membutuhkan setidaknya shell, biasanya NS
, dan dasar /dev
node seperti perangkat null, zero, stdin, stdout, stderr, dan tty:
# ls -l /dev/{null, nol, stdin, stdout, stderr, acak, tty}
3. Sekarang, buat /dev
file sebagai berikut menggunakan perintah mknod. Pada perintah di bawah ini, -M
flag digunakan untuk menentukan bit izin file, C
berarti file karakter dan dua angka tersebut adalah angka besar dan kecil yang ditunjuk oleh file tersebut.
# 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 nol c 1 5. # mknod -m 666 acak c 1 8.
4. Setelah itu, atur izin yang sesuai pada chroot jail. Perhatikan bahwa chroot jail dan subdirektori serta subfilenya harus dimiliki oleh akar pengguna, dan tidak dapat ditulis oleh pengguna atau grup biasa:
# chown root: root /home/test. # chmod 0755 /home/test. # ls -ld /home/test.
5. Pertama, buat tempat sampah
direktori dan kemudian salin /bin/bash
file ke dalam tempat sampah
direktori sebagai berikut:
# mkdir -p /home/test/bin. # cp -v /bin/bash /home/test/bin/
6. Sekarang, identifikasi bash yang diperlukan untuk dibagikan lib
, seperti di bawah ini dan salin ke dalam gratis
direktori:
#ldd /bin/bash. # mkdir -p /home/test/lib64. # cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/
7. Sekarang, buat pengguna SSH dengan perintah tambahkan pengguna dan atur kata sandi yang aman untuk pengguna:
# penggunatambahkan teknologi. # passwd tecmint.
8. Buat direktori konfigurasi umum chroot jail, /home/test/etc
dan salin file akun yang diperbarui (/etc/passwd dan /etc/group) ke dalam direktori ini sebagai berikut:
# mkdir /home/test/etc. # cp -vf /etc/{passwd, group} /home/test/etc/
Catatan: Setiap kali Anda menambahkan lebih banyak pengguna SSH ke sistem, Anda harus menyalin file akun yang diperbarui ke dalam /home/test/etc
direktori.
9. Sekarang, buka sshd_config
mengajukan.
# vi /etc/ssh/sshd_config.php
dan tambahkan/ubah baris di bawah ini dalam file.
#define nama pengguna untuk menerapkan chroot jail. Cocokkan teknologi Pengguna #tentukan chroot jail. Direktori Chroot /home/test
Simpan file dan keluar, dan mulai ulang layanan SSHD:
# systemctl restart sshd. ATAU. # layanan sshd dimulai ulang.
10. Pada titik ini, uji apakah pengaturan jail chroot berfungsi seperti yang diharapkan:
# ssh [dilindungi email]
-bash-4.1$ ls. -bash-4.1$ tanggal. -bash-4.1$ uname.
Dari screenshot di atas, kita dapat melihat bahwa pengguna SSH terkunci di jail chroot, dan tidak dapat menjalankan perintah eksternal (ls, date, uname dll).
Pengguna hanya dapat menjalankan bash dan perintah bawaannya seperti (pwd, history, echo dll) seperti yang terlihat di bawah ini:
# ssh [dilindungi email]-bash-4.1$ pwd. -bash-4.1$ echo "Tecmint - Situs Linux dengan Pertumbuhan Tercepat" -bash-4.1$ sejarah.
11. Dari langkah sebelumnya, kita dapat melihat bahwa pengguna terkunci di direktori root, kita dapat membuat direktori home untuk pengguna SSH seperti itu (lakukan ini untuk semua pengguna yang akan datang):
# mkdir -p /home/test/home/tecmint. # chown -R tecmint: tecmint /home/test/home/tecmint. # chmod -R 0700 /home/test/home/tecmint.
12. Selanjutnya, instal beberapa perintah pengguna seperti ls, date, mkdir di tempat sampah
direktori:
# cp -v /bin/ls /home/test/bin/ # cp -v /bin/tanggal /home/test/bin/ # cp -v /bin/mkdir /home/test/bin/
13. Selanjutnya, periksa perpustakaan bersama untuk perintah di atas dan pindahkan ke direktori perpustakaan penjara chroot:
#ldd /bin/ls. # cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86- 64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/
14. Lakukan tes akhir menggunakan sftp; periksa apakah perintah yang baru saja Anda instal berfungsi.
Tambahkan baris di bawah ini di /etc/ssh/sshd_config
mengajukan:
#Aktifkan sftp ke chroot jail ForceCommand internal-sftp.
Simpan file dan keluar. Kemudian restart layanan SSHD:
# systemctl restart sshd. ATAU. # layanan sshd dimulai ulang.
15. Sekarang, uji menggunakan SSH, Anda akan mendapatkan kesalahan berikut:
# ssh [dilindungi email]
Coba gunakan SFTP sebagai berikut:
#sftp [dilindungi email]
Disarankan Baca:Batasi Pengguna SFTP ke Direktori Rumah Menggunakan chroot Jail
Itu saja untuk saat ini!. Pada artikel ini, kami menunjukkan kepada Anda cara membatasi pengguna SSH di direktori tertentu (penjara chroot) di Linux. Gunakan bagian komentar di bawah untuk memberikan pendapat Anda tentang panduan ini.