Mivel a rendszeradminisztráció egy nehéz és zavarba ejtő feladat, rengeteg komoly eszköz jött létre a rendszergazdák életének megkönnyítésére. Ezek az eszközök többnyire a rendszerek telepítését, beállítását és karbantartását igyekeznek valamilyen módon jobbá tenni. A rendszergazdák egyik feladata úgy gondoskodni a biztonságról, hogy közben a rendszer képes legyen ellátni eredeti feladatát.
A FreeBSD rendszerek biztonságosságának növelését hivatott egyik ilyen eszköz a jails. Először a FreeBSD 4.X verziójában bukkant fel, de jelentős fejlődésen ment keresztül a FreeBSD 5.X verziókban, aminek köszönhetően sokkal erőteljesebb és rugalmasabb alrendszerré vált. A fejlesztése természetesen most is folytatódik tovább, állandóan fejlődik a használhatósága, teljesítménye, megbízhatósága és biztonságossága.
A BSD-szerű operációs rendszerekben már a 4.2BSD óta megtalálható volt a chroot(2). A chroot(8) segédprogrammal meg tudjuk megváltoztatni adott programok számára a gyökérkönyvtárat, és ezzel egy biztonságos környezetet teremteni, távol a rendszer többi részétől. A chroot-tal kialakított környezetben elinduló programok nem tudnak hozzáférni a rajta kívül található állományokhoz és erőforrásokhoz. Ennek okán, ha egy ilyen környezetben futó szolgáltatást megtámadnak, az önmagában még nem teszi lehetővé a támadó számára, hogy elérhesse az egész rendszert. A chroot(8) remekül használható olyan egyszerűbb feladatok megoldására, amelyek nem igényelnek túlságosan sok rugalmasságot vagy bonyolult és fejlett támogatást. A chroot ötletének felmerülése óta azonban számos kiskaput találtak már az általa létrehozott környezetekben, és habár ezek mindegyikét javították a FreeBSD újabb változataiban, teljesen egyértelművé vált, hogy a chroot(2) nem biztosít járható utat a szolgáltatások biztonságossá tételéhez. Erre a feladatra egy új alrendszert kellett kiépíteni.
Ez az egyik oka annak, amiért az jaileket kifejlesztették.
A jailek által képviselt elzárás ötlete több szempontból is a hagyományos chroot(2) környezet elvén alapszik. Egy hagyományos chroot(2) környezetben futó programok korlátozása csupán abban merül ki, hogy az állományrendszer melyik részét láthatják. A rendszer többi erőforrása (mint mondjuk a felhasználók, futó programok vagy a hálózati alrendszer) azonban továbbra is megosztva marad a chroot környezetben és a befogadó rendszerben futó programok között. A jailek által alkalmazott megoldás kibővíti ezt a modellt, és nem csak az állományrendszerre vonatkozó hozzáférést virtualizálja, hanem több más dolog mellett kiterjeszti ezt a felhasználókra és a FreeBSD hálózati alrendszerére is. Az elzárt környezetek beállításaihoz elérhető finomhangolási lehetőségekről bővebben a 15.5 Szakaszban esik szó.
A jaileket az alább négy elem írja le:
A könyvtárszerkezet egy részfája — attól a résztől indulva, ahonnan a jail kezdődik. A jailen belül futó programok nem léphetnek ki ebből a részfából. Az eredeti chroot(2) kialakításában merengő biztonsági hibák lehetőségei nem veszélyeztetik a többi FreeBSD jailt.
A rendszer neve — a név, amelyet a jailen belül használunk. Mivel a jaileket elsősorban hálózati szolgáltatások kordában tartására használjuk, a jailekhez tartozó beszédes rendszernevek sokat tudnak segíteni a rendszergazdák munkájában.
Egy IP-cím — a jailhez tartozik és nem változtatható meg a működése során. Egy jail IP-címe általában egy már létező hálózati csatoló másik címe, de ez nem szükségszerűen igaz minden esetben.
Egy parancs — annak a programnak az elérési útja, amelyet elzártan kívánunk futtatni. Az elzárt környezet gyökerétől mérve relatívan adjuk meg, és az adott környezet típusától függően eltérő lehet.
Ezektől eltekintve a jailek rendelkezhetnek saját felhasználókkal és lehetnek saját root felhasználóik is. Természetesen a root hatásköre csak az elzárt környezetre korlátozódik, és a befogadó rendszer szemszögéből az elzárt root nem mindenható. Ráadásul az elzárt root felhasználó nem hajthat végre semmilyen kritikus műveletet a saját jail(8) környezetén kívül. A root további képességeiről és korlátozásairól lentiekben bővebben is említést teszünk a 15.5 Szakaszban.
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
kérjük erre a címre írjon: <gabor@FreeBSD.org>.