diff --git a/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml index cca528a493..c0985969b3 100644 --- a/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml +++ b/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml @@ -1,1320 +1,1321 @@ Matteo Riondato Írta: A jail alrendszer jail Áttekintés Ez a fejezet a &os;-ben található jail alrendszert, valamint annak használatát mutatja be közelebbrõl. Az jail, melyet gyakran csak úgy emlegetnek, mint a chroot környezetek továbbfejlesztését, a rendszergazdák számára ajánlott, nagyon sokoldalú eszköz, de a haladó felhasználók is hasznosnak találhatják. A fejezet elolvasása során megismerjük: mi is az a jail, milyen célra használható a &os;-ben; hogyan hozzunk létre, indítsunk el és állítsunk le jaileket; a létrehozott jailek karbantartásainak alapjait, a jailek belülrõl és kívülrõl egyaránt. A jail alrendszerrõl még több hasznos információt a következõ helyekrõl tudhatunk meg: A &man.jail.8; man oldal. Ez tartalmazza a jail segédprogram teljes referenciáját — ez az a karbantartásra használható eszköz, amellyel el tudjuk indítani, le tudjuk állítani és vezérelni tudjuk a jaileket a &os;-ben. A levelezési listák és azok archívumai. A &a.questions; archívuma és a &a.mailman.lists;en található többi levelezési lista rengeteg olvasnivalót tartogat a jailekkel kapcsolatban. Mindig érdemes keresni ezekben az archívumokban, vagy beküldeni a kérdésünket a &a.questions.name; levelezési listára. A jail alrendszerhez kapcsolódó fogalmak A fejezet további részében a következõ fogalmakat fogjuk használni, hogy a &os; jailekhez tartozó egyes részeit és azok belsõ mûködését, valamint kapcsolatukat a rendszer többi részével még inkább érthetõvé tegyük: - &man.chroot.2; (parancs) + &man.chroot.8; (parancs) - A &os; azon rendszerhívása, amely egy - program és annak leszármazottjai - futtatása során megváltoztatja a - gyökérkönyvtárat. (change - root) + Egy segédprogram, amely a &os; &man.chroot.2; + rendszerhívásán keresztül egy + program és annak leszármazottjainak + futtatásához megváltoztatja a rendszer + gyökérkönyvtárát (change + root). &man.chroot.2; (környezet) A chroot módban futó programok környezete. Olyan erõforrásokat foglal magában, mint mondjuk az állományrendszer látható része, az elérhetõ felhasználói és csoport azonosítók, hálózati csatolók és egyéb folyamatok közti kommunikációs mechanizmusok stb. &man.jail.8; (parancs) Az a rendszerkarbantartó segédprogram, amely lehetõvé teszi program elindítását elzárt környezetben. befogadó (rendszer, program, felhasználó stb.) Az elzárt környezetet irányító rendszer. A befogadó rendszer hozzá tud férni az összes elérhetõ hardveres erõforráshoz, képes az elzárt környezeten kívül és belül futó programokat vezérelni. Az egyik legfontosabb különbség a befogadó és az elzárt rendszer között, hogy azok a korlátozások, amelyek az elzárt környezetben rendszeradminisztrátori jogokkal futó programokra vonatkoznak, nem feltétlenül érvényesek a befogadó rendszerben futóakra. befogadott (rendszer, program, felhasználó stb.) Olyan program, felhasználó vagy más egyéb egyed, amely csak egy jailen keresztül, korlátozottan tud hozzáférni az erõforrásokhoz. Bevezetés 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 &os; rendszerek biztonságosságának növelését hivatott egyik ilyen eszköz a jails. Elõször a &os; 4.X verziójában bukkant fel, de jelentõs fejlõdésen ment keresztül a &os; 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. Mi is az a jail? A BSD-szerû operációs rendszerekben már a 4.2BSD óta megtalálható volt a &man.chroot.2;. A &man.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 &man.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 &os; újabb változataiban, teljesen egyértelmûvé vált, hogy a &man.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 &man.chroot.2; környezet elvén alapszik. Egy hagyományos &man.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 &os; 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 ban 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 &man.chroot.2; kialakításában merengõ biztonsági hibák lehetõségei nem veszélyeztetik a többi &os; 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 &man.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 ban. A jailek létrehozása és vezérlése Egyes rendszergazdák a jaileket a következõ két típusba sorolják: teljes jail, mely egy valódi &os; rendszerre emlékeztet, és a szolgáltatás jail, mely egyetlen, feltehetõen kiemelt jogokkal futó alkalmazás vagy szolgáltatás számára van elõkészítve. Ez a besorolás csupán fogalmi szintû, a jail felépítésének módját nem befolyásolja. A &man.jail.8; man oldal részletesen ismerteti a jailek létrehozását: &prompt.root; setenv D /itt/lesz/a/jail &prompt.root; mkdir -p $D &prompt.root; cd /usr/src &prompt.root; make buildworld &prompt.root; make installworld DESTDIR=$D &prompt.root; cd etc/ Ez a lépés nem szükséges a &os; 6.0-ás vagy annál újabb verziójában. &prompt.root; make distribution DESTDIR=$D &prompt.root; mount -t devfs devfs $D/dev Érdemes elõször a jail helyét megválasztani. Itt fog fizikailag helyet foglalni a befogadó rendszer állományrendszerén belül a jail. Jó választás lehet erre a /usr/jail/jailnév, ahol a jailnév a jailt azonosító rendszernév. A /usr/ állományrendszeren általában elegendõ hely jut a jail állományrendszerének, ami egy teljes jail esetén lényegében a &os; alaprendszer alapértelmezett telepítésében megtalálható összes állomány másolatát tartalmazza. Ha korábban már a make world vagy a make buildworld parancs segítségével újrafordítottuk az alaprendszert, akkor ezt a lépést ki is hagyhatjuk és telepítsük az új alaprendszert közvetlenül az új jailbe. Ez a parancs fogja felmásolni a jail fizikai helyének választott könyvtár-részfába a mûködéshez szükséges programokat, függvénykönyvtárakat, man oldalakat és így tovább. A make paramétereként megadott distribution cél gondoskodik az összes szükséges konfigurációs állomány felmásolásáról. Magyarán szólva, átmásolja az összes telepíhetõ állományt a /usr/src/etc/ könyvtárból a jail /etc alkönyvtárába, vagyis a $D/etc/ könyvtárba. A jaileken belül a &man.devfs.8; csatlakoztatása nem kötelezõ. Másrészt azonban majdnem mindegyik alkalmazás, a feladatától függõen, legalább egy eszközhöz hozzá akar férni. Nagyon fontos, hogy a kezünkbe vegyük a eszközök hozzáférésének irányítását a jaileken belül, mivel a helytelen beállítások révén a támadók csúnya dolgokat tudnak majd mûvelni. A &man.devfs.8; mûködését a &man.devfs.8; és &man.devfs.conf.5; man oldalakon is ismertetett szabályrendszerek irányítják. Ahogy a jailt telepítettük, a &man.jail.8; segédprogrammal tudjuk elindítani. A &man.jail.8; négy kötelezõ paramétert vár, melyekre a ban ki is térünk. Más paramétereket is megadhatunk, például azt, hogy az elzárt program egy adott felhasználó jogaival fusson. A paraméter használata a jail típusától függ: egy virtuális rendszer esetében a /etc/rc jó választásnak bizonyulhat, mivel ennek segítségével egy valódi &os; rendszerindítási folyamatát játszhatjuk le. Amennyiben elzárt szolgáltatásról van szól, az adott szolgáltatástól vagy alkalmazástól függ. A jaileket gyakran már a rendszerindítás során elindítják, amit a &os; rc mechanizmusa nagyban meg is könnyít. A rendszer indítása során aktiválandó jailek listáját vegyük hozzá a &man.rc.conf.5; állományhoz: jail_enable="YES" # Ide NO-t írjunk, ha ki akarjuk kapcsolni jail_list="www" # Szóközzel elválasztva soroljuk fel a jaileket A jail_list-ben szereplõ összes jailt meg kell adnunk az ezeket leíró &man.rc.conf.5;-beli beállításokat: jail_www_rootdir="/usr/jail/www" # a jail gyökérkönyvtára jail_www_hostname="www.example.org" # a jail neve jail_www_ip="192.168.0.10" # a jail IP-címe jail_www_devfs_enable="YES" # legyen-e devfs a jailen belül jail_www_devfs_ruleset="www_ruleset" # az alkalmazott devfs szabályrendszer Az &man.rc.conf.5; állományban szereplõ jailek esetén a /etc/rc szkript fut le, tehát feltételezi, hogy az így megadott jail egy teljes virtuális rendszer. A szolgáltatások jailbe foglalásához meg kell változtatnunk a jail alapértelmezett parancsát is. Ezt a jail_jailnév_exec_start opció megfelelõ beállításával tudjuk megtenni. Az összes itt elérhetõ opciót a &man.rc.conf.5; man oldalon találhatjuk meg. Ha léteznek a megfelelõ bejegyzések az rc.conf állományban, akkor az /etc/rc.d/jail szkript is használható arra, hogy a jaileket kézzel indítsuk el vagy állítsuk le: &prompt.root; /etc/rc.d/jail start www &prompt.root; /etc/rc.d/jail stop www A &man.jail.8; leállítására jelen pillanatban még nem érhetõ el szabályos módszer. Ez azért van, mert a szabályos rendszerleállítást elvégzõ parancsok nem használhatóak a jailen belül. Emiatt a jaileket a legtisztábban úgy tudjuk leállítani, ha kiadjuk az alábbi parancsot magában a jailben vagy pedig a &man.jexec.8; segédprogrammal a jailen kívülrõl: &prompt.root; sh /etc/rc.shutdown Errõl a témáról többet a &man.jail.8; man oldalon olvashatunk. Finomhangolás és karbantartás Számos opció állítható be a jaileknél, és sokféle módon vegyíthetjük a befogadó &os; rendszerünket a jailekkel, ami által magasabb szintû alkalmazásokat hozhatunk létre. Ebben a részben bemutatunk: Néhány olyan beállítást, amellyel finomhangolhatjuk a telepített jailek által megvalósított biztonsági megszorítások viselkedését. A jailek kezelésére alkalmas néhány olyan magasabb szintû alkalmazást, amelyek elérhetõek a &os; Portgyûjteményén keresztül, és általános jail alapú megoldások kialakításához használhatóak. A &os;-ben található finomhangoló eszközök A jailek beállításainak finomhangolását túlnyomórészt &man.sysctl.8; változókkal végezhetjük el. A sysctl-en belül egy speciális részfában találhatunk erre alkalmas beállításokat: ez a a &os; rendszermag opciói között megtalálható security.jail.*. Itt közüljük a jailekre vonatkozó fontosabb sysctl változók listáját, az alapértelmezett értékeikkel együtt. A nevek minden bizonnyal sokat elárulnak, de ha többet szeretnénk tudni róluk, lapozzuk fel a &man.jail.8; és &man.sysctl.8; man oldalakat. security.jail.set_hostname_allowed: 1 security.jail.socket_unixiproute_only: 1 security.jail.sysvipc_allowed: 0 security.jail.enforce_statfs: 2 security.jail.allow_raw_sockets: 0 security.jail.chflags_allowed: 0 security.jail.jailed: 0 Ezekkel a változókkal a befogadó rendszer rendszergazdája tud hozzátenni vagy elvenni a root felhasználó alapértelmezett határaihoz. Vegyük azonban észre, hogy egyes korlátozások azonban semmiképpen sem szüntethetõek meg. A root nem csatlakoztathat és választhat le állományrendszereket a &man.jail.8; környezetben. Az elzárt root nem tölthet be és törölhet &man.devfs.8; szabályrendszereket, tûzfal szabályokat sem, ill. nem végezhet semmilyen olyan bármilyen más karbantartási feladatot, amely a rendszermag adataiban módosítást vonna maga után, például nem állíthatja a rendszermag securelevel (biztonsági szintjének) értékét. A &os; alaprendszere tartalmazza azokat a segédeszközöket, amelyekkel a rendszerben aktív jailek információt tudjuk megjeleníteni, vagy csatlakozni tudunk hozzájuk. A &man.jls.8; és &man.jexec.8; parancsok részei az alap &os; rendszernek, segítségükkel elvégezhetõek az alábbi egyszerû feladatokat: Ki tudjuk íratni az aktív jailek és hozzájuk tartozó azonosítókat (JID-eket), IP-címeket, neveket és útvonalakat. A befogadó rendszerbõl hozzá tudunk csatlakozni egy futó jailhez, és parancsokat tudunk futtatni a jailen belül vagy karbantartási feladatokat tudunk elvégezni magán a jailen belül. Ez különösen hasznosnak bizonyulhat, amikor a root felhasználó szabályosan le akarja állítani a jailt. A &man.jexec.8; segédprogrammal el tudunk indítani egy parancsértelmezõt a jailen belül, amibõl aztán irányíthatjuk. Példa: &prompt.root; jexec 1 tcsh Magasszintû karbantartó eszközök a &os; Portgyûjteményében A sok külsõ karbantartó eszköz közül az egyik legteljesebb és leghasznosabb a sysutils/jailutils. Sok kisebb alkalmazást tartalmaz, melyek kibõvítik a &man.jail.8; irányíthatóságát. Bõvebb információkért kérjük, látogassa meg a hozzátartozó honlapot. A jailek alkalmazása Daniel Gerzo Írta: Szolgáltatások jailbe foglalása Ez a rész eredetileg &a.simon; oldalon található írásán, valamint Ken Tom (locals@gmail.com) átdolgozott cikkén alapul. Itt megismerhetjük, hogyan állítsunk be a &os; rendszerünkben egy biztonsági réteget a &man.jail.8; felhasználásával. Továbbá feltételezzük, hogy ez a rendszer legalább RELENG_6_0 verziójú és a fejezetben korábban tárgyaltakat az olvasó teljes mértékben megértette. A kialakítás A jailek egyik legnagyobb gondja a frissítés folyamatának lebonyolítása. Azért jelent ez egyre inkább gondot, mert minden egyes jailt újra fel kell építenünk a frissítése során. Ez többnyire nem okoz gondot egyetlen jail használata során, mivel maga a frissítési folyamat meglehetõsen egyszerû, azonban igen idõigényessé és fárasztóvá tud válni több jail esetében. Ez a példa a &os; képességeinek haladó szintû ismeretét követeli meg. Amennyiben az itt bemutatott lépesek túlságosan is bonyolultnak tûnnének, érdemes olyan egyszerûbb rendszerek után nézni, mint mondjuk a sysutils/ezjail, amely egy egyszerûbb módszert kínál fel a &os;-ben használt jailek karbantartására, és nem is annyira bonyolult, mint ez a példa. A bemutatandó példa célja, hogy feloldja az ilyen jellegû problémákat, és ezért igyekszik a jailek között mindent megosztani, ami csak lehetséges. Mindezt biztonságosan éri el — írásvédett &man.mount.nullfs.8; állományrendszer használatával, aminek köszönhetõen a frissítés maga egyszerûbbé, az egyes szolgáltatások különzárása pedig vonzóbbá válik. Ráadásul egyúttal egy nagyon egyszerû módszert mutat az új jailek hozzáadására és a régi törlésére ugyanúgy, mint a frissítésükre. Például ilyen szolgáltatásokat kívánunk szabályozni: egy HTTP szervert, egy DNS szervert, egy SMTP szervert és így tovább. Az itt szereplõ beállítás céljai: Készítsünk egy egyszerûen és könnyen átlátható jailkezelési rendszert. Ebbõl tehát következik, hogy ne kelljen lefuttatni a teljes rendszer telepítését minden egyes jailre. Könnyítsük meg az új jailek hozzáadását és a régiek eltávolítását. Könnyítsük meg a már létezõ jailek frissítését és cseréjét. Tegyük lehetõvé saját &os; ágak futtatását. Legyünk különösen körültekintõek a biztonság tekintetében, és igyekezzünk minél jobban csökkenteni veszély kockázatát. Takarékoskodjunk a tárhellyel és az állományrendszerrel, amennyire csak lehet. Ahogy azt már korábban is említettük, ez a kialakítás nagyban építkezik egyetlen fõ sablonra, amely írásvédetten kerül csatlakoztatásra (nullfsen keresztül) az egyes jailekben, valamint jailenként egy-egy írható-olvasható eszközre. Ez az eszköz lehet egy külön fizikai lemez, egy partíció vagy egy vnode alapú &man.md.4; eszköz. Ebben a példában írható-olvasható nullfs csatlakozásokat használunk. Az állományrendszer kiosztása a most következõ listában szerepel: Minden jailt a /home/j könyvtárban csatlakoztatunk. A /home/j/mroot lesz az összes jail sablonja és mindegyikük számára írásvédett. Minden jailnek létrehozunk egy üres alkönyvtárat a /home/j könyvtárban. Minden jailnek lesz egy /s alkönyvtára, amelyet a rendszer írható-olvasható részére irányítunk. Minden jailnek lesz egy saját írható-olvasható része, amely a /home/j/skel könyvtáron alapszik. Mindegyik elzárt terület (a jailek írható-olvasható része) a /home/js könyvtárban jön létre. Ez a kiosztás feltételezi, hogy a jaileket a /home partíción hozzuk létre. Ez természetesen bármi másra megváltoztatható, de akkor figyelnünk kell erre minden egyes parancs kiadása elõtt. A sablon létrehozása Ez a rész leírja a fõ sablon létrehozásához szükséges lépéseket. Ez a jailek számára írásvédett lesz. Érdemes mindig frissíteni a &os; rendszerünket a legújabb -RELEASE ágra. Ehhez olvassuk el az ide tartozó fejezetet a kézikönyvbõl. Abban az esetben, ha a frissítés nem lenne megoldható, egy make buildworld parancsot mindenképpen le kell tudnunk futtatni. Ezenfelül a sysutils/cpdup csomagra is szükségünk van. Használni fogjuk a &man.portsnap.8; segédprogramot is a &os; Portgyûjtemény letöltéséhez. Akik nem ismernék, a kézikönyv errõl szóló fejezetében olvashatnak róla. Elõször is, készítsük el az írásvédett állományrendszer könyvtárszerkezetét, amely majd tartalmazni fogja a jailek által használt &os;-s programokat. Ezután lépjünk be a &os; forrásfájának könyvtárába és telepítsük fel az írásvédett állományrendszert a sablonba: &prompt.root; mkdir /home/j /home/j/mroot &prompt.root; cd /usr/src &prompt.root; make installworld DESTDIR=/home/j/mroot Ezt követõen készítsük elõ a jailek számára a &os; Portgyûjteményt és &os; forrásfát, melyek kellenek a mergemaster használatához: &prompt.root; cd /home/j/mroot &prompt.root; mkdir usr/ports &prompt.root; portsnap -p /home/j/mroot/usr/ports fetch extract &prompt.root; cpdup /usr/src /home/j/mroot/usr/src Hozzuk létre a rendszer írásvédett részének vázát: &prompt.root; mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles &prompt.root; mv etc /home/j/skel &prompt.root; mv usr/local /home/j/skel/usr-local &prompt.root; mv tmp /home/j/skel &prompt.root; mv var /home/j/skel &prompt.root; mv root /home/j/skel Használjuk a mergemastert a hiányzó konfigurációs állományok telepítésére. Szabaduljunk meg a mergemaster által készített felesleges könyvtáraktól: &prompt.root; mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i &prompt.root; cd /home/j/skel &prompt.root; rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev Most pedig szimbolikusan linkeljük az írható-olvasható állományrendszert az írásvédett állományrendszerre. Ellenõrizzük, hogy a szimbolikus linkek a megfelelõ s/ könyvtárakban jöttek létre. Valós vagy rossz helyen létrehozott könyvtárak használata esetén a telepítés nem fog sikerülni. &prompt.root; cd /home/j/mroot &prompt.root; mkdir s &prompt.root; ln -s s/etc etc &prompt.root; ln -s s/home home &prompt.root; ln -s s/root root &prompt.root; ln -s ../s/usr-local usr/local &prompt.root; ln -s ../s/usr-X11R6 usr/X11R6 &prompt.root; ln -s ../../s/distfiles usr/ports/distfiles &prompt.root; ln -s s/tmp tmp &prompt.root; ln -s s/var var Utolsó lépésként hozzunk létre egy /home/j/skel/etc/make.conf állományt az alábbi tartalommal: WRKDIRPREFIX?= /s/portbuild A WRKDIRPREFIX beállításával lehetõvé válik a &os; portok jaileken belüli fordítása. Ne felejtsük el, hogy a portokat tartalmazó könyvtár az írásvédett rendszer része! Az átállított WRKDIRPREFIX azonban megengedi, hogy a fordítások az egyes jailek írható-olvasható részeiben történjenek. A jailek létrehozása Most, miután teljesen elkészült a &os; jailek sablonja, be is tudjuk állítani és hozzá is tudjuk venni ezeket az /etc/rc.conf állományhoz. Ebben a példában 3 jail létrehozását láthatjuk: NS, MAIL és WWW. Írjuk bele a következõ sorokat az /etc/fstab állományba, aminek köszönhetõen az egyes jailek számára elérhetõvé válik az írásvédett sablon és a hozzájuk tartozó írható-olvasható területek: /home/j/mroot /home/j/ns nullfs ro 0 0 /home/j/mroot /home/j/mail nullfs ro 0 0 /home/j/mroot /home/j/www nullfs ro 0 0 /home/js/ns /home/j/ns/s nullfs rw 0 0 /home/js/mail /home/j/mail/s nullfs rw 0 0 /home/js/www /home/j/www/s nullfs rw 0 0 Az elsõ helyen nullával jelölt partíciókat a &man.fsck.8; nem fogja ellenõrizni a rendszer indulása során, a második helyen nullával jelölt partíciókat pedig nem fogja menteni a &man.dump.8;. Mi egyáltalán nem akarjuk, hogy az fsck ellenõrizze vagy a dump lementse a jailjeinkhez tartozó írásvédett nullfs-partícióinkat. Ezért szerepel végig 0 0 a fentebb szereplõ fstab-bejegyzések utolsó két oszlopában. Állítsuk be a jaileket az /etc/rc.conf-ban: jail_enable="YES" jail_set_hostname_allow="NO" jail_list="ns mail www" jail_ns_hostname="ns.example.org" jail_ns_ip="192.168.3.17" jail_ns_rootdir="/usr/home/j/ns" jail_ns_devfs_enable="YES" jail_mail_hostname="mail.example.org" jail_mail_ip="192.168.3.18" jail_mail_rootdir="/usr/home/j/mail" jail_mail_devfs_enable="YES" jail_www_hostname="www.example.org" jail_www_ip="62.123.43.14" jail_www_rootdir="/usr/home/j/www" jail_www_devfs_enable="YES" Azért állítottuk a jail_név_rootdir változó értékét a /usr/home könyvtárra a /home könyvtár helyett, mert a &os; alaptelepítésében a /home könyvtár fizikailag a /usr/home könyvtárral egyezik meg. A jail_név_rootdir változó értékeként megadott könyvtár nem tartalmazhat szimbolikus linket, máskülönben a jailek nem lesznek hajlandóak létrejönni. Ennek megállapításában a &man.realpath.1; segédprogram lehet segítségünkre. A korlátozás részleteirõl a &os;-SA-07:01.jail biztonsági figyelmeztetésben olvashatunk. Hozzuk létre az egyes jailek írásvédett állományrendszereihez szükséges csatlakozási pontokat: &prompt.root; mkdir /home/j/ns /home/j/mail /home/j/www Telepítsük az írható-olvasható sablont az egyes jailekbe. Figyeljük meg a sysutils/cpdup használatát, amellyel az egyes könyvtárak pontos másolatait hozhatjuk létre: &prompt.root; mkdir /home/js &prompt.root; cpdup /home/j/skel /home/js/ns &prompt.root; cpdup /home/j/skel /home/js/mail &prompt.root; cpdup /home/j/skel /home/js/www Ebben a fázisban a jailek már elkészültek és készen állnak a futásra. Elõször csatlakoztassuk az egyes jailekhez szükséges állományrendszereket, majd indítsuk el ezeket a /etc/rc.d/jail szkripttel: &prompt.root; mount -a &prompt.root; /etc/rc.d/jail start A jailek most már futnak. Az elindulásuk ellenõrzéséhez használjuk a &man.jls.8; parancsot. Valami ilyesmit láthatunk a kiadása után: &prompt.root; jls JID IP Address Hostname Path 3 192.168.3.17 ns.example.org /home/j/ns 2 192.168.3.18 mail.example.org /home/j/mail 1 62.123.43.14 www.example.org /home/j/www Itt már be tudunk jelentkezni az egyes jailekbe, új felhasználókat tudunk készíteni vagy démonokat tudunk beállítani. A JID oszlop mutatja az egyes jailek azonosítási számát. A 3-as JID számú jailben az alábbi parancs használatával karbantartási feladatokat elvégezni: &prompt.root; jexec 3 tcsh Frissítés Idõrõl idõre adódhat, hogy frissítenünk kell a rendszert a &os; egy újabb változatára, vagy egy biztonsági hiba javítása miatt, vagy pedig a már meglevõ jailek számára hasznos újítások bevezetése miatt. Ez a kialakítás megkönnyíti a korábban létrehozott jailjeink frissítését. Továbbá igyekszik minimalizálni a kiesésüket is, mivel a jaileket csak a legutolsó pillanatban fogjuk leállítani. Sõt, még az is lehetõvé válik, hogy visszaállítsuk a korábbi verziót, ha véletlenül valami rosszul sülne el menetközben. Elsõ lépéseként frissítsük magát a befogadó rendszert a megszokott módon. Ezután hozzunk létre egy új írásvédett sablont a /home/j/mroot2 könyvtárban. &prompt.root; mkdir /home/j/mroot2 &prompt.root; cd /usr/src &prompt.root; make installworld DESTDIR=/home/j/mroot2 &prompt.root; cd /home/j/mroot2 &prompt.root; cpdup /usr/src usr/src &prompt.root; mkdir s A installworld lefuttatása létrehoz néhány felesleges könyvtárat, melyeket takarítsunk is el: &prompt.root; chflags -R 0 var &prompt.root; rm -R etc var root usr/local tmp Hozzuk újra létre az írható-olvasható szimbolikus linkjeinket a fõ állományrendszerre: &prompt.root; ln -s s/etc etc &prompt.root; ln -s s/root root &prompt.root; ln -s s/home home &prompt.root; ln -s ../s/usr-local usr/local &prompt.root; ln -s ../s/usr-X11R6 usr/X11R6 &prompt.root; ln -s s/tmp tmp &prompt.root; ln -s s/var var Most érkezett el az idõ, hogy leállítsuk a jaileket: &prompt.root; /etc/rc.d/jail stop Válasszuk le az eredeti állományrendszereket: &prompt.root; umount /home/j/ns/s &prompt.root; umount /home/j/ns &prompt.root; umount /home/j/mail/s &prompt.root; umount /home/j/mail &prompt.root; umount /home/j/www/s &prompt.root; umount /home/j/www Az írható-olvasható állományrendszerek hozzá vannak kapcsolva az írásvédett állományrendszerhez (/s), ezért azokat elõször le kell választani. Mozgassuk el az útból a régi írásvédett állományrendszerünket és váltsuk fel az újjal. Így biztonsági mentésként és a régi írásvédett rendszer archívumaként továbbra is rendelkezésre áll, ha valami baj történne. Az itt használt elnevezés az újonnan létrehozott írásvédett állományrendszer dátumából ered. Mozgassuk át az eredeti &os; Portgyûjteményt az új állományrendszerre, hogy megtakarítsunk némi tárhelyet és állományleírót: &prompt.root; cd /home/j &prompt.root; mv mroot mroot.20060601 &prompt.root; mv mroot2 mroot &prompt.root; mv mroot.20060601/usr/ports mroot/usr Most már készen áll az új írásvédett sablon, így már csak az állományrendszerek újracsatlakoztatása és a jailek újraindítása maradt: &prompt.root; mount -a &prompt.root; /etc/rc.d/jail start A &man.jls.8; használatával ellenõrizzük, hogy a jailek rendesen elindultak. Ne felejtsük el jailenként lefuttatni a mergemastert sem. A konfigurációs állományokat és az rc.d szkripteket is frissítenünk kell majd. diff --git a/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml b/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml index 8681f35e17..65327e4513 100644 --- a/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml +++ b/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml @@ -1,1391 +1,1391 @@ Murray Stokely Írta: Virtualizáció Áttekintés A virtualizációs szoftverek lehetõvé teszik, hogy ugyanazon a számítógépen egyszerre több operációs rendszert is futassunk. Ezeknek a programcsomagoknak gyakorta részük egy gazda operációs rendszer is, amely a virtualizációs szoftvert futattja és ismer bizonyos vendég operációs rendszereket. A fejezet elolvasása során megismerjük: a gazda- és a vendég operációs rendszerek közti különbségeket; hogyan telepítsünk &os;-t egy &intel;-alapú &apple; &macintosh; számítógépre; hogyan telepítsünk a &xen; használatával &os;-t &linux;-ra; hogyan telepítsünk a Virtual PC használatával &os;-t µsoft.windows;-ra; hogyan hozzuk ki a legtöbbet &os; rendszerünkbõl virtualizáció alatt. A fejezet elolvasásához ajánlott: alapvetõ &unix;-os és &os;-s ismeretek (); a &os; telepítésének ismerete (); a hálózati kapcsolatok beállításának ismerete (); külsõs alkalmazások telepítésének ismerete (). A &os; mint vendég Parallelsszel &macos;-en A Parallels Desktop a &macos; 10.4.6, vagy afeletti verzióját futattó, &intel;-alapú &apple; &mac; személyi számítógépekre fejlesztett kereskedelmi alkalmazás. A &os;-t teljes mértékben támogatja vendégként. Miután telepítettük a Parallels-t a &macos; X-re, be kell állítanunk egy virtuális gépet, majd erre felraknunk a kívánt vendég operációs rendszert. A &os; telepítése &macos; X/Parallelsre A &os; &macos; X/Parallels párosra telepítéséhez elsõ lépésként készítenünk kell egy új virtuális számítógépet. A létrehozás során válasszuk a Guest OS Type-nak (a vendég operációs rendszer típusának) a &os;-t: Ezután adjunk meg egy nagyjából elfogadható méretet a virtuális merevlemezünknek, valamint annyi memóriát, amennyire szükségünk lehet a virtuális &os;-nk használata során. Egy 4 GB-os lemez és 512 MB rendszermemória a legtöbb esetben jó választásnak bizonyulhat a &os; Parallels alatti használata során: Válasszuk ki a hálózatkezelés típusát és a hálózati csatolót. Mentsük el és fejezzük be a konfigurálást. Miután a &os;-s virtuális gépünk elkészült, telepítenünk kell rá magát az operációs rendszert is. Ezt a legegyszerûbben a hivatalosan &os; telepítõ CD-rõl, vagy a hivatalos FTP oldalról letölthetõ CD-képpel tehetjük meg. Ha lemásoltuk a megfelelõ CD-képet a &mac; helyi állományrendszerére, vagy behelyeztük a telepítõ CD-t a CD-meghajtóba, kattintsunk a &os;-s Parallels ablakunk jobb alsó sarkában található lemez ikonjára. Ekkor feljön egy párbeszédablak, ahol összerendelhetjük a virtuális gépünk CD-meghajtóját egy lemezen található képpel, vagy éppen a valódi CD-meghajtónkkal. Ahogy megtettük az imént említett összerendelést, indítsuk is újra a &os;-s virtuális gépünket a megszokott módon, az újraindítás ikonjára kattintva. Ekkor a rendszer megtalálja a &os; telepítõlemezt és a sysinstall segítségével megkezdi a telepítést a ben leírtak szerint. Ha szükségünk van rá, telepíthetjük az X11-et is, de egyelõre még ne próbáljuk beállítani. A telepítés befejezését követõen indítsuk újra a frissen telepített &os;-s virtuális gépünket. A &os; beállítása &macos; X/Parallelsen Miután telepítettük a &os;-t &macos; X/Parallels-re, még vár ránk néhány konfigurációs lépés a rendszer virtuálizált mûködésének optimalizálása érdekében. A rendszerbetöltõ változóinak beállítása A legfontosabb lépés a változó értékének csökkentése, amivel így a &os; processzor-kihasználtságát is csökkentjük a Parallels alatt. Ezt a következõ sor hozzadásával tehetjük meg a /boot/loader.conf állományban: kern.hz=100 Enélkül egy üresjáratban levõ &os; Parallels-vendég az &imac; egy processzorának durván 15%-át foglalja le. A változtatás életbe léptetése után azonban ez megközelítõen 5%-ra redukálható. Egy új konfigurációs állomány létrehozása a rendszermaghoz Nyugodtan eltávolíthatjuk az összes SCSI, FireWire és USB eszközmeghajtót. A Parallels által felkínált virtuális hálózati csatolót az &man.ed.4; meghajtón keresztül tudjuk elérni, ezért az &man.ed.4; és &man.miibus.4; meghajtókon kívül az összes többi elhagyható. A hálózati kapcsolat beállítása Az alapvetõ hálózati beállítás a virtuális gépünkön a DHCP aktiválása, aminek segítségével csatlakozni tudunk arra a helyi hálózatra, amelyen maga a gazda &mac; is megtalálható. Ezt az alábbi sor felvételével tudjuk megoldani az /etc/rc.conf állományba: ifconfig_ed0="DHCP". Bõvebb információkért járuljunk a fejezethez. Fukang Chen (Loader) Írta: &xen;nel &linux;-on A &xen; hipervisor egy nyílt forráskódú, paravirtualizációt nyújtó termék, amely mögött mostanra már a XenSource kereskedelmi cég áll. Itt a vendég operációs rendszereket a domU tartományként azonosítják, míg a gazda operációs rendszer a dom0. A &os; &linux; alatti virtuális futattásához elsõként telepítenünk kell a &xen;-t egy dom0-ás Linuxra. A leírásban a gazda operációs rendszer a Slackware &linux; disztribúció lesz. A &xen; 3 beállítása egy &linux; dom0-án Töltsük le a &xen; 3.0-át a XenSource-tól Töltsük le a xen-3.0.4_1-src.tgz állományt a XenSource oldaláról. Bontsuk ki a csomagot &prompt.root; cd xen-3.0.4_1-src &prompt.root; KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world &prompt.root; make install A rendszermagot így tudjuk dom0 módban újrafordítani: &prompt.root; cd xen-3.0.4_1-src/linux-2.6.16.33-xen0 &prompt.root; make menuconfig &prompt.root; make &prompt.root; make install A &xen; régebbi verzióinál elképzelhetõ, hogy így kell megadni: make ARCH=xen menuconfig. Vegyük fel a megfelelõ pontot a GRUB menüjébe Nyissuk meg a /boot/grub/menu.lst állományt és írjuk be a következõ sort: title Xen-3.0.4 root (hd0,0) kernel /boot/xen-3.0.4-1.gz dom0_mem=262144 module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro Indítsuk újra a gépet és aktiváljuk a &xen;t Elõször nyissuk meg az /etc/xen/xend-config.sxp állományt, majd adjuk hozzá a következõ sort: (network-script 'network-bridge netdev=eth0') Ezután el is indíthatjuk a &xen;t: &prompt.root; /etc/init.d/xend start &prompt.root; /etc/init.d/xendomains start Láthatjuk, hogy a dom0 tartomány most már aktív: &prompt.root; xm list Name ID Mem VCPUs State Time(s) Domain-0 0 256 1 r----- 54452.9 A &os; 7-CURRENT mint domU Töltsük le a &os; &xen; 3.0-ás domU rendszermagját és a hozzátartozó lemezképet a http://www.fsmware.com/ címrõl: kernel-current mdroot-7.0.bz2 xmexample1.bsd Tegyük a xmexample1.bsd konfigurációs állományt a /etc/xen/ könyvtárba és írjuk át a releváns bejegyzéseket a rendszermag és a lemezkép elérési útjának megfelelõen. Valahogy így kellene kinézni az eredménynek: kernel = "/opt/kernel-current" memory = 256 name = "freebsd" vif = [ '' ] disk = [ 'file:/opt/mdroot-7.0,hda1,w' ] #on_crash = 'preserve' extra = "boot_verbose" extra += ",boot_single" extra += ",kern.hz=100" extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a" Az mdroot-7.0.bz2 állományt ki kell tömöríteni! Ezután a kernel-current állományban található __xen_guest részt át kell írni úgy, hogy hozzáadjuk a &xen; 3.0.3 számára fontos VIRT_BASE értéket: &prompt.root; objcopy kernel-current -R __xen_guest &prompt.root; perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp &prompt.root; objcopy kernel-current --add-section __xen_guest=tmp &prompt.root; objdump -j __xen_guest -s kernel-current kernel-current: file format elf32-i386 Contents of section __xen_guest: 0000 4c4f4144 45523d67 656e6572 69632c47 LOADER=generic,G 0010 55455354 5f4f533d 66726565 6273642c UEST_OS=freebsd, 0020 47554553 545f5645 523d372e 302c5845 GUEST_VER=7.0,XE 0030 4e5f5645 523d7865 6e2d332e 302c4253 N_VER=xen-3.0,BS 0040 445f5359 4d544142 2c564952 545f4241 D_SYMTAB,VIRT_BA 0050 53453d30 78433030 30303030 3000 SE=0xC0000000. Most már készen állunk a domU létrehozására és beindítására: &prompt.root; xm create /etc/xen/xmexample1.bsd -c Using config file "/etc/xen/xmexample1.bsd". Started domain freebsd WARNING: loader(8) metadata is missing! Copyright (c) 1992-2006 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF WARNING: DIAGNOSTIC option enabled, expect reduced performance. Xen reported: 1796.927 MHz processor. Timecounter "ixen" frequency 1796927000 Hz quality 0 CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf29 Stepping = 9 Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH, DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> Features2=0x4400<CNTX-ID,<b14>> real memory = 265244672 (252 MB) avail memory = 255963136 (244 MB) xc0: <Xen Console> on motherboard cpu0 on motherboard Timecounters tick every 10.000 msec [XEN] Initialising virtual ethernet driver. xn0: Ethernet address: 00:16:3e:6b:de:3a [XEN] Trying to mount root from ufs:/dev/xbd769a WARNING: / was not properly dismounted Loading configuration files. No suitable dump device was found. Entropy harvesting: interrupts ethernet point_to_point kickstart. Starting file system checks: /dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation) Setting hostname: demo.freebsd.org. lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 Additional routing options:. Mounting NFS file systems:. Starting syslogd. /etc/rc: WARNING: Dump device does not exist. Savecore not run. ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout Starting usbd. usb: Kernel module not available: No such file or directory Starting local daemons:. Updating motd. Starting sshd. Initial i386 initialization:. Additional ABI support: linux. Starting cron. Local package initialization:. Additional TCP options:. Starting background file system checks in 60 seconds. Sun Apr 1 02:11:43 UTC 2007 FreeBSD/i386 (demo.freebsd.org) (xc0) login: A domU-ban a &os; 7.0-CURRENT rendszermagnak kell futnia: &prompt.root; uname -a FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF i386 Miután errõl megbizonyosodtunk, be tudjuk állítani a hálózatot is domU-ban. A domU &os; egy xn0 nevû speciális eszközt használ erre a célra: &prompt.root; ifconfig xn0 10.10.10.200 netmask 255.0.0.0 &prompt.root; ifconfig xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500 inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255 ether 00:16:3e:6b:de:3a lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 Eközben a dom0 Slackware-en néhány &xen;-függõ hálózati csatolónak is meg kell jelennie: &prompt.root; ifconfig eth0 Link encap:Ethernet HWaddr 00:07:E9:A0:02:C2 inet addr:10.10.10.130 Bcast:0.0.0.0 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:815 errors:0 dropped:0 overruns:0 frame:0 TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:204857 (200.0 KiB) TX bytes:129915 (126.8 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:99 errors:0 dropped:0 overruns:0 frame:0 TX packets:99 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:9744 (9.5 KiB) TX bytes:9744 (9.5 KiB) peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0 TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2432115831 (2.2 GiB) TX bytes:86528526 (82.5 MiB) Base address:0xc000 Memory:ef020000-ef040000 vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1400 errors:0 dropped:0 overruns:0 frame:0 TX packets:815 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:129915 (126.8 KiB) TX bytes:204857 (200.0 KiB) vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:157 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:140 (140.0 b) TX bytes:158 (158.0 b) xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:112 (112.0 b) TX bytes:0 (0.0 b) &prompt.root; brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no vif0.1 peth0 vif1.0 Virtual PC-vel &windows;-on A &windows;-ra fejlesztett Virtual PC a µsoft; egyik szabadon letölthetõ szoftverterméke. A rendszerkövetelményeit bõvebben lásd a linken. Miután telepítettük a µsoft.windows;-ra a Virtual PC alkalmazást, be kell állítanunk egy virtuális gépet, majd telepítenünk kell rá a kívánt vendég operációs rendszert. A &os; telepítése Virtual PC/µsoft.windows;-ra Amikor a &os;-t a µsoft.windows; és Virtual PC párosra akarjuk telepíteni, akkor kezdjünk egy egy új virtuális gép létrehozásával. Ehhez válasszuk ki a menübõl a Create a virtual machine (Virtuális gép létrehozása) pontot. Majd válasszuk az Operating system (Operációs rendszer) beállításánál az Other (Egyéb) opciót. Ezután válasszuk ki a szándékainknak megfelelõen a telepítendõ &os; példányhoz mért memória és lemezterület mennyiségét. Ahhoz, hogy a &os; fusson Virtual PC alatt, 4 GB-nyi lemezterület és 512 MB RAM beállítása a legtöbb esetben kiválóan megfelelõ. Mentsük el és fejezzük be a konfigurációt. Válasszuk ki a &os;-s virtuális gépünket, majd kattintsunk a Settings (Beállítások) menüre és állítsuk be hálózati csatoló és hálózatkezelés típusát. A &os;-nek otthont adó virtuális gépünk létrehozása után telepítenünk is kell rá a rendszert. Ez legegyszerûbben a hivatalos &os; telepítõ CD-vel vagy a hivatalos FTP oldalról letölthetõ CD-képpel tehetjük meg. Amikor letöltöttük a megfelelõ CD-képet a helyi &windows;-os állományrendszerünkre vagy behelyeztük a telepítéshez használható CD-t a CD-meghajtónkba, a &os;-s virtuális gépünk elindításához kattintsunk rá duplán. Ezt követõen a Virtual PC ablakában kattintsunk a CD menüre és válasszuk ki belõle a Capture ISO Image... (Lemezkép használata...) pontot. Ennek hatására megjelenik egy ablak, amiben a virtuális gépünk CD-meghajtóihoz tudunk csatlakoztatni lemezképeket vagy akár létezõ CD-meghajtókat. Miután sikeresen beállítottuk a telepítõ CD forrását, indítsuk újra a virtuális gépet az Action (Mûvelet) menün belül a Reset (Újraindítás) pont kiválasztásával. Így a Virtual PC újraindítja a virtuális rendszert egy olyan speciális BIOS használatával, amely a normális BIOS-hoz hasonlóan elõször megkeresi az elérhetõ CD-meghajtókat. Ebben az esetben a &os; telepítõeszközét fogja megtalálni és megkezdi a ben ismertetett szokásos, sysinstall programra alapuló telepítési eljárást. Ennek során az X11-et is feltelepíthetjük, habár egyelõre még ne állítsuk be. Ne felejtsük el kivenni a meghajtóból a telepítéshez használt CD-t vagy elengedni a megfelelõ lemezképet, amikor befejezõdõtt a telepítés. Végezetül indítsuk ismét újra a frissen telepített &os;-s virtuális gépünket. A &os; beállítása a µsoft.windows;/Virtual PC-n Miután a &os;-t minden gond nélkül telepítettük a µsoft.windows;-on futó Virtual PC-re, még további beállítási lépéseket is meg kell tennünk a rendszer virtualizált mûködésének finomhangolásához. A rendszertöltõ változóinak beállítása A legfontosabb teendõnk csökkenteni a konfigurációs beállítás értéket, aminek köszönhetõen vissza tudjuk fogni a Virtual PC alatt futó &os; processzorhasználatát. Ezt úgy tudjuk megtenni, ha a /boot/loader.conf állományba felvesszük a következõ sort: kern.hz=100 Enélkül a Virtual PC alatt üresjáratban futó &os; vendég operációs rendszer egy egyprocesszoros számítógép idejének durván 40%-át foglalja le. A változtatás után azonban ez az érték pusztán közel 3%-ra csökken le. Új konfigurációs állomány létrehozása a rendszermaghoz Nyugodtan eltávolíthatjuk a SCSI, FireWire és USB eszközmeghajtókat. A Virtual PC által felajánlott virtuális hálózati csatolót a &man.de.4; meghajtón keresztül tudjuk használni, ezért a &man.de.4; és &man.miibus.4; eszközön kívül az összes többi hálózati eszköz támogatása kiszedhetõ a rendszermagból. A hálózati kapcsolat beállítása A legalapvetõbb hálózati beállítás csupán annyiból áll, hogy DHCP-n keresztül csatlakoztatjuk a virtuális gépünket ugyanahhoz a helyi hálózathoz, amiben a gazda µsoft.windows;-os gépünk is megtalálható. Ezt úgy tudjuk elérni, ha a /etc/rc.conf állományba megadjuk a ifconfig_de0="DHCP" sort. A komolyabb hálózati beállításokat a ben találhatjuk. - VMware-rel MacOS-en + VMWare-rel MacOS-en A &mac;-ek számára fejlesztett VMWare Fusion egy olyan kereskedelmi termék, amit az &intel; alapú &apple; &mac; gépekre tudunk telepíteni a &macos; 10.4.9 és késõbbi változatain. A &os; itt egy teljesen támogatott vendég operációs rendszer. Miután a VMWare Fusion felkerült a &macos; X rendszerünkre, be kell állítanunk a virtuális gépet és telepítenünk rá a vendég operációs rendszert. A &os; telepítése a &macos; X/VMWare-re Elõször indítsuk el a VMWare Fusion-t, aminek eredményeképpen betöltõdik a Virtual Machine Library. Egy új virtuális gépre létrehozásához kattintsunk a "New" gombra: Ekkor bejön az új gép összeállítását segítõ New Virtual Machine Assistant, ahol a továbblépéshez kattintsunk a Continue gombra: Az operációs rendszerek (Operating System) közül válasszuk az egyéb (Other) kategóriát, majd a Version fülön a FreeBSD vagy a FreeBSD 64-bit változatot attól függõen, hogy 32 bites vagy 64 bites támogatásra van szükségünk: Adjuk meg a virtuális gép képének nevét és a könyvtárat, ahova el akarjuk menteni: Válasszuk meg a virtuális géphez tartozó virtuális merevlemez méretét is: Mondjuk meg, hogy milyen módon szeretnénk telepíteni a virtuális gépre, ISO formátumú lemezképrõl vagy CD-rõl: Ahogy a Finish feliratú gombra kattintunk, a virtuális gép máris elindul: Telepítsük fel a &os;-t a megszokott módon vagy a utasításai mentén: Miután befejezõdött a telepítés, módosítsuk a virtuális gép beállításait, például a memória mennyiségét: A virtuális gép hardveres beállításai a futása alatt nem változtathatóak meg. A virtuális gép által használható processzorok számát: A CD-meghajtó állapotát. Általában lehetõségünk van a virtuális gépet leválasztani a CD-meghajtóról vagy ISO lemezképrõl, ha már nem használjuk. A hálózati csatlakozás a virtuális géppel kapcsolatban utolsóként beállítandó tényezõ. Ha a befogadó gépen kívül még más gépeket is el akarunk érni a virtuális géprõl, akkor ehhez mindenképpen a Connect directly to the physical network (Bridged) opciót válasszuk. Minden más esetben a Share the host's internet connection (NAT) az ajánlott, mivel így a virtuális gép eléri az internetet, de a hálózatról nem lehet azt elérni. Miután befejeztük a beállítások finomhangolását, indítsuk is el a frissen telepített &os;-s virtuális gépünket. A &os; beállítása a &macos; X/VMWare-en Ahogy a &os;-t sikeresen telepítettük a &macos; X alatt futó VMWare-re, néhány konfigurációs lépést még meg kell tennünk a virtualizált rendszer teljesítmények optimalizálása érdekében. A rendszertöltõ változóinak beállítása A legfontosabb lépés talán a változó értékének csökkentése, amivel a VMWare alatt futó &os; processzorhasználatát szoríthatjuk vissza. Ezt a következõ sor hozzáadásával érhetjük el a /boot/loader.conf állományban: kern.hz=100 Enélkül az üresjáratban zakatoló &os;-s VMWare vendég nagyjából az &imac; egyik processzorának 15%-át emészti fel. Ezzel a módosítással azonban ez lenyomható közel 5%-ra. Új konfigurációs állomány létrehozása a rendszermaghoz Nyugodtan törölhetjük az összes FireWire és USB eszköz meghajtóját. A VMWare egy &man.em.4; meghajtón keresztül elérhetõ virtuális hálózati kártyát biztosít, így az &man.em.4; kivételével az összes hálózati eszköz meghajtóját kivehetjük a rendszermagból. A hálózat beállítása A legegyszerûbb hálózati beállítás mindösszesen a DHCP használatát igényli, aminek révén a virtuális gépünk a befogadó &mac;-kel egy helyi hálózatra kerül. Ezt úgy tudjuk engedélyezni, ha az /etc/rc.conf állományba felvesszük az ifconfig_em0="DHCP" sort. Ha ennél komolyabb hálózati beállítások is érdekelnek minket, akkor olvassuk el a et. A &os; mint gazda Gazda operációs rendszerként a &os; évekig nem kapott hivatalosan támogatást egyetlen elterjedtebb virtualizációs megoldás részérõl sem. Sokan erre a célra eddig - a VMware korábbi és + a VMWare korábbi és inkább már elavult, a &linux; kompatibilitási rétegre épülõ változatait (mint például emulators/vmware3) használták. Nem sokkal azonban a &os; 7.2 megjelenése után a Sun &virtualbox; OSE (Open Source Edition) natív &os; alkalmazásként bukkant fel a Portgyûjteményben. A &virtualbox; egy folyamatos fejlesztés alatt álló, komplett virtualizációs csomag, amely immáron elérhetõ a legtöbb népszerû operációs rendszerre, mint a &windows;, &macos;, &linux; és a &os;. Egyaránt képes &windows; és &unix; fajtájú vendégrendszerek futattására. Nyílt- és zárt forráskódú változatban is elérhetõ. A felhasználók szempontjából a kettõ közti talán legfontosabb eltérés, hogy a nyílt forráskódú változat nem tartalmaz USB támogatást. A különbségek teljes listája megtalálható a &virtualbox; wiki Editions oldalán, a címen. &os; alatt jelenleg csak a nyílt forráskódú változat érhetõ el. A <application>&virtualbox;</application> telepítése A &virtualbox; a emulators/virtualbox könyvtárból érhetõ el portként, és onnan a következõ parancsokkal telepíthetõ: &prompt.root; cd /usr/ports/emulators/virtualbox &prompt.root; make install clean A beállítások közt az egyik leghasznosabb a GuestAdditions nevû programcsomag telepítése. A benne található programokon keresztül a vendégként futó operációs rendszer számos hasznos szolgáltatását el tudjuk érni, úgy mint az egérmutató integrációját (ekkor az egérkurzor zökkenõmentesen használható a gazda és a vendég rendszerben is) vagy a videomemória gyorsabb elérését (különösen &windows; esetében). A vendégekhez telepíthetõ ilyen jellegû kiegészítések az adott rendszer telepítése után a Devices menübõl érhetõek el. A &virtualbox; elsõ indítása elõtt el kell még végeznünk néhány további beállítást. Fontos tudnunk, hogy a port a telepítés során a /boot/modules könyvtárba tesz még egy rendszermagmodult is, amelyet még külön be kell töltenünk: &prompt.root; kldload vboxdrv Ehhez még vegyük fel a következõ sort a /boot/loader.conf állományba, így a modul a rendszer minden egyes indításakor magától betöltõdik: vboxdrv_load="YES" A &virtualbox; ezenkívül még igényli a proc állományrendszer csatlakoztatását is: &prompt.root; mount -t procfs proc /proc Ha hozzáadjuk az alábbi sort a /etc/fstab állományhoz, akkor ez a beállítás is megmarad a rendszer újraindítása után: proc /proc procfs rw 0 0 Nagyon valószínû, hogy proc állományrendszerrel van gondunk, amikor a következõ hibaüzenetet kapjuk a &virtualbox; indításakor: VirtualBox: supR3HardenedExecDir: couldn't read "", errno=2 cchLink=-1 Ilyenkor a mount parancs kiadásával ellenõrizzük az állományrendszer sikeres csatlakoztatását. A &virtualbox; telepítése során keletkezik még egy vboxusers nevû csoport. Ide azokat a felhasználókat vegyük fel, akik részére szeretnénk engedélyezni a &virtualbox; használatát. A csoportba új tagokat például a pw paranccsal tudunk felvenni: &prompt.root; pw groupmod vboxusers -m felhasználónév Ezek után a &virtualbox; indításához válasszuk a grafikus környezetünk menüjében található Sun VirtualBox menüpontot, vagy egy terminálban gépeljük be ezt a parancsot: &prompt.user; VirtualBox A &virtualbox; beállításának további lehetõségeirõl a címen elérhetõ hivatalos holnapon olvashatunk. Tekintettel arra, hogy a &os; port még viszonylag friss és folyamatos fejlesztés alatt áll, ehhez még érdemes átolvasnunk a &os; wikiben szereplõ oldalt is, ahol a vele kapcsolatos legfrissebb információkat és egyéb tudnivalókat találhatjuk. Egyéb virtualizációs lehetõségek A &os; &xen; gazdarendszerként is hamarosan elérhetõ lesz.