Jak używać Chroot w Debian Top 10

Jak używać Chroot w Debian Top 10
W środowisku testowym często musimy wyatedzić niektóre aplikacje, aby zapobiec ich uszkodzeniu lub szpiegowaniu reszty systemu. Dostępne są różne narzędzia do piaskowania programu i zapobiegania jego wpływom na resztę systemu, takie jak VirtualBox, VMware, Xen, KVM itp. Jednak dla tylko jednego lub kilku aplikacji piaskownica cały system operacyjny nie wydaje się praktyczny.

Dla systemu systemu Linux dostępny jest narzędzie znane jako chroot, które zapewnia łatwiejszy i szybszy sposób piaskowania aplikacji. Dzięki chroot możesz zainstalować i testować dowolną aplikację bez wpływu na resztę systemu.

W tym artykule wyjaśniono, jak używać Chroot w Debian 10 Buster, wraz z kilkoma przykładami. W celu wyjaśnienia stworzymy środowisko chroot dla bash i niektóre polecenia, takie jak polecenia „LS”, „IP” i „PWD”.

Co to jest Chroot?

Narzędzie Chroot to polecenie w Linux, które zmienia katalog główny aplikacji na inny katalog. Procesy działające w tym nowym katalogu głównym nie mogą uzyskać dostępu do plików poza nim. Stąd izoluje operacje aplikacji z reszty systemu.

Jak działa Chroot?

Chroot działa poprzez kopiowanie aplikacji i wszystkich jej wykonywalnych i zależności w alternatywnym katalogu głównym. Następnie uruchamia aplikację z tego alternatywnego katalogu głównego, powodując, że aplikacja uważa ją za oryginalny katalog główny. Katalog główny jest najwyższym katalogiem w hierarchii i żadna aplikacja nie może osiągnąć wyżej niż ten katalog, więc w ten sposób Chroot izoluje aplikację z reszty systemu.

Przypadków użycia

  • Konfigurowanie środowiska testowego
  • Uruchamianie 32-bitowych programów w 64-bitowym systemie
  • Uruchamianie starszych wersji programu w najnowszej wersji systemu operacyjnego
  • Odzyskiwanie hasła

Składnia

Poniżej znajduje się podstawowa składnia dla polecenia Chroot:

$ chroot Komenda

Wykonaj poniższe kroki, aby użyć polecenia Chroot w Debian, aby skonfigurować środowisko Chroot.

Utwórz alternatywny katalog główny

Najpierw utwórz alternatywny katalog główny, który ma być używany w środowisku Chroot.

$ sudo mkdir ~/new_root

Powyższe polecenie utworzy NEW_ROOT katalog pod Dom katalog, który będzie używany jako katalog główny w środowisku chroot.

Dodaj niezbędne katalogi

Utwórz katalogi „Bin”, „Lib” i „Lib64” pod ~/new_root informator:

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

Kopiuj pliki binarne

Wszystko, co wymagane do uruchomienia aplikacji w środowisku Chroot, musi znajdować się w alternatywnym katalogu głównym. W tym artykule utworzymy środowisko chroot dla bash i niektóre polecenia, w tym polecenia „LS”, „IP” i „PWD”. Dlatego skopiujemy binaria z /kosz katalog do alternatywy ~/new_root/bin informator. Aby zlokalizować pliki binarne poleceń, użyj polecenia, które:

$, które bash ls ip pwd

Następnie skopiuj pliki binarne poleceń do ~/new_root/bin informator.

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

Kopiuj zależności programu

Będziemy również musieli dowiedzieć się, jakie zależności potrzebują naszych programów. Najpierw będziemy musieli znaleźć, jakie są te zależności, a następnie skopiujemy je do ~/new_root/lib katalog.

Kopiowanie zależności od Bash

Najpierw dowiedz się o zależności od programu BASH:

$ ldd /bin /bash

Następnie skopiuj te zależności do ~/new_root/lib informator.

$ cp -v/lib/x86_64-Linux-gnu/libtinfo.Więc.6, Libdl.Więc.2, Libc.Więc.6 ~/new_root/lib

W przypadku plików /lib64 skopiuj je do ~/new_root/lib64 informator.

$ cp -v /lib64 /ld-linux-x86-64.Więc.2 ~/new_root/lib64

Kopiuj zależności dla polecenia LS

Najpierw znajdź zależności od polecenia LS:

$ ldd /bin /ls

Następnie skopiuj te zależności do ~/new_root/lib informator.

$ sudo cp -v/lib/x86_64-linux-gnU/libselinux.Więc.1, Libc.Więc.6, libpcre.Więc.3,
Libdl.Więc.2, libpthread.Więc.0 /lib64 /ld-linux-x86-64.Więc.2 ~/new_root/lib

W przypadku plików /lib64 skopiuj je do ~/new_root/lib64 informator.

$ sudo cp -v /lib64 /ld-linux-x86-64.Więc.2 ~/new_root/lib64

Kopiuj zależności dla polecenia IP

Najpierw znajdź zależności od polecenia IP:

$ ldd /bin /ip

Następnie skopiuj te zależności do ~/new_root/lib informator.

$ cp -v /lib /x86_64 -linux
gnU/libselinux.Więc.1, libelf.Więc.1, libmnl.Więc.0, Libcap.Więc.2, Libdl.Więc.2, Libc.Więc.6,
libpcre.Więc.3, Libz.Więc.1, libpthread.Więc.0 ~/new_root/lib

W przypadku plików /lib64 skopiuj je do ~/new_root/lib64 informator.

$ sudo cp -v /lib64 /ld-linux-x86-64.Więc.2 ~/new_root/lib64

Kopiuj zależności dla polecenia PWD

Najpierw znajdź zależności od polecenia PWD:

$ ldd /bin /pwd

Następnie skopiuj te zależności do ~/new_root/lib informator.

$ sudo cp -v/lib/x86_64-linux-gnu/libc.Więc.6 ~/new_root/lib

W przypadku plików /lib64 skopiuj je do ~/new_root/lib64 informator.

$ sudo cp -v /lib64 /ld-linux-x86-64.Więc.2 ~/new_root/lib64

Aby wyświetlić wszystkie katalogi w alternatywnym katalogu głównym, użyj następującego polecenia:

$ ls -r

Przełącz na alternatywne katalog główny

Teraz jesteśmy w końcu przygotowani do przejścia na nasze nowe środowisko Chroot. Aby zmienić katalog główny, uruchom następujące polecenie w powładzie z uprawnieniami root:

$ sudo chroot ~/new_root/bin/bash

Gdzie ~/new_root jest naszym alternatywnym katalogiem głównym i /bin/bash to aplikacja, której użyliśmy do konfigurowania środowiska chroot.

Po uruchomieniu powyższego polecenia zobaczysz, że monit bash zmienił się na Bash-X.y Które w naszym przypadku jest Bash-5.0 (gdzie 5.0 to numer wersji bash).

Notatka: Możesz napotkać następujący błąd po uruchomieniu polecenia Chroot, tak jak ja:

Jeśli wystąpi ten błąd, sprawdź, czy dodałeś wszystkie biblioteki i elementy wykonywalne związane z wymaganym programem do nowego katalogu głównego.

Po wejściu do środowiska Chroot będziesz mógł uzyskać dostęp do pliku. Spróbuj uruchomić polecenia skonfigurowane dla środowiska Chroot, w tym niektóre wbudowane polecenia. Można znaleźć wbudowane polecenia, uruchamiając pomoc polecenie w skorupce.

Widać, że wypróbowaliśmy polecenia „LS”, „PW” i „IP”, a wszystkie z nich się udało. Jeśli uruchomimy dowolne polecenie innego niż te trzy polecenia i wbudowane polecenia, polecenie się nie powiedzie, ponieważ nie skonfigurowaliśmy go dla środowiska chroot. Jak widać na poniższym zrzucie ekranu, próbowaliśmy uruchomić polecenia „dotyk”, „ping” i „jasne”, a wszystkie nie powiodły się.

Wyjdź chroot

Aby wyjść z środowiska chroot, użyj Wyjście Komenda.

Wniosek

W tym artykule dowiedziałeś się, czym jest Chroot i jak to działa w Linux. W tym artykule pokazano, że krok po kroku, jak korzystać z Chroot w Debian 10 Buster, aby stworzyć środowisko Chroot dla Bash i innych poleceń. Teraz powinieneś czuć się komfortowo, używając polecenia chroot, aby zmienić katalog główny procesu i jego podprocesy i izolowanie ich od reszty systemu.