Úvod
Termín chroot vězení sahá až do roku 1992 a dnes se často používá. Co ale tento termín znamená a k čemu se tato operace používá?
V tomto tutoriálu probereme základy používání chrootových vězení a ukážeme vám, jak je můžete nastavit.
Předpoklady
- Systém s operačním systémem Linux nebo Unix
- Uživatelský účet s oprávněními na úrovni sudo
- Přístup k terminálu/příkazovému řádku
Co je chroot vězení?
chroot (zkratka pro změnit kořen ) je unixová operace, která změní zjevný kořenový adresář na adresář určený uživatelem.
Jakýkoli proces, který spustíte po operaci chroot, má přístup pouze k nově definovanému kořenovému adresáři a jeho podadresářům. Tato operace je hovorově známá jako chroot vězení protože tyto procesy nemohou číst ani zapisovat mimo nový kořenový adresář.
K čemu se používá chroot jail?
Chroot vězení se používá k vytvoření omezeného sandboxu pro proces, ve kterém se má spustit. To znamená, že proces nemůže se zlými úmysly měnit data mimo předepsaný strom adresářů.
Další použití pro chroot vězení je jako náhrada za virtuální stroje. Tato metoda se nazývá virtualizace na úrovni jádra a vyžaduje méně prostředků než virtuální stroje. Tato operace umožňuje uživatelům vytvářet více izolovaných instancí na stejném systému.
Jak používat chroot vězení
Tento příklad vás provede vytvořením a nastavením chroot jail, aby mohl spouštět bash
a ls
příkazy.
Postupujte takto:
1. Vytvořte nový adresář s názvem chroot_jail :
mkdir chroot_jail
Pokud se pokusíme o chroot
do nového adresáře získáme následující výstup:
Musíte povolit bash
než budete moci chroot
do nového adresáře. To vyžaduje zkopírování příkazového souboru a všech souvisejících knihoven do nového kořenového adresáře.
2. Vytvořte nový strom podadresářů v chroot_jail :
mkdir -p chroot_jail/bin chroot_jail/lib64/x86_64-linux-gnu chroot_jail/lib/x86_64-linux-gnu
Tyto podadresáře budou uchovávat všechny potřebné prvky bash
a ls
příkazy.
3. Pomocí cp
pomocí příkazu which
příkaz umožňuje zkopírovat bash
a ls
příkazy bez zadání cesty, ze které kopírujete.
Chcete-li to provést, použijte:
cp $(which ls) chroot_jail/bin/
cp $(which bash) chroot_jail/bin/
4. Pro bash
a ls
chcete-li pracovat v nové kořenové složce, přidejte všechny přidružené knihovny do chroot_jail/libraries . Použijte ldd
příkaz ke zjištění, které knihovny jsou přidruženy ke kterému příkazu:
ldd $(which bash)
ldd $(which ls)
5. Zkopírujte příslušné knihovny do chroot_jail podadresáře lib a lib64 .
Pro bash
příkaz:
cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
Pro ls
příkaz:
cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/
6. Použijte chroot
příkaz ke změně kořenového adresáře na chroot_jail adresář:
sudo chroot chroot_jail
Použijte ls
příkaz k zobrazení seznamu všech souborů a adresářů v novém stromu kořenových adresářů:
ls -R
7. Jakmile dokončíte používání nové kořenové složky, ukončete shell:
exit