Saya mencoba menyiapkan jail ssh-chroot di salah satu server NAS saya. Sistem berjalan pada NAS4Free (yang didasarkan pada nanobsd). Pengguna hanya dapat menjalankan satu perintah, yaitu skrip bash yang membuka ssh ke server lain dan menjalankan satu perintah di sana.
Untuk mengatur chroot, saya memiliki ini di konfigurasi sshd saya.
Match User op
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
Script memiliki baris ini di dalamnya:
ssh -i /.ssh/id_rsa [email protected]$externalresource -t "/mnt/storage/backup/run_project.sh '$1' '$2'"
Saya bisa masuk ke chroot itu menggunakan ssh tetapi ketika saya menjalankan skrip ini memberikan kesalahan berikut ketika mencoba menjalankan perintah ssh di dalamnya.
Couldn't open /dev/null: Operation not supported
Hal yang sama terjadi, ketika saya mencoba menjalankan ssh plain di dalam chroot
[I have no [email protected] /]$ ssh
Couldn't open /dev/null: Operation not supported
/dev/null terlihat seperti ini:
$ ls -la dev/
total 8
drwx--x--x 2 root staff 512 Nov 29 18:16 .
drwxr-xr-x 8 root staff 512 Nov 29 18:06 ..
crw-rw-rw- 1 root staff 0x18 Nov 29 18:16 null
Tanpa izin 666, tentu saja saya mendapatkan /dev/null izin ditolak kesalahan.
Saya membuat dev/null menggunakan
mknod dev/null c 2 2
Saya telah mencoba mencari penjelasan mengapa /dev/null mengembalikan operasi tidak diizinkan tetapi belum menemukan apa pun yang membantu.
Bisakah seseorang menjelaskan cara memperbaikinya?
Jawaban yang Diterima:
Saya membuat dev/null menggunakan
mknod dev/null c 2 2
Pengetahuan Anda sudah ketinggalan zaman. Hal-hal tidak bekerja dengan cara ini lagi, sekarang NAS4Free didasarkan pada FreeBSD 10 dan 11. (Lagi pula itu bukan nomor perangkat untuk perangkat null.) Baca mknod
manual. Anda masih dapat menjalankan mknod
untuk membuat node perangkat dalam disk atau sistem file RAM yang sebenarnya, tetapi node yang Anda buat akan sama sekali tidak berguna. Seperti yang Anda lihat, kernel tidak mengizinkan Anda membuka perangkat dengannya.
Inilah sebabnya mengapa di penjara — penjara yang sebenarnya, yang datang dengan sistem operasi, bukan lingkungan chroot sederhana yang dapat diatur dengan sshd_config
— seseorang memperoleh file perangkat dengan memasang devfs
contoh di dalam penjara. Itu juga mengapa penjara memiliki tombol untuk mengontrol apakah devfs
dapat dipasang dan aturan devfs apa yang berlaku untuknya.
Jika Anda menginginkan /dev/null
di lingkungan root yang diubah, Anda harus menggunakan mount_nullfs
untuk membuat /dev
yang sebenarnya pohon terlihat di dalam root yang diubah. Jika Anda menggunakan jail bonafide, konfigurasikan saja untuk memasang devfs di /dev
.
Jika Anda menggunakan jail bonafide, Anda tentu saja mengaturnya untuk menjalankan sshd
di dalam penjara , mendengarkan alamat IP penjara dan diaktifkan sebagai layanan di penjara /etc/rc.conf
dengan cara biasa.
Bacaan lebih lanjut
mknod
. Panduan FreeBSD 11.0.devfs
. Panduan FreeBSD 11.0.devfs.rules
. Panduan FreeBSD 11.0.- Dokumentasi:Cara:Penjara. NAS4Wiki gratis.
- Matteo Riondato. "Penjara". Buku Pegangan FreeBSD .
- Scott Robb (2015-03-04). Penjara FreeBSD .