Come usare Chroot in Debian Top 10

Come usare Chroot in Debian Top 10
In un ambiente di test, dobbiamo spesso sandbox determinate applicazioni per impedire loro di danneggiare o curiosare il resto del sistema. Esistono diversi strumenti disponibili per sandboxing un programma e impedendo che influisca sul resto del sistema, come VirtualBox, VMware, Xen, KVM, ecc. Tuttavia, solo per una singola o poche applicazioni, sandboxing un intero sistema operativo non sembra pratico.

Per il sistema operativo Linux, è disponibile uno strumento, noto come Chroot, che fornisce un modo più semplice e veloce di sandboxing un'applicazione. Con Chroot, è possibile installare e testare qualsiasi applicazione senza influire sul resto del sistema.

Questo articolo spiegherà come utilizzare Chroot in Debian 10 Buster, insieme ad alcuni esempi. Per spiegazione, creeremo un ambiente Chroot per la Bash e alcuni dei comandi, come i comandi "LS", "IP" e "PWD".

Cos'è Chroot?

Lo strumento Chroot è un comando in Linux che modifica la directory principale di un'applicazione in un'altra directory. I processi in esecuzione in questa nuova directory di root non possono accedere ai file al di fuori di essa. Quindi, isola le operazioni di applicazioni dal resto del sistema.

Come funziona Chroot?

Chroot funziona copiando l'applicazione e tutti i suoi eseguibili e dipendenze all'interno della directory di radice alternativa. Quindi esegue l'applicazione all'interno di questa directory di radice alternativa, facendo sì che l'applicazione la considerasse la directory originale di radice. La directory principale è la directory più alta nella gerarchia e nessuna applicazione può raggiungere più alta di questa directory, quindi è così che Chroot isola l'applicazione dal resto del sistema.

Casi d'uso

  • Impostazione di un ambiente di prova
  • Esecuzione di programmi a 32 bit su un sistema a 64 bit
  • Esecuzione di versioni del programma più vecchie sull'ultima versione del sistema operativo
  • Recupero della password

Sintassi

Quanto segue è la sintassi di base per il comando Chroot:

$ chroot comando

Seguire i passaggi seguenti per utilizzare il comando chroot in debian per impostare un ambiente Chroot.

Crea una directory di radice alternativa

Innanzitutto, crea una directory di radice alternativa da utilizzare per l'ambiente Chroot.

$ sudo mkdir ~/new_root

Il comando sopra creerà il new_root directory sotto il Casa Directory, che verrà utilizzata come directory principale nell'ambiente Chroot.

Aggiungi directory essenziali

Crea le directory "bin", "lib" e "lib64" sotto il ~/new_root Directory:

$ sudo mkdir -p ~/new_root/bin, lib, lib64

Copia binari del programma

Tutto ciò che è necessario per eseguire un'applicazione nell'ambiente Chroot deve trovarsi nella directory di radice alternativa. In questo articolo, creeremo un ambiente Chroot per Bash e alcuni comandi, tra cui i comandi "LS", "IP" e "PWD". Pertanto, copriremo i binari dal /bidone Directory all'alternativa ~/new_root/bin directory. Per individuare i binari dei comandi, utilizzare il comando:

$ che bash LS ip pwd

Successivamente, copia i binari dei comandi al ~/new_root/bin directory.

$ sudo cp -v/bin/bash, ls, ip, pwd ~/new_root/bin

Copia le dipendenze del programma

Avremo anche bisogno di capire quali dipendenze hanno bisogno il nostro programma. Innanzitutto, dovremo trovare ciò che sono quelle dipendenze, e poi le copriremo su ~/new_root/lib directory.

Copia di dipendenze per Bash

Innanzitutto, scopri le dipendenze per il programma bash:

$ LDD /Bin /Bash

Quindi, copia queste dipendenze sul file ~/new_root/lib directory.

$ cp -v/lib/x86_64-linux-nogu/libinfo.COSÌ.6, libdl.COSÌ.2, libc.COSÌ.6 ~/new_root/lib

Per i file /lib64, copiali su ~/new_root/lib64 directory.

$ cp -v /lib64 /ld-linux-x86-64.COSÌ.2 ~/new_root/lib64

Copia dipendenze per il comando LS

Innanzitutto, scopri le dipendenze per il comando LS:

$ ldd /bin /ls

Quindi, copia queste dipendenze sul file ~/new_root/lib directory.

$ sudo cp -v/lib/x86_64-linux-nogu/libselinux.COSÌ.1, libc.COSÌ.6, libpcre.COSÌ.3,
libdl.COSÌ.2, libpthread.COSÌ.0 /lib64 /ld-linux-x86-64.COSÌ.2 ~/new_root/lib

Per i file /lib64, copiali su ~/new_root/lib64 directory.

$ sudo cp -v /lib64 /ld-linux-x86-64.COSÌ.2 ~/new_root/lib64

Copia dipendenze per il comando IP

Innanzitutto, scopri le dipendenze per il comando IP:

$ LDD /Bin /IP

Quindi, copia queste dipendenze sul file ~/new_root/lib directory.

$ cp -v /lib /x86_64 -linux
gnu/libselinux.COSÌ.1, libelf.COSÌ.1, libmnl.COSÌ.0, libcap.COSÌ.2, libdl.COSÌ.2, libc.COSÌ.6,
libpcre.COSÌ.3, libz.COSÌ.1, libpthread.COSÌ.0 ~/new_root/lib

Per i file /lib64, copiali su ~/new_root/lib64 directory.

$ sudo cp -v /lib64 /ld-linux-x86-64.COSÌ.2 ~/new_root/lib64

Copia dipendenze per il comando PWD

Innanzitutto, scopri le dipendenze per il comando PWD:

$ LDD /Bin /PWD

Quindi, copia queste dipendenze sul file ~/new_root/lib directory.

$ sudo cp -v/lib/x86_64-linux-no/libc.COSÌ.6 ~/new_root/lib

Per i file /lib64, copiali su ~/new_root/lib64 directory.

$ sudo cp -v /lib64 /ld-linux-x86-64.COSÌ.2 ~/new_root/lib64

Per visualizzare tutte le directory nella directory della radice alternativa, utilizzare il comando seguente:

$ ls -r

Passa alla directory della radice alternativa

Ora siamo finalmente pronti a passare al nostro nuovo ambiente Chroot. Per modificare la directory principale, eseguire il comando seguente nella shell con i privilegi di root:

$ sudo chroot ~/new_root/bin/bash

Dove ~/new_root è la nostra directory di radice alternativa e /Bin/Bash è l'applicazione che abbiamo usato per impostare l'ambiente Chroot.

Dopo aver eseguito il comando sopra, vedrai che il prompt bash è cambiato Bash-X.y che nel nostro caso è Bash-5.0 (dove 5.0 è il numero di versione bash).

Nota: È possibile riscontrare il seguente errore dopo l'esecuzione del comando Chroot, come ho fatto io:

Se si verifica questo errore, verificare di aver aggiunto tutte le librerie ed eseguibili relativi al programma richiesto alla nuova directory di root.

Dopo aver inserito l'ambiente Chroot, sarai in grado di accedere al file al suo interno. Prova a eseguire i comandi che hai impostato per il tuo ambiente Chroot, inclusi alcuni comandi integrati. Puoi trovare i comandi integrati eseguendo il aiuto comando nella shell.

Puoi vedere che abbiamo provato i comandi "LS", "PW" e "IP", e tutti ci sono riusciti. Se eseguiamo qualche comando diverso da questi tre comandi e i comandi integrati, il comando fallirà, poiché non lo abbiamo impostato per l'ambiente Chroot. Come puoi vedere nella seguente screenshot, abbiamo provato a eseguire i comandi "Touch", "Ping" e "Clear", e tutti falliti.

Esci chroot

Per uscire dall'ambiente Chroot, usa il Uscita comando.

Conclusione

In questo articolo, hai imparato cos'è Chroot e come funziona in Linux. Questo articolo ti ha mostrato passo dopo passo come utilizzare Chroot in Debian 10 Buster per creare un ambiente Chroot per Bash e altri comandi. Ora, dovresti sentirti a tuo agio nell'uso del comando Chroot per modificare la directory principale di un processo e i suoi sottoprocessi e isolarli dal resto del sistema.