FreeBSD Jail ( anglicky jail - "vězení") je virtualizační mechanismus v systému FreeBSD , který vám umožňuje vytvořit několik nezávisle běžících FreeBSD na stejném jádru operačního systému, ale zcela nezávisle konfigurovaných s nezávislou sadou nainstalovaných aplikací v rámci jednoho operačního systému FreeBSD. Systém.
FreeBSD Jail je založen na systémovém volání chroot(2) , ve kterém se pro aktuální proces a všechny jeho potomky přenese kořenový adresář do konkrétního umístění v systému souborů . Toto umístění se stane kořenovým adresářem procesu. Proces v karanténě tedy může přistupovat pouze k základnímu adresářovému stromu.
FreeBSD Jail má však podporu i na úrovni jádra , což umožňuje omezit přístup k síti, sdílené paměti, sysctl kernel proměnným a omezit viditelnost procesů mimo vězení.
Proces uvězněný může přistupovat pouze k určitým IP adresám operačního systému a používat konkrétní název hostitele . Takový proces se nazývá „izolovaný proces“ nebo „proces ve vězení“.
Vzniká tak bezpečná „klec“, v níž lze spustit i potenciálně nebezpečný software, který nemůže nijak poškodit hlavní systém ani jiné podobné „klece“. Před verzí 9.0-RELEASE neměl FreeBSD Jail žádnou kontrolu nad využíváním prostředků (stejně jako například OpenVZ pod Linuxem ). Od verze 9.0-RELEASE byly podobné mechanismy zavedeny pomocí nástroje rctl (8) a rámce RACCT .
Na úrovni sysctl systému jsou konfigurována oprávnění uvězněných procesů:
sysctl identifikátor | Řízená funkčnost |
---|---|
security.jail.chflags_allowed | Schopnost měnit příznaky systémových souborů |
security.jail.allow_raw_sockets | Schopnost vytvářet nízkoúrovňové zásuvky |
security.jail.sysvipc_allowed | Schopnost používat System V IPC |
security.jail.set_hostname_allowed | Možnost nastavit si vlastní název hostitele uvnitř procesů ve vězení (obvykle je název hostitele nastaven při volání vězení) |
security.jail.enforce_statfs | Možnost vidět všechny připojené souborové systémy uvnitř uvězněných procesů |
security.jail.socket_unixiproute_only | Omezení schopnosti vytvářet UNIX/IPv4/route sockety |
security.jail.list | Seznam běžících vězení |
Nejběžnějším použitím FreeBSD Jail je vytváření izolovaných, bezpečných virtuálních strojů. V tomto případě jail(8) spustí inicializační skript /etc/rc , který spustí spuštění samostatného izolovaného virtuálního systému. V případě, že dojde i k nejničivějšímu hacknutí virtuálního systému a jeho funkcionalitě bude zakázána, nebudou ostatní běžící virtuální systémy ovlivněny.
V praxi poskytovatelů hostingu lze mechanismus vězení použít k vybudování spravovaných systémů na vyhrazených serverech . V této možnosti má klient přístup pouze do vězení a technický personál poskytovatelské společnosti do hlavního systému.
FreeBSD Jail, pokud je používán jako virtuální stroj ke spouštění libovolného softwaru, bude vyžadovat kompletní emulaci systémového prostředí, včetně:
Každý virtuální stroj na hostitelském systému (před FreeBSD 7.2) bude ke svému běhu nutně vyžadovat jednu IP adresu . Je také možné použít stejnou IP adresu pro více počítačů, ale služby na těchto virtuálních počítačích nesmí používat stejné porty TCP/UDP .
Počínaje FreeBSD 8.0 lze každému virtuálnímu počítači přiřadit více IP adres.
Více informací o instalaci a používání FreeBSD Jail najdete na manuálových stránkách jail(8) nebo v oficiální dokumentaci. [jeden]
add path 'bpf*' unhide
Projekt FreeBSD | ||
---|---|---|
Lidé |
| |
Derivátové projekty |
| |
Jiné projekty |
|