GNU/Linux >> Belajar Linux >  >> FreeBSD

Freebsd – Ssh Di Chrooted Jail Tidak Bekerja Karena /dev/null Operasi Tidak Didukung?

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.

Terkait:perbedaan antara [[ $a ==z* ]] dan [ $a ==z* ]?

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 .

FreeBSD
  1. Linux:Perbedaan Antara /dev/console , /dev/tty Dan /dev/tty0?

  2. Bagaimana Membungkam Sepenuhnya Cronjob Ke /dev/null/?

  3. Cara memetakan perangkat /dev/sdX dan /dev/mapper/mpathY dari perangkat /dev/dm-Z

  1. Apa itu file /dev/zero dan /dev/null di Linux?

  2. DD dari /dev/zero ke /dev/null...apa yang sebenarnya terjadi

  3. Linux:Perbedaan antara /dev/console , /dev/tty dan /dev/tty0

  1. kernel:menonaktifkan /dev/kmem dan /dev/mem

  2. gema atau cetak /dev/stdin /dev/stdout /dev/stderr

  3. Mengapa < atau > diperlukan untuk menggunakan /dev/tcp