Sto provando a configurare una jail ssh-chroot su uno dei miei server NAS. Il sistema funziona su NAS4Free (che è basato su nanobsd). L'utente dovrebbe essere in grado di eseguire un solo comando, che è uno script bash che apre ssh su un altro server ed esegue un comando lì.
Per configurare il chroot ho questo nella mia configurazione sshd.
Match User op
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
Lo script contiene questa riga:
ssh -i /.ssh/id_rsa [email protected]$externalresource -t "/mnt/storage/backup/run_project.sh '$1' '$2'"
Posso accedere a quel chroot usando ssh ma quando eseguo lo script viene visualizzato il seguente errore quando provo a eseguire il comando ssh al suo interno.
Couldn't open /dev/null: Operation not supported
Lo stesso accade quando provo a eseguire ssh plain all'interno del chroot
[I have no [email protected] /]$ ssh
Couldn't open /dev/null: Operation not supported
/dev/null si presenta così:
$ 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
Senza i permessi 666 ottengo un errore /dev/null permesso negato ovviamente.
Ho creato dev/null usando
mknod dev/null c 2 2
Ho cercato di trovare una spiegazione del motivo per cui /dev/null restituisce l'operazione non consentita, ma non ho trovato nulla che aiuti.
Qualcuno potrebbe spiegare come risolvere questo problema?
Risposta accettata:
Ho creato dev/null usando
mknod dev/null c 2 2
La tua conoscenza è obsoleta. Le cose non funzionano più in questo modo, ora che NAS4Free è basato su prodotti del calibro di FreeBSD 10 e 11. (Né quelli sono i numeri di dispositivo per il dispositivo nullo comunque.) Leggi il mknod
Manuale. Puoi ancora eseguire mknod
per creare nodi dispositivo in un disco reale o filesystem RAM, ma i nodi che crei saranno praticamente del tutto inutili. Come puoi vedere, il kernel non ti consente di aprire i dispositivi con essi.
Questo è il motivo per cui nelle jail — vere e proprie jail, quelle fornite con il sistema operativo, non semplici ambienti con chroot che si possono configurare con sshd_config
— si ottengono i file del dispositivo montando un devfs
istanza all'interno del carcere. È anche il motivo per cui le jail hanno le manopole per controllare se devfs
può essere montato e quale set di regole devfs si applica ad esso.
Se vuoi un /dev/null
nel tuo ambiente root modificato, dovrai usare mount_nullfs
per creare l'effettivo /dev
albero visibile all'interno della radice modificata. Se usi una jail in buona fede, configurala per montare un devfs su /dev
.
Se usi un jail in buona fede, ovviamente lo configuri per eseguire sshd
dentro la prigione , ascoltando l'indirizzo IP della prigione e abilitato come servizio in della prigione /etc/rc.conf
normalmente.
Ulteriori letture
mknod
. Manuale di FreeBSD 11.0.devfs
. Manuale di FreeBSD 11.0.devfs.rules
. Manuale di FreeBSD 11.0.- Documentazione:Guida:Carcere. NAS4Wiki gratuito.
- Matteo Riondato. "Carcere". Manuale di FreeBSD .
- Scott Robb (04-03-2015). Jail di FreeBSD .