GNU/Linux >> Znalost Linux >  >> Cent OS

Pochopení chroot Jail

Jak název napovídá, operace chroot změní zjevný kořenový adresář pro běžící proces a jeho potomky. Umožňuje spouštět program (proces) s jiným kořenovým adresářem než /. Program nemůže vidět ani přistupovat k souborům mimo určený strom adresářů.

Můžete například spustit program a zadat jeho kořenový adresář jako /home/user/jail. V tomto případě je kořenový adresář programu ve skutečnosti /home/user/jail. Program by si nebyl vědom žádných souborů nad tímto adresářem v hierarchii nebo by k nim neměl přístup.

Tento umělý kořenový adresář se nazývá chroot vězení . Jeho účelem je omezit přístup potenciálního útočníka k adresáři. Chroot vězení uzamkne daný proces a jakékoli uživatelské ID, které používá, takže uživatel vidí pouze adresář, ve kterém je proces spuštěn. Procesu
se zdá, že běží v kořenovém adresáři.

Chroot vězení není určeno k:
– obraně proti záměrné manipulaci ze strany privilegovaných (rootových) uživatelů.
– k blokování nízkoúrovňového přístupu privilegovaných uživatelů k systémovým zařízením. Uživatel chroot root může stále vytvářet uzly zařízení a připojovat na ně systémy souborů.

Pro úspěšné spuštění procesu chroot musí být chroot adresář naplněn všemi požadovanými programovými soubory, konfiguračními soubory, uzly zařízení a sdílenými knihovnami v jejich očekávaných umístěních.

Použití nástroje chroot

1. Chcete-li použít chroot jail, použijte následující příkaz (new_root musí být existující adresář):

# chroot new_root [command]

2. Adresář new_root se stane umělým kořenovým adresářem. chroot se změní na new_root a spustí volitelný příkaz. Bez zadání příkazu jako argumentu se chroot změní na new_root a spustí hodnotu proměnné prostředí SHELL nebo /bin/sh, pokud SHELL není nastaven.

3. Za předpokladu, že je například SHELL nastaven na /bin/bash a adresář /home/user/jail existuje, spuštění příkazu chroot má za následek následující:

# chroot /home/user/jail
chroot: failed to run command ‘/bin/bash’: No such file or directory

4. Adresář /home/user/jail má název /. chroot nemůže najít /bin/bash v tomto chrootovém vězení a vrátí chybovou zprávu. Chcete-li implementovat chroot jail, vytvořte novou strukturu kořenového adresáře a zkopírujte všechny potřebné soubory do tohoto nového kořenového adresáře před spuštěním příkazu chroot.

Konfigurace chroot Jail

1. Chcete-li implementovat chroot jail a spustit /bin/bash, vytvořte adresář bin v umělém kořenovém adresáři (v tomto příkladu /home/oracle/jail) a zkopírujte /bin/bash do tohoto adresáře:

$ mkdir /home/oracle/jail/bin
$ cp /bin/bash /home/oracle/jail/bin

2. Příkaz /bin/bash je dynamicky propojen se sdílenými knihovnami. Tyto knihovny je také nutné zkopírovat do chroot jail. Pomocí příkazu ldd určete, které knihovny vyžaduje příkaz /bin/bash:

# ldd /bin/bash
	linux-vdso.so.1 =>  (0x00007fff11bff000)
	libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003728800000)
	libdl.so.2 => /lib64/libdl.so.2 (0x0000003d56400000)
	libc.so.6 => /lib64/libc.so.6 (0x0000003d56800000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003d56000000)

3. Zkopírujte každý z těchto souborů do adresáře lib64 v umělém kořenovém adresáři. Vytvořte adresář lib64 a zkopírujte sdílené knihovny do tohoto adresáře:

$ mkdir /home/oracle/jail/lib64
$ cp /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/oracle/jail/lib64

4. Nyní, když jsou všechny požadované soubory na svých očekávaných místech, spuštění příkazu chroot (jako root) má za následek následující:

# chroot /home/oracle/jail

5. Příkaz tentokrát uspěl a program /bin/bash se provedl. Zadáním pwd pro tisk aktuálního adresáře se zobrazí /, i když skutečný adresář je /home/oracle/jail:

# pwd
/

Příkaz pwd se spustí, protože se jedná o vestavěný příkaz shellu. Spuštění jakéhokoli jiného příkazu se nezdaří, protože bash nemůže příkaz najít. Proces předpokládá, že je v kořenovém adresáři a nemá žádnou viditelnost ani nezná žádné soubory nad tímto adresářem v hierarchii. Například spuštění příkazu ls se nezdaří:

# ls
bash: ls: command not found

6. Pomocí příkazu exit opusťte chroot jail.

# exit
exit
#
CentOS / RHEL :Jak nastavit chroot jail SFTP
CentOS / RHEL :Jak nastavit chroot jail pro vsftp pro všechny uživatele
CentOS / RHEL :Jak nastavit chroot jail pro vsftp pouze pro konkrétní uživatele
CentOS / RHEL:Jak nastavit SFTP na Chroot Jail pouze pro konkrétní skupinu


Cent OS
  1. Chroot „vězení“ – co to je a jak jej používat?

  2. Adresář kostry

  3. Svázat připojení uživatele SFTP po použití chrootu

  1. Pochopení adresáře /etc/xinetd.d pod Linuxem

  2. Pochopení SELinux Booleans

  3. Pochopení adresáře /etc/skel v Linuxu

  1. Vytvořte chroot vězení

  2. Pochopení chroot Jail

  3. Porozumění linuxové rezervaci SCSI