diff options
Diffstat (limited to 'hu_HU.ISO8859-2/books/handbook/mac/chapter.xml')
-rw-r--r-- | hu_HU.ISO8859-2/books/handbook/mac/chapter.xml | 2959 |
1 files changed, 2959 insertions, 0 deletions
diff --git a/hu_HU.ISO8859-2/books/handbook/mac/chapter.xml b/hu_HU.ISO8859-2/books/handbook/mac/chapter.xml new file mode 100644 index 0000000000..971f865e29 --- /dev/null +++ b/hu_HU.ISO8859-2/books/handbook/mac/chapter.xml @@ -0,0 +1,2959 @@ +<?xml version="1.0" encoding="iso-8859-2" standalone="no"?> +<!-- + The FreeBSD Documentation Project + $FreeBSD$ +--> + +<!-- The FreeBSD Hungarian Documentation Project + Translated by: PALI, Gabor <pgj@FreeBSD.org> + %SOURCE% en_US.ISO8859-1/books/handbook/mac/chapter.xml + %SRCID% 1.75 +--> + +<chapter id="mac" lang="hu"> + <chapterinfo> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Írta: </contrib> + </author> + </authorgroup> + </chapterinfo> + + <title>Kötelező + hozzáférés-vezérlés (MAC)</title> + + <sect1 id="mac-synopsis"> + <title>Áttekintés</title> + + <indexterm><primary>MAC</primary></indexterm> + <indexterm> + <primary>kötelező + hozzáférés-vezérlés</primary> + <see>MAC</see> + </indexterm> + + <para>A &os; 5.X változata új biztonsági + bővítéseket vett át a TrustedBSD + projektből a &posix;.1e nyomán. A két + legjelentősebb új biztonsági mechanizmus az + állományrendszerekben megtalálható + hozzáférés-vezérlési + listák (Access Control List, <acronym>ACL</acronym>) + és a kötelező + hozzáférés-vezérlés (Mandatory + Access Control, <acronym>MAC</acronym>). A kötelező + hozzáférés-vezérlés + segítségével olyan új + hozzáférés-vezérlési modulok + tölthetőek be, amelyek új biztonsági + házirendeket implementálnak. Némelyek + közülük védelmet nyújtanak a rendszer + egy szűk részének, amivel így egy adott + szolgáltatást bástyáznak alá. + Mások minden részletre kiterjedő + címkézett biztonságot szolgáltatnak + alanyokon és objektumokon keresztül. A + meghatározás <quote>kötelező</quote> + része onnan fakad, hogy a szabályok + betartatását a rendszergazdák és a + rendszer végzik, és nem bízzák a + felhasználókra, ahogy azt a System V + típusú rendszerekben a szabványos + állományokra és <acronym>IPC</acronym>-re + érvényes engedélyeken keresztül a + tetszés szerinti + hozzáférés-vezérlés + (Discretionary Access Control, <acronym>DAC</acronym>) + teszi.</para> + + <para>Ebben a fejezetben a kötelező + hozzáférés-vezérlést + övező keretrendszerre (<acronym>MAC</acronym> Framework) + és a különböző biztonsági + házirendeket megvalósító, + beilleszthető modulokra fogunk + összpontosítani.</para> + + <para>A fejezet elolvasása során + megismerjük:</para> + + <itemizedlist> + <listitem> + <para>hogy a &os; jelen pillanatban milyen modulokat tartalmaz a + <acronym>MAC</acronym> rendszeren belül és milyen + mechanizmusok tartoznak hozzájuk;</para> + </listitem> + + <listitem> + <para>hogy a <acronym>MAC</acronym> biztonsági + házirendjeit képező modulok miket + valósítanak meg, valamint mi a + különbség a címkézett és + címkézetlen házirendek + között;</para> + </listitem> + + <listitem> + <para>hogyan kell hatékonyan beállítani + és használni rendszerünkben a + <acronym>MAC</acronym> rendszert;</para> + </listitem> + + <listitem> + <para>hogyan állítsuk be a <acronym>MAC</acronym> + rendszerben található különféle + biztonsági házirendeket képező + modulokat;</para> + </listitem> + + <listitem> + <para>hogyan hozzunk létre a <acronym>MAC</acronym> + rendszer segítségével egy + biztonságosabb környezetet, amire + példákat is mutatunk;</para> + </listitem> + + <listitem> + <para>hogyan teszteljük le a <acronym>MAC</acronym> + rendszer beállításait és + bizonyosodjunk meg működésének + helyességéről.</para> + </listitem> + </itemizedlist> + + <para>A fejezet elolvasásához ajánlott:</para> + + <itemizedlist> + <listitem> + <para>a &unix; és a &os; alapjainak ismerete (<xref + linkend="basics"/>)</para> + </listitem> + + <listitem> + <para>a rendszermag beállításának + és lefordításának ismerete (<xref + linkend="kernelconfig"/>)</para> + </listitem> + + <listitem> + <para>tisztában lenni az alapvető biztonsági + kérdésekkel és azok + hatásával a &os;-n belül (<xref + linkend="security"/>)</para> + </listitem> + </itemizedlist> + + <warning> + <para>Az itt ismertetésre kerülő + információk helytelen alkalmazása a + rendszer hozzáférhetőségének + teljes elvesztését, a felhasználók + bosszantását vagy az X11 által + felkínált lehetőségek + kirekesztését eredményezheti. Ami viszont + ennél is fontosabb, hogy a <acronym>MAC</acronym> + rendszerre nem úgy kell tekinteni, mint amitől a + rendszerünk tökéletesen + biztonságossá válik. A + <acronym>MAC</acronym> segítségével + csupán a meglevő biztonsági + házirendeket gyarapítjuk. A szilárd + biztonsági rutin és a rendszeres + ellenőrzések elvégzése + nélkül a rendszerünk valójában + sosem lesz teljesen biztonságos.</para> + + <para>Hozzá kell tennünk, hogy a fejezetben bemutatott + példák tényleg csak példák. + Senkinek sem tanácsoljuk, hogy az itt említett + beállításokat egy éles rendszerre is + kiterjessze. A különböző biztonsági + modulok felépítése rengeteg + gondolkodást és próbálgatást + igényel. Aki nem érti meg az egész + működését, könnyen azon kaphatja + magát, hogy újra végig kell mennie a + rendszeren és egyenként be kell + állítania minden könyvtárat és + állományt.</para> + </warning> + + <sect2> + <title>Amivel itt nem foglalkozunk</title> + + <para>Ebben a fejezetben a <acronym>MAC</acronym> rendszerrel + kapcsolatban rengeteg biztonsági kérdéssel + foglalkozni fogunk. Az új <acronym>MAC</acronym> + biztonsági modulok kifejlesztését azonban + már nem érintjük. Számos olyan + biztonsági modul található a + <acronym>MAC</acronym> rendszerben, amelyek rendelkeznek az + új modulok kialakításához és + teszteléséhez szükséges + jellemzőkkel. Ilyenek többek közt a + &man.mac.test.4;, &man.mac.stub.4; és a &man.mac.none.4;. + Ezekről a biztonsági modulokról és az + általuk szolgáltatott mechnanizmusokról a + man oldalaik tudnak bővebb + tájékoztatást adni.</para> + + </sect2> + </sect1> + + <sect1 id="mac-inline-glossary"> + <title>A fejezet fontosabb fogalmai</title> + + <para>A fejezet tartalmának kifejtéséhez + szükségünk lesz néhány fontosabb + alapfogalom tisztázására. + Segítségükkel vélhetően + sikerül eloszlatni a téma feldolgozása + során felmerülő + félreértéseket, illetve elkerülni az + új fogalmak és információk + váratlan felbukkanását.</para> + + <itemizedlist> + <listitem> + <para><emphasis>alany</emphasis>: Alanynak tekintünk a + rendszerben minden olyan aktív egyedet, amely + információt áramoltat az + <emphasis>objektumok</emphasis>, tehát a + felhasználók, a processzorok, a rendszerben + futó programok stb. között. A &os;-ben + majdnem minden esetben a felhasználók egy + szálon keresztül vezérlik a futó + programokat.</para> + </listitem> + + <listitem> + <para><emphasis>címke</emphasis>: A címke egy + olyan biztonsági tulajdonság, ami vonatkozhat + állományokra, könyvtárakra vagy a + rendszer más elemeire. Egy címke + tekinthető a bizalmasságot jelző + pecsétnek is: ha egy állományra + címkét teszünk, akkor benne megadjuk a + rá vonatkozó biztonsági jellemzőket, + és csak a hozzá hasonló biztonsági + beállításokkal rendelkező + állományok, felhasználók, + erőforrások stb. érhetik el. A + címkék jelentését és + értelmezését a házirendek + beállítása határozza meg: + míg egyes házirendek a címkéket + egy objektum sértetlenségének vagy + titkosságának tekintik, addig mások a + hozzáféréssel kapcsolatos + szabályokat rögzítik bennük.</para> + </listitem> + + <listitem> + <para><emphasis>egycímkés</emphasis>: + Egycímkés esetről akkor + beszélünk, amikor az adat + áramlásának + szabályozására az egész + állományrendszer egyetlen címkét + alkalmaz. Ha ezt beállítjuk egy + állományrendszernél, de nem adjuk meg + vele együtt a <option>multilabel</option> opciót, + akkor az összes állományra ugyanaz a + címke érvényes.</para> + </listitem> + + <listitem> + <para><emphasis>erős vízjel</emphasis>: Az erős + vízjel házirendje szerint a biztonsági + szint akkor növelhető, ha magasabb szintű + információkhoz akarunk hozzájutni. A + legtöbb esetben a folyamatok befejeződése + után visszaállítódik az eredeti + szint. A &os; <acronym>MAC</acronym> rendszere pillanatnyilag + ehhez nem tartalmaz házirendet, de a teljesség + kedvéért megadtuk ennek a + definícióját is.</para> + </listitem> + + <listitem> + <para><emphasis>gyenge vízjel</emphasis>: A gyenge + vízjel házirendje szerint a biztonsági + szint csökkenthető az alacsonyabb szintű + információk elérése + érdekében. A legtöbb esetben a folyamatok + befejeződése után + visszaállítódik az eredeti szint. A + &os;-ben ezt a házirendet egyedül a + &man.mac.lomac.4; alkalmazza.</para> + </listitem> + + <listitem> + <para><emphasis>házirend</emphasis>: Szabályok + olyan gyűjteménye, amely megadja, hogy + miként kell a célokat teljesíteni. Egy + <emphasis>házirend</emphasis> általában + az egyes elemek kezelését rögzíti. + Ebben a fejezetben a <emphasis>házirend</emphasis> + kifejezés alatt a <emphasis>biztonsági + házirendet</emphasis> értjük, tehát + olyan szabályok gyűjteményét, + amelyek az adatok és az információ + áramlását határozzák meg, + továbbá megadják, hogy + közülük ki mihez férhet + hozzá.</para> + </listitem> + + <listitem> + <para><emphasis>kényesség</emphasis>: + Általában az <acronym>MLS</acronym> + tárgyalásakor kerül elő. Az + kényesség szintjével az adatok + fontosságát vagy titkosságát + szokták jelölni. A kényességi szint + növekedésével növekszik az adat + titkosságának vagy bizalmasságának + szintje.</para> + </listitem> + + <listitem> + <para><emphasis>objektum</emphasis>: Objektum vagy + rendszerobjektum minden olyan egyed, amelyen + információ folyik keresztül az + <emphasis>alanyok</emphasis> + irányításával. Ezek lehetnek + többek közt könyvtárak, + állományok, mezők, képernyők, + billentyűzetek, a memória, mágneses + tárolóeszközök, nyomtatók vagy + bármilyen más + adattároló/hordozó eszköz. Az + objektumok alapvetően adattárolók vagy a + rendszer erőforrásai. Egy + <emphasis>objektum</emphasis> elérésén + gyakorlatilag az adatok elérését + értjük.</para> + </listitem> + + <listitem> + <para><emphasis>rekesz</emphasis>: Egy rekeszbe soroljuk az + elrekeszteni vagy elkülöníteni + kívánt programok és adatok + összeségét, ahol a + felhasználók explicit módon + képesek hozzáférni a rendszer bizonyos + komponenseihez. Emellett a rekesz utalhat egy + tetszőleges csoportosításra is, + például munkacsoportra, osztályra, + projektre vagy témára. A rekeszek + használata elengedhetetlen a biztonsági + házirendek kialakításához.</para> + </listitem> + + <listitem> + <para><emphasis>sértetlenség</emphasis>: A + sértetlenség, mint kulcsfogalom, az adatok + megbízhatóságának szintje. + Minél sértetlenebb az adat, annál + inkább tekinthetjük + megbízhatónak.</para> + </listitem> + + <listitem> + <para><emphasis>szint</emphasis>: Egy biztonsági + tulajdonság megnövelt vagy lecsökkentett + beállítása. A szint + növekedésével együtt a + biztonság mértéke is + növekszik.</para> + </listitem> + + <listitem> + <para><emphasis>többcímkés</emphasis>: A + <option>multilabel</option> vagyis + többcímkés jellemző az + állományrendszerek esetén fordulhat + elő, és a &man.tunefs.8; segédprogrammal + állítható be + egyfelhasználós módban vagy a rendszer + indítása során az &man.fstab.5; + állományon keresztül, esetleg egy új + állományrendszer létrehozásakor. + Ezzel a beállítással a rendszergazda + különféle <acronym>MAC</acronym> + címkéket rendelhet különböző + objektumokhoz. Ez a beállítás + természetesen csak olyan biztonsági modulok + esetén él, amelyek tudnak + címkézni.</para> + </listitem> + + </itemizedlist> + </sect1> + + <sect1 id="mac-initial"> + <title>A MAC ismertetése</title> + + <para>Az imént definiált új fogalmak + tükrében most nézzük meg, hogy a + <acronym>MAC</acronym> rendszer alkalmazásával + miként javíthatunk rendszerünk + biztonságán. A <acronym>MAC</acronym> rendszerhez + készített különböző + biztonsági modulok alkalmasak a hálózat + és az állományrendszerek + védelmére, valamint segítségükkel + megakadályozhatjuk, hogy a felhasználók + elérhessenek bizonyos portokat és socketeket stb. A + házirendeket formázó modulokat talán + együttesen tudjuk a leghatékonyabban alkalmazni, + és ha egyszerre több modul + betöltésével egy többrétegű + védelmi rendszert alakítunk ki. Ez nem ugyanaz, + mint a rendszer megerősítése, ahol a rendszer + összetevőit jellemző módon csak bizonyos + célok tekintetében edzzük meg. A + módszer egyedüli hátulütői a + többszörös állományrendszeri + címkékkel, a felhasználónként + beállítandó hálózati + eléréssel stb. járó + adminisztrációs költségek.</para> + + <para>Ezek a hátrányok azonban eltörpülnek a + létrehozott rendszer tartósságával + szemben. Például, ha képesek vagyunk + megmondani, hogy az adott konfigurációban milyen + házirendek alkalmazására van + szükség, akkor ezzel az adminisztrációs + költségek visszaszoríthatóak. A + szükségtelen házirendek + eltávolításával még + növelhetjük is a rendszer + összteljesítményét, valamint az + így felkínált rugalmasságot. Egy + jó kialakításban figyelembe kell venni az + összes biztonsági előírást, + és hatékonyan megvalósítani ezeket a + rendszer által felajánlott + különféle biztonsági modulokkal.</para> + + <para>Ezért tehát a <acronym>MAC</acronym> + lehetőségeit kihasználó rendszerekben + legalább annyit meg kell tudni oldani, hogy a + felhasználók ne változtathassák + kedvükre a biztonsági tulajdonságokat. Az + összes felhasználói segédprogramnak, + programnak és szkriptnek a kiválasztott + biztonsági modulokban szereplő + hozzáférési szabályokkal + kifeszített kereten belül kell mozognia. A + <acronym>MAC</acronym> totális + irányítása pedig a rendszergazda + kezében van.</para> + + <para>A rendszergazda így egyedül csak a megfelelő + biztonsági modulok gondos + összeválogatásáért felelős. + Bizonyos környezetekben szükséges lehet a + hálózaton keresztüli + hozzáférések korlátozása is. + Ilyen esetekben a &man.mac.portacl.4;, &man.mac.ifoff.4; vagy a + &man.mac.biba.4; moduloktól érdemes elindulnunk. + Más esetekben az állományrendszerek + objektumainak bizalmasságát kell csupán + megőriznünk. Erre a célra a + &man.mac.bsdextended.4; és &man.mac.mls.4; modulok a + legalkalmasabbak.</para> + + <para>A házirendekhez kapcsolódó + döntések a hálózati + beállítások alapján is + meghozhatóak. Elképzelhető, hogy csak bizonyos + felhasználók férhetnek hozzá az + &man.ssh.1; szolgáltatásain keresztül a + hálózathoz vagy az internethez. A + &man.mac.portacl.4; pontosan ilyen helyzetekben tud a + segítségünkre sietni. Mit tegyünk viszont + az állományrendszerek esetén? Vágjunk + el adott felhasználókat vagy csoportokat bizonyos + könyvtáraktól? Vagy korlátozzuk a + felhasználók vagy segédprogramok + hozzáférését adott + állományokhoz bizonyos objektumok bizalmassá + tételével?</para> + + <para>Az állományrendszerek esetében az + objektumokat néhány felhasználó + elérheti, mások pedig nem. Például + egy nagyobb fejlesztőcsapat kisebb csoportokra + bontható. Az A projektben résztvevő + fejlesztők nem férhetnek hozzá a B projektben + dolgozó fejlesztők munkájához. Ellenben + szükségük lehet a C projekten + munkálkodó fejlesztők által + létrehozott objektumokra. Ez egy igen érdekes + helyzet. A <acronym>MAC</acronym> rendszer által + felkínált különböző + biztonsági modulokra építkezve azonban + könnyedén csoportokba tudjuk szervezni a + felhasználókat, és a megfelelő + területekhez az információ + kiszivárgása nélkül hozzá tudjuk + őket engedni.</para> + + <para>Ennek következtében minden egyes biztonsági + modul a maga módján gondoskodik az egész + rendszer biztonságáról. A céljainknak + megfelelő modulokat egy jól átgondolt + biztonsági házirend alapján válasszuk + ki. Sok esetben az egész házirendet át kell + tekinteni és újra kell alkalmazni a rendszerben. A + <acronym>MAC</acronym> által felajánlott + különböző biztonsági modulok + megértése segít a rendszergazdáknak + megválasztani az adott helyzetben legjobban + alkalmazható házirendeket.</para> + + <para>A &os; rendszermagja alapból nem tartalmazza a + <acronym>MAC</acronym> rendszert. Ezért a fejezetben + szereplő példák vagy az itt leírtak + kipróbálásához az alábbi + beállítást kell hozzátennünk a + rendszermag beállításait tartalmazó + állományhoz:</para> + + <programlisting>options MAC</programlisting> + + <para>Majd fordítsuk és telepítsük + újra a rendszermagot.</para> + + <caution> + <para>Miközben a <acronym>MAC</acronym> rendszerhez + készült különböző modulok a + saját man oldalaik szerint igénylik a + beépítésüket, vigyázzunk + velük, mert ezzel a rendszerüket pillanatok alatt ki + tudjuk zárni a hálózatból és + így tovább. A <acronym>MAC</acronym> alapú + védelem felépítése leginkább + egy tűzfal + összeállításához + hasonlítható, ahol ugyanígy számolni + kell azzal, hogy egy óvatlan paranccsal + kizárhatjuk magunkat a rendszerből. Valamilyen + módon mindig próbáljunk gondoskodni a + rendszer előző állapotának + visszaállíthatóságáról, + és a <acronym>MAC</acronym> távoli + adminisztrációját mindig nagyfokú + körültekintéssel végezzük.</para> + </caution> + + </sect1> + + <sect1 id="mac-understandlabel"> + <title>Bővebben a MAC címkéiről</title> + + <para>A <acronym>MAC</acronym>-címke egy olyan + biztonsági tulajdonság, amelyet a rendszerben + található alanyokhoz és objektumokhoz + rendelhetünk.</para> + + <para>Egy címke beállításához a + felhasználónak pontosan ismernie kell, hogy ilyenkor + mi történik. Az objektumokhoz tartozó + tulajdonságok a betöltött moduloktól + függenek, és az egyes modulok eltérő + módon értelmezik ezeket a tulajdonságokat. + Ha a precíz megértésük + hiányában helytelenül állítjuk be + ezeket, vagy nem vagyunk képesek tisztázni a + velük járó következményeket, akkor + az a rendszerünk kiszámíthatatlan és + valószínűleg kedvezőtlen + viselkedését eredményezi.</para> + + <para>A házirendek az objektumhoz rendelt biztonsági + címkéket a hozzáféréssel + kapcsolatos döntések meghozásában + használják fel. Bizonyos házirendek + esetében már maga a címke elegendő + információt tartalmaz a döntés + megformálásához. Máshol viszont a + címkék egy nagyobb szabályrendszer + részeként dolgozódnak fel stb.</para> + + <para>Például, ha egy állományra + beállítjuk a <literal>biba/low</literal> + címkét, akkor az arra fog utalni, hogy a + címkét a Biba nevű biztonsági modul + kezeli és értéke <quote>low</quote>.</para> + + <para>Az a néhány modul, amely a &os;-ben + támogatja a címkézés + lehetőségét, három speciális + címkét definiál előre. Ezek rendre a + <quote>low</quote> (alacsony), <quote>high</quote> (magas) + és <quote>equal</quote> (egyező) címkék. + Habár az egyes modulok esetén eltérő + módon képesek vezérelni a + hozzáférést, azt mindig biztosra + vehetjük, hogy a <quote>low</quote> a legalacsonyabb + érték, az <quote>equal</quote> címke + hatására az adott alanyt vagy objektumot + érintetlenül hagyják, és a + <quote>high</quote> értékű címke a Biba + és <acronym>MLS</acronym> modulok esetében a + legmagasabb beállítást jelenti.</para> + + <para>Az egycímkés állományrendszerek + használata során az egyes objektumonkhoz csak + egyetlen címkét rendelhetünk hozzá. + Ezzel az egész rendszerben csak egyfajta engedélyt + alkalmazunk, ami sok esetben pontosan elegendő. + Létezik néhány különleges eset, + amikor az állományrendszerben levő alanyokhoz + vagy objektumokhoz egyszerre több címkét is + hozzá kell rendelnünk. Ilyenkor a + <option>multilabel</option> opciót kell átadnunk a + &man.tunefs.8; segédprogramnak.</para> + + <para>A Biba és az <acronym>MLS</acronym> esetében + előfordulhat, hogy egy numerikus címkével + fogjuk jelölni a hierarchikus irányítás + pontos szintjét. A numerikus szintek + használatával tudjuk az információt + különböző csoportokba szétosztani vagy + elrendezni, például úgy, hogy csak az adott + szintű vagy a felette álló csoportok + számára engedélyezzük a + hozzáférést.</para> + + <para>Az esetek többségében a + rendszergazdának csak egyetlen címkét kell + beállítania az egész + állományrendszerre.</para> + + <para><emphasis>Hé, álljunk csak meg! Akkor ez + viszont pont olyan, mint a <acronym>DAC</acronym>! Én azt + hittem, hogy a <acronym>MAC</acronym> szigorúan a + rendszergazda kezébe adja az + irányítást.</emphasis> Ez az + állítás továbbra is fennáll, + mivel bizonyos értelemben a <username>root</username> lesz + az, aki beállítja a házirendeket, + tehát ő mondja meg, hogy a felhasználók + milyen kategóriákba vagy + hozzáférési szintekbe sorolódnak. + Sajnos, sok biztonsági modul még magát a + <username>root</username> felhasználót is + korlátozza. Az objektumok feletti + irányítás ilyenkor a csoportra száll, + de a <username>root</username> bármikor visszavonhatja vagy + módosíthatja a beállításokat. + Ezzel a hierarchikus/engedély alapú modellel a Biba + és az <acronym>MLS</acronym> nevű házirendek + foglalkoznak.</para> + + <sect2> + <title>A címkék + beállítása</title> + + <para>A címkézéshez kapcsolódó + összes beállítást gyakorlatilag az + alapvető rendszerprogramokkal végezhetjük el. + Ezek a parancsok az objektumok és az alanyok + szabályozásához, valamint a + konfiguráció + módosításához és + ellenőrzéséhez adnak egy egyszerű + kezelőfelületet.</para> + + <para>Az összes konfigurációs + beállítást a &man.setfmac.8; és + &man.setpmac.8; segédprogramokkal végezhetjük + el. A <command>setfmac</command> + segítségével a rendszerszintű + objektumokhoz tudunk hozzárendelni a + <acronym>MAC</acronym>-címkéket, míg a + <command>setpmac</command> paranccsal a rendszerben levő + alanyokhoz tudunk címkéket rendelni. Vegyük + például ezt:</para> + + <screen>&prompt.root; <userinput>setfmac biba/high <replaceable>próba</replaceable></userinput></screen> + + <para>Amennyiben az iménti parancs hibátlanul + lefutott, visszakapjuk a paranccsort. Ezek a parancsok csak + olyankor maradnak nyugodtan, amikor semmilyen hiba nem + történt. Működésük + hasonló a &man.chmod.1; és &man.chown.8; + parancsokéhoz. Bizonyos esetekben <errorname>Permission + denied</errorname> (<errorname>A hozzáférés + nem engedélyezett</errorname>) hibát kapunk, ami + általában akkor bukkan fel, ha egy + korlátozott objektummal kapcsolatban + próbálunk meg címkét + beállítani vagy módosítani + <footnote> + <para>Más feltételek mellett másmilyen + hibák keletkezhetnek. Például, ha egy + olyan objektumot próbálunk + újracímkézni, amely nincs a + felhasználó birtokában, esetleg nem is + létezik vagy írásvédett. + Adódhat, hogy a kötelező házirend az + állomány, a program, vagy az új + címkeérték tulajdonságai miatt + nem fogja lehetővé tenni egy futó program + számára egy állomány + újracímkézését. + Nézzük erre egy példát: egy + kevésbé sértetlen + felhasználó megpróbálja + megváltoztatni egy sokkal sértetlenebb + állomány címkéjét. Vagy + egy kevésbé sértetlen + felhasználó sokkal sértetlenebbre + akarja állítani egy kevésbé + sértetlen állomány + címkéjét.</para> + </footnote>. A rendszergazda a következő paranccsal + tudja feloldani az ilyen helyzeteket:</para> + + <screen>&prompt.root; <userinput>setfmac biba/high <replaceable>próba</replaceable></userinput> +<errorname>Permission denied</errorname> +&prompt.root; <userinput>setpmac biba/low setfmac biba/high <replaceable>próba</replaceable></userinput> +&prompt.root; <userinput>getfmac <replaceable>próba</replaceable></userinput> +<replaceable>próba</replaceable>: biba/high</screen> + + <para>Ahogy az itt tetten is érhető, a + <command>setpmac</command> használható a modul + beállításainak + felülbírálására úgy, + hogy a meghívott programban egy másik + címkét állít be. A + <command>getpmac</command> segédprogram + általában a <application>sendmail</application>hez + hasonló háttérben futó programok + esetében alkalmazható: ilyenkor a konkrét + parancs helyett a futó program + azonosítóját kell megadnunk, de + működése ugyanaz. Ha a + felhasználók a hatókörükön + túl levő állományokat + próbálnak meg módosítani, akkor a + betöltött modulok szabályainak megfelelően + a <function>mac_set_link</function> függvény + <errorname>Operation not permitted</errorname> (<errorname>A + művelet nem engedélyezett</errorname>) hibát + fog adni.</para> + + <sect3> + <title>Gyakori címketípusok</title> + + <para>A &man.mac.biba.4;, &man.mac.mls.4; és + &man.mac.lomac.4; moduloknál használhatunk + címkéket. Értékük lehet + <quote>high</quote>, <quote>equal</quote> vagy + <quote>low</quote>, melyek rövid magyarázata a + következő:</para> + + <itemizedlist> + <listitem> + <para>A <literal>low</literal> címke az objektumra + vagy alanyra érvényes leggyengébb + beállítást jelenti. Az ilyen + címkéjű objektumok vagy alanyok nem + érhetik el a <quote>high</quote> + címkéjűeket.</para> + </listitem> + + <listitem> + <para>Az <literal>equal</literal> címke + használható minden olyan objektum vagy alany + esetében, amelyeket ki akarunk vonni az adott + házirend hatálya alól.</para> + </listitem> + + <listitem> + <para>A <literal>high</literal> címke adja az + objektumhoz vagy alanyhoz tartozó legerősebb + beállítást.</para> + </listitem> + </itemizedlist> + + <para>Az egyes moduloktól függően ezek az + értékek az információ + áramoltatásának + különböző irányait + írhatják le. A megfelelő man oldalak + elolvasásával még jobban + megismerhetjük az egyes címketípusok + beállításának + jellegzetességeit.</para> + + <sect4> + <title>A címkék + beállításáról + részletesebben</title> + + <para>A numerikus osztályozó + címkék + <literal><replaceable>összehasonlítás</replaceable>:<replaceable>rekesz</replaceable>+<replaceable>rekesz</replaceable></literal> + alakban használatosak, tehát a</para> + + <programlisting>biba/10:2+3+6(5:2+3-20:2+3+4+5+6)</programlisting> + + <para>kifejezés így + értelmezhető:</para> + + <para><quote>A Biba házirend + címkéje</quote>/<quote>10 + osztály</quote> :<quote>2, 3 és 6 + rekeszek</quote>: (<quote>5 + osztály...</quote>)</para> + + <para>Ebben a példában az első + osztály tekinthető <quote>valódi + osztálynak</quote>, amely a <quote>valódi + rekeszeket</quote> jelenti, a második osztály + egy alacsonyabb besorolás, míg az + utolsó egy magasabb szintű. A legtöbb + konfigurációban nem lesz + szükségünk ennyire összetett + beállításokra, noha képesek + vagyunk felírni ezeket.</para> + + <para>Ha ezt kivetítjük a rendszer objektumaira, + akkor a rendszerben levő alanyokat illetően + csupán az aktuális osztály/rekeszek + számítanak, mivel a rendszerben és + hálózati csatolófelületeken + elérhető + hozzáférés-vezérlési + jogokat tükrözi.</para> + + <para>Az alany-objektum párokban megadott + osztályzatok és rekeszek + használhatóak fel egy olyan kapcsolat + kiépítésére, amit + <quote>dominanciának</quote> nevezünk. Ilyenkor + egy alany ural egy objektumot, vagy egy objektum ural egy + alanyt, vagy egyikük sem uralja a másikat, + esetleg mind a kettő uralja egymást. A + <quote>kettős dominancia</quote> esete akkor forog + fenn, amikor a két címke megegyezik. A Biba + információáramoltatási + sajátosságaiból adódóan + jogunk van rekeszeket létrehozni, <quote>tudunk + kell</quote>, hogy ezek projekteknek feleltethetőek + meg, de az objektumok is rendelkezhetnek rekeszekkel. A + felhasználók ilyenkor csak úgy tudnak + elérni egyes objektumokat, ha az + <command>su</command> vagy a <command>setpmac</command> + használatával leszűkítik a + jogaikat egy olyan rekeszre, ahol már nem + érvényesülnek rájuk + korlátozások.</para> + + </sect4> + </sect3> + + <sect3> + <title>A felhasználók és + címkék kapcsolata</title> + + <para>Maguknak a felhasználóknak is + szükségük van címkékre, mivel + csak ezek segítségével tudnak az + állományaik és programjaik megfelelő + módon együttműködni a rendszerben + érvényes biztonsági házirenddel. + Ezt a <filename>login.conf</filename> + állományban megadható + bejelentkezési osztályokkal + állíthatjuk be. Minden címkéket + használó modulban a + felhasználóknak is van + címkéjük.</para> + + <para>Lentebb látható egy ilyen minta + bejegyzés, amely minden modulhoz tartalmaz + beállítást:</para> + + <programlisting>default:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ + :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\ + :manpath=/usr/share/man /usr/local/man:\ + :nologin=/usr/sbin/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :vmemoryuse=100M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=8M:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=91d:\ + :umask=022:\ + :ignoretime@:\ + :label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:</programlisting> + + <para>Itt a <literal>label</literal> opciót + használtuk a felhasználói + osztályhoz tartozó alapértelmezett + címkék + beállításához, amit majd a + <acronym>MAC</acronym> betartat. A felhasználók + nem módosíthatják ezt az + értéket, ezért ez a + felhasználók számára nem + tekinthető tetszőlegesen elhagyható + beállításnak. Egy valós + konfigurációban azonban a rendszergazda + valószínűleg nem akarja majd egyszerre az + összes modult használni. Javasoljuk, hogy + mielőtt egy ilyen jellegű + konfigurációt adnánk meg, olvassuk el az + egész fejezetet.</para> + + <note> + <para>A felhasználók ezt a címkét + meg tudják változtatni az első + bejelentkezés után, de csak a házirend + keretein belül. A fenti példában + úgy állítjuk be a Biba + házirendet, hogy a futó programok + sértetlenségi foka legalább 5, + legfeljebb 15 lehet, de az alapértéke 10. + Tehát a programok egészen addig 10-es szinten + futnak, amíg a programok a Biba + bejelentkezéskor megadott tartományában + meg nem változtatják ezt a + címkét, feltehetően a + <command>setpmac</command> parancs + hatására.</para> + </note> + + <para>Mindig, amikor megváltozatjuk a + <filename>login.conf</filename> + beállításait, a + <command>cap_mkdb</command> paranccsal újra kell + generálni a bejelentkezési osztályokhoz + tartozó adatbázist, amire a későbbi + példákban vagy részekben igyekszünk + is mindig felhívni a figyelmet.</para> + + <para>Nem árt hozzátennünk, hogy sok + rendszerben kifejezetten sok felhasználót kell + kezelnünk, amihez több különböző + bejelentkezési osztályra is + szükségünk lehet. Mivel később + már csak egyre jobban bonyolódni fog a + felhasználók kezelése, ezért soha + ne felejtsünk el komolyan előre tervezni.</para> + + <para>A &os; következő változataiban meg fognak + jelenni más módszerek is a + felhasználók és címkék + közti kapcsolatok kezelésére. A + &os; 5.3 előtt azonban ez még + semmiképpen sem várható.</para> + + </sect3> + + <sect3> + <title>A hálózati csatolófelületek + és a címkék kapcsolata</title> + + <para>A hálózati csatlakozások + esetében is állíthatunk be + címkéket, melyek a hálózaton + keresztül folyó adatok + áramlását határozzák meg. + Minden esetben ugyanúgy működnek, mint ahogy + a házirendek az objektumokra. Például a + <literal>biba</literal> esetében a magas + beállításokkal rendelkező + felhasználók nem férhetnek hozzá + az alacsonyabb címkéjű + hálózati csatolófelületekhez.</para> + + <para>Ha <acronym>MAC</acronym>-címkéket akarunk + rendelni egy hálózati felülethez, akkor az + <command>ifconfig</command> parancsnak adjuk meg a + <option>maclabel</option> paramétert. + Például a</para> + + <screen>&prompt.root; <userinput>ifconfig bge0 maclabel biba/equal</userinput></screen> + + <para>parancs beállítja a + <literal>biba/equal</literal> + <acronym>MAC</acronym>-címkét a &man.bge.4; + felületre. A <literal>biba/high(low-high)</literal> + alakú címkéket átadásukhoz + idézőjelek közé kell tenni, + különben hibát kapunk.</para> + + <para>Minden címkézést + támogató modulhoz tartoznak futási + időben állítható paraméterek, + amelyekkel akár le is tudjuk tiltani a + <acronym>MAC</acronym>-címkéket a + hálózati csatolófelületeken. + Ugyanezt jelenti egyébként, ha + <option>equal</option> értéket adunk meg a + címkének. Ezt behatóbban úgy + ismerhetjük meg, ha kielemezzük a + <command>sysctl</command> parancs kimenetét, a + megfelelő modul man oldalát vagy a fejezetben + további részében található, + erre vonatkozó információkat.</para> + + </sect3> + </sect2> + + <sect2> + <title>Egy címke vagy több címke?</title> + + <para>Alapértelmezés szerint a rendszer a + <option>singlelabel</option> beállítást + használja. Ez vajon mit tartogat a rendszergazda + számára? Számos olyan + eltérést, aminek megvannak a saját + előnyei és hátrányai a rendszer + védelmi modelljének rugalmassága + szempontjából.</para> + + <para>A <option>singlelabel</option> + beállítás minden alany vagy objektum + esetében csupán egyetlen címke, + például a <literal>biba/high</literal> + használatát engedi. Kevesebb + adminisztrációs költséggel jár, + azonban csökkenteni a címkézést + támogató modulok + testreszabhatóságát. Ezért sok + rendszergazda inkább a <option>multilabel</option> + beállítást választja a + biztonsági házirend kialakítása + során.</para> + + <para>A <option>multilabel</option> beállítás + lehetővé teszi, hogy mindegyik alanyhoz és + objektumhoz a szabványos <option>singlelabel</option> + beállítás lehetőségeivel + szemben egymástól függetlenül + külön-külön rendelhessünk + címkéket a partíciókon. Az egy- + és többcímkés opciónak csak + olyan modulok esetében van értelme, amelyek + támogatják a címkézést, mint + például a Biba, Lomac, <acronym>MLS</acronym> + és a <acronym>SEBSD</acronym> házirendek.</para> + + <para>Sokszor egyáltalán nincs is + szükségünk a <option>multilabel</option> + használatára. Tekintsük + például a következő helyzetet és + biztonsági modellt:</para> + + <itemizedlist> + <listitem> + <para>Adott egy &os; webszerver, ahol a <acronym>MAC</acronym> + rendszert több biztonsági házirenddel + alkalmazzuk.</para> + </listitem> + + <listitem> + <para>A gépen egyedül csak a + <literal>biba/high</literal> címkére van + szükségünk mindenhez a rendszerben. Itt + egyszerűen csak nem adjuk meg az + állományrendszernek a + <option>multilabel</option> beállítást, + mivel az egycímkés rendszer mindig + rendelkezésünkre áll.</para> + </listitem> + + <listitem> + <para>Mivel azonban erre a gépre telepíteni + akarunk egy webszervert is, ilyenkor a + <literal>biba/low</literal> címke + használatával igyekszünk + korlátozni a szerver feldolgozási + képességeit. A Biba házirendről + és annak működéséről + csak a későbbiekben fogunk írni, + ezért ha az előbbi megjegyzést még + nem teljesen értjük, akkor egyszerűen csak + olvassunk tovább és térjünk vissza + ide. A szerver futása alatt, vagy legalább is + idejének nagy részében egy + külön partíciót használhatna, + amire a <literal>biba/low</literal> címkét + állítanánk be. Természetesen ez + a példa korántsem teljes, hiszen + hiányoznak belőle az adatokra + érvényes korlátozások, a + konfigurációs és + felhasználói beállítások. + Ez csupán az iménti gondolatmenet gyors + illusztrációja.</para> + </listitem> + </itemizedlist> + + <para>Amennyiben címkézést nem + támogató modulokat alkalmazunk, a + <option>multilabel</option> beállításra + szinte sosem lesz szükségünk. Ilyenek + például a <literal>seeotheruids</literal>, + <literal>portacl</literal> és + <literal>partition</literal> házirendek.</para> + + <para>A <option>multilabel</option> opció használata + és így speciális, + többcímkés védelmi modell + létrehozása képes elbonyolítani a + rendszer karbantartását, mert ilyenkor az + állományrendszerben mindennek lennie kell + címkéjének: könyvtáraknak, + állományok és még az + eszközleíróknak is.</para> + + <para>A most következő paranccsal + beállítjuk az állományrendszerre a + <option>multilabel</option> opciót. Ez csak + egyfelhasználós módban tehető + meg:</para> + + <screen>&prompt.root; <userinput>tunefs -l enable /</userinput></screen> + + <para>A lapozópartíció esetében erre + nincs szükség.</para> + + <note> + <para>Előfordulhat, hogy néhány + felhasználónak nem sikerül a + <option>multilabel</option> opciót + beállítania a rendszerindító + partícióra. Ha ez történne, akkor + olvassuk el a fejezet <xref + linkend="mac-troubleshoot"/>át.</para> + </note> + + </sect2> + </sect1> + + <sect1 id="mac-planning"> + <title>A védelem megtervezése</title> + + <para>Mindig hasznos időt szánni a tervezésre, + amikor nekilátunk egy új technológia + alkalmazásához. A tervezés közben a + rendszergazdának <quote>egyben kell látnia a + képet</quote>, lehetőleg az alábbiak + figyelembevételével:</para> + + <itemizedlist> + <listitem> + <para>Elvárások a modell felé</para> + </listitem> + + <listitem> + <para>A modell célkitűzései</para> + </listitem> + </itemizedlist> + + <para>Továbbá a <acronym>MAC</acronym> + használata esetén:</para> + + <itemizedlist> + <listitem> + <para>Miként osztályozzuk a célrendszeren + rendelkezésre álló + információt és + erőforrásokat</para> + </listitem> + + <listitem> + <para>Milyen információt vagy + erőforrást kell korlátoznunk és + milyen típusú korlátozást + alkalmazzunk rájuk</para> + </listitem> + + <listitem> + <para>A <acronym>MAC</acronym> melyik moduljain keresztül + tudjuk elérni céljainkat</para> + </listitem> + </itemizedlist> + + <para>Habár mindig módunkban áll + megváltoztatni és újra konfigurálni a + rendszerben található erőforrásokat + és biztonsági beállításokat, + sokszor azért igen kényelmetlen + utánanézni a rendszerben és + állítgatni az állományok, illetve + felhasználói hozzáférések + paramétereit. A beállításainkat + valamint azok konfigurációját + <emphasis>először</emphasis> külön + próbáljuk ki, mielőtt a <acronym>MAC</acronym> + alapú megvalósításunkat egy + éles rendszeren kezdjük el használni. Ennek + elhagyása szinte biztosan kudarcra ítél + minket.</para> + + <para>A különböző környezetek + igényei és elvárásai eltérnek. + Egy alaposan és minden részletében + átgondolt védelmi profil megalapozása + csökkenti a rendszer üzembehelyezése után + elvégzendő módosítások + számát. Mint olyanokra, a következő + szakaszokban kitérünk a rendszergazdák + számára elérhető modulokra, bemutatjuk a + használatukat és beállításukat + és egyes esetekben betekintést is adunk olyan + helyzetekbe, ahol a legjobban kiaknázhatóak a + képességeik. Például egy webszerver + esetén hasznos lehet a &man.mac.biba.4; és + &man.mac.bsdextended.4; házirendek alkalmazása. + Más esetekben, például egy kevés + felhasználóval működő + számítógépen, a &man.mac.partition.4; + modul lehet jó választás.</para> + + </sect1> + + <sect1 id="mac-modules"> + <title>A modulok beállítása</title> + + <para>A <acronym>MAC</acronym> rendszerben + megtalálható összes modul a korábban + leírtak szerint beépíthető a + rendszermagba vagy menet közben is betölthető + modulként. A használni kívánt + modulokat a <filename>/boot/loader.conf</filename> + állományba javasolt felvenni, így azok be + tudnak töltődni a rendszer indítása + folyamán.</para> + + <para>A soron következő szakaszokban a + különböző <acronym>MAC</acronym>-modulokat + dolgozzuk fel és foglaljuk össze a + lehetőségeiket. Továbbá a fejezet + szeretne szólni ezek alkalmazásáról + speciális helyzetekben is. Egyes modulokkal + címkézni is tudunk, aminek révén a + hozzáféréseket címkékkel + szabályozzuk, például úgy, hogy + megmondjuk <quote>mit szabad és mit nem</quote>. A + címkék beállításait + tartalmazó állomány vezérli az + állományok elérését, a + hálózati kommunikációt és + még sok minden mást. Az előző szakaszban + már megismerhettük, hogy a <option>multilabel</option> + opció segítségével hogyan + állíthatjuk be az + állományonkénti vagy + partíciónkénti + hozzáférés-vezérlést.</para> + + <para>Az egycímkés konfigurációban az + egész rendszerben csupán egyetlen címke + használatára nyílik mód, ezért + is hívják a <command>tunefs</command> + beállítását + <option>multilabel</option>nek.</para> + </sect1> + + <sect1 id="mac-seeotheruids"> + <title>A seeotheruids MAC-modul</title> + + <indexterm><primary><quote>Lássak + másokat</quote>MAC-házirend</primary></indexterm> + + <para>A modul neve: <filename>mac_seeotheruids.ko</filename></para> + + <para>A rendszermag konfigurációs + beállítása: <literal>options + MAC_SEEOTHERUIDS</literal></para> + + <para>Rendszerindítási beállítás: + <literal>mac_seeotheruids_load="YES"</literal></para> + + <para>A &man.mac.seeotheruids.4; modul a + <literal>security.bsd.see_other_uids</literal> és + <literal>security.bsd.see_other_gids</literal> + <command>sysctl</command>-változókat utánozza + és terjeszti ki. A használatához semmilyen + címkét nem kell beállítani és + transzparens módon képes + együttműködni a többi modullal.</para> + + <para>A modult betöltése után az alábbi + <command>sysctl</command>-változókkal tudjuk + vezérelni:</para> + + <itemizedlist> + <listitem> + <para>A <literal>security.mac.seeotheruids.enabled</literal> + engedélyezi a modult és az + alapértelmezett beállításokat + használja. Alapértelmezés szerint egyik + felhasználó sem láthatja a többiek + futó programjait és + csatlakozásait.</para> + </listitem> + + <listitem> + <para>A + <literal>security.mac.seeotheruids.specificgid_enabled</literal> + egy adott csoportot mentesít a házirend + szabályozásai alól. Tehát ki + akarunk vonni egy csoportot a házirend + alkalmazásából, akkor + állítsuk be a + <literal>security.mac.seeotheruids.specificgid=<replaceable>XXX</replaceable></literal> + <command>sysctl</command>-változót, ahol az + <replaceable>XXX</replaceable> a mentesíteni + kívánt csoport numerikus + azonosítója.</para> + </listitem> + + <listitem> + <para>A + <literal>security.mac.seeotheruids.primarygroup_enabled</literal> + segítségével adott elsődleges + csoportokat vonhatunk ki a házirend hatálya + alól. Ezt a változót nem + használhatjuk a + <literal>security.mac.seeotheruids.specificgid_enabled</literal> + változóval együtt.</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="mac-bsdextended"> + <title>A bsdextended MAC-modul</title> + + <indexterm> + <primary>MAC</primary> + <secondary>Állományrendszeri tűzfal + MAC-házirend</secondary> + </indexterm> + + <para>A modul neve: <filename>mac_bsdextended.ko</filename></para> + + <para>A rendszermag konfigurációs + beállítása: <literal>options + MAC_BSDEXTENDED</literal></para> + + <para>Rendszerindítási beállítás: + <literal>mac_bsdextended_load="YES"</literal></para> + + <para>A &man.mac.bsdextended.4; modul + segítségével egy + állományrendszer szintjén + működő tűzfalat tudunk kialakítani. Ez + a modul a szabványos állományrendszeri + engedély alapú modelljét bővíti + ki, lehetővé téve, hogy a rendszergazda + tűzfalszerű szabályokkal nyújtson + védelmet a könyvtárszerkezetben + található állományoknak, + segédprogramoknak és könyvtáraknak. + Amikor egy állományrendszerbeli objektumhoz + próbálunk meg hozzáférni, a modul + illeszti ezt egy szabályrendszerre, amiben vagy + talál egy hozzá tartozó szabályt vagy + kifut belőle. Ez a viselkedés a + <literal>security.mac.bsdextended.firstmatch_enabled</literal> + &man.sysctl.8; paraméter segítségével + változtatható meg. Hasonlóan a &os;-ben + található többi tűzfalmodulhoz, az + állományok elérését + definiáló szabályok a + rendszerindítás során egy &man.rc.conf.5; + változóból olvasódnak be.</para> + + <para>A szabályokat a &man.ugidfw.8; segédprogrammal + adhatjuk meg, amelynek a formai szabályai hasonlóak + az &man.ipfw.8; programéhoz. A &man.libugidfw.3; + függvénykönyvtár + felhasználásával azonban további + segédprogramok is írhatóak + hozzá.</para> + + <para>A modul használata során igyekezzünk + minél jobban odafigyelni, mert helytelen + alkalmazásával el tudjuk vágni magunkat az + állományrendszer bizonyos + részeitől.</para> + + <sect2> + <title>Példák</title> + + <para>Miután sikerült betölteni a + &man.mac.bsdextended.4; modult, a következő paranccsal + tudjuk lekérdezni a jelenleg érvényes + szabályokat:</para> + + <screen>&prompt.root; <userinput>ugidfw list</userinput> +0 slots, 0 rules</screen> + + <para>Ahogy az várható is volt, pillanatnyilag + még egyetlen szabályt sem adtunk meg. Ennek + értelmében tehát mindent el tudunk + érni. A következő paranccsal tudunk olyan + szabályt létrehozni, ahol a + <username>root</username> kivételével + elutasítjuk az összes felhasználó + hozzáférését:</para> + + <screen>&prompt.root; <userinput>ugidfw add subject not uid root new object not uid root mode n</userinput></screen> + + <para>Ez egyébként egy nagyon buta ötlet, mivel + így a felhasználók még a + legegyszerűbb parancsokat, mint például az + <command>ls</command>-t, sem tudják rájuk kiadni. + Ennél sokkal humánusabb lesz, ha:</para> + + <screen>&prompt.root; <userinput>ugidfw set 2 subject uid <replaceable>felhasználó1</replaceable> object uid <replaceable>felhasználó2</replaceable> mode n</userinput> +&prompt.root; <userinput>ugidfw set 3 subject uid <replaceable>felhasználó1</replaceable> object gid <replaceable>felhasználó2</replaceable> mode n</userinput></screen> + + <para>Ilyenkor a <username>felhasználó1</username> + nevű felhasználótól megvonjuk a + <username><replaceable>felhasználó2</replaceable></username> + felhasználói könyvtárának + összes hozzáférését, + beleértve a listázhatóságot + is.</para> + + <para>A <username>felhasználó1</username> helyett + megadhatjuk a <option>not uid + <replaceable>felhasználó2</replaceable></option> + opciót is. Ebben az esetben egy + felhasználó helyett az összes + felhasználóra ugyanaz a korlátozás + fog érvényesülni.</para> + + <note> + <para>A <username>root</username> felhasználóra + ezek a beállítások nem + vonatkoznak.</para> + </note> + + <para>Ezzel felvázoltuk, miként lehet a + &man.mac.bsdextended.4; modult felhasználni az + állományrendszerek + megerősítésére. Részletesebb + információkért járuljunk a + &man.mac.bsdextended.4; és &man.ugidfw.8; man + oldalakhoz.</para> + + </sect2> + </sect1> + + <sect1 id="mac-ifoff"> + <title>Az ifoff MAC-modul</title> + + <indexterm><primary><quote>a csatolófelületek + elfojtása</quote> + MAC-házirend</primary></indexterm> + + <para>A modul neve: <filename>mac_ifoff.ko</filename></para> + + <para>A rendszermag konfigurációs + beállítása: <literal>options + MAC_IFOFF</literal></para> + + <para>Rendszerindítási beállítás: + <literal>mac_ifoff_load="YES"</literal></para> + + <para>A &man.mac.ifoff.4; modul kizárólag abból + a célból készült, hogy + segítségével menet közben le tudjuk + tiltani bizonyos hálózati + csatolófelületek + beállítását a + rendszerindítás közben. Sem + címkékre, sem pedig a többi MAC-modulra nincs + szükségünk a használatához.</para> + + <para>A vezérlést nagyrészt az alábbi + <command>sysctl</command>-változókkal tudjuk + megoldani.</para> + + <itemizedlist> + <listitem> + <para>A <literal>security.mac.ifoff.lo_enabled</literal> + engedélyezi vagy letiltja a (&man.lo.4;) helyi loopback + felületen az összes forgalmat.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.ifoff.bpfrecv_enabled</literal> + engedélyezi vagy letiltja a Berkeley + csomagszűrő (BPF, Berkeley Packet Filter) + felületén az összes forgalmat.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.ifoff.other_enabled</literal> + engedélyezi vagy letiltja az összes többi + csatolófelületen az összes forgalmat.</para> + </listitem> + </itemizedlist> + + <para>A &man.mac.ifoff.4; modult általában olyan + környezetek monitorozásakor szokták + használni, ahol a rendszer indítása + során még nem szabad hálózati + forgalomnak keletkeznie. Vagy például a <filename + role="package">security/aide</filename> porttal együtt + használva automatikusan el tudjuk zárni a + rendszerünket, ha a védett könyvtárakban + új állományok keletkeznek vagy + megváltoznak a régiek.</para> + + </sect1> + + <sect1 id="mac-portacl"> + <title>A portacl MAC-modul</title> + + <indexterm><primary>Port + hozzáférés-vezérlési lista + MAC-házirend</primary></indexterm> + + <para>A modul neve: <filename>mac_portacl.ko</filename></para> + + <para>A rendszermag konfigurációs + beállítása: + <literal>MAC_PORTACL</literal></para> + + <para>Rendszerindítási beállítás: + <literal>mac_portacl_load="YES"</literal></para> + + <para>A &man.mac.portacl.4; modul a helyi <acronym>TCP</acronym> + és <acronym>UDP</acronym> portok kiosztásának + korlátozását teszi lehetővé + különféle + <command>sysctl</command>-változókon keresztül. + A &man.mac.portacl.4; segítségével + lényegében a nem-<username>root</username> + felhasználók is használhatnak + privilegizált, tehát 1024 alatti portokat.</para> + + <para>Miután betöltöttük, a modul az + összes csatlakozásra alkalmazza a + <acronym>MAC</acronym>-házirendet. Ezután az + alábbi változókkal hangolhatjuk a + viselkedését:</para> + + <itemizedlist> + <listitem> + <para>A <literal>security.mac.portacl.enabled</literal> + totálisan engedélyezi vagy letiltja a + házirend használatát.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.portacl.port_high</literal> + megadja azt a legmagasabb portot, amelyre még kiterjed + a &man.mac.portacl.4; védelme.</para> + </listitem> + + <listitem> + <para>Ha a <literal>security.mac.portacl.suser_exempt</literal> + változónak nem nulla értéket adunk + meg, akkor azzal a <username>root</username> + felhasználót kivonjuk a + szabályozások alól.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.portacl.rules</literal> az + érvényes mac_portacl házirendet adja meg, + lásd lentebb.</para> + </listitem> + </itemizedlist> + + <para>A <literal>security.mac.portacl.rules</literal> + változó által megadott aktuális + <literal>mac_portacl</literal> házirend formátuma a + következő: + <literal>szabály[,szabály,...]</literal>, ahol ezen + a módon tetszőleges számú + szabályt adhatunk meg. Az egyes szabályok pedig + így írhatóak fel: <literal> + <replaceable>azonosítótípus</replaceable>: + <replaceable>azonosító</replaceable>: + <replaceable>protokoll</replaceable>: + <replaceable>port</replaceable></literal>. Az + <parameter>azonosítótípus</parameter> + értéke <literal>uid</literal> vagy + <literal>gid</literal> lehet, amivel megadjuk, hogy az + <parameter>azonosító</parameter> paraméter + felhasználóra vagy csoportra hivatkozik. A + <parameter>protokoll</parameter> paraméter adja meg, hogy a + szabályt <acronym>TCP</acronym> vagy <acronym>UDP</acronym> + típusú kapcsolatra értjük, és + ennek megfelelően az értéke is + <literal>tcp</literal> vagy <literal>udp</literal> lehet. A sort + végül a <parameter>port</parameter> paraméter + zárja, ahol annak a portnak számát adjuk meg, + amelyhez az adott felhasználót vagy csoportot + akarjuk kötni.</para> + + <note> + <para>Mivel a szabályokat közvetlenül maga a + rendszermag dolgozza fel, ezért a + felhasználók illetve csoportok + azonosítója, valamint a port értéke + kizárólag numerikus érték lehet. + Tehát a szabályokban név szerint nem + hivatkozhatunk felhasználókra, csoportokra vagy + szolgáltatásokra.</para> + </note> + + <para>A &unix;-szerű rendszereken alapértelmezés + szerint az 1024 alatti portokat csak privilegizált + programok kaphatják meg és + használhatják, tehát a + <username>root</username> felhasználó neve alatt + kell futniuk. A &man.mac.portacl.4; azonban a nem + privilegizált programok számára is + lehetővé teszi, hogy elfoglalhassanak 1024 alatti + portokat, amihez viszont először le kell tiltani ezt a + szabvány &unix;-os korlátozást. Ezt + úgy érhetjük el, ha a + <literal>net.inet.ip.portrange.reservedlow</literal> és + <literal>net.inet.ip.portrange.reservedhigh</literal> + változókat egyaránt nullára + állítjuk.</para> + + <para>A &man.mac.portacl.4; működésének + részleteiről a példákon keresztül + vagy a megfelelő man oldalakból tudhatunk meg + többet.</para> + + <sect2> + <title>Példák</title> + + <para>A következő példák az + iméntieket igyekeznek jobban + megvilágítani:</para> + + <screen>&prompt.root; <userinput>sysctl security.mac.portacl.port_high=1023</userinput> +&prompt.root; <userinput>sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0</userinput></screen> + + <para>Elsőként beállítjuk, hogy a + &man.mac.portacl.4; vegye át a szabványos + privilegizált portok vezérlését + és letiltjuk a normál &unix;-os + korlátozásokat.</para> + + <screen>&prompt.root; <userinput>sysctl security.mac.portacl.suser_exempt=1</userinput></screen> + + <para>A <username>root</username> felhasználót + azonban nem akarjuk kitenni a házirendnek, ezért a + <literal>security.mac.portacl.suser_exempt</literal> + változónak egy nem nulla értéket + adunk meg. A &man.mac.portacl.4; modul most pontosan + ugyanúgy működik, mint a &unix;-szerű + rendszerek alapértelmezés szerint.</para> + + <screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:80:tcp:80</userinput></screen> + + <para>A 80-as azonosítóval rendelkező + felhasználó (aki általában a + <username>www</username>) számára + engedélyezzük a 80-as port + használatát. Így a + <username>www</username> felhasználó + anélkül képes webszervert futtatni, hogy + szüksége lenne a <username>root</username> + jogosultságaira.</para> + + <screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995</userinput></screen> + + <para>Az 1001-es azonosítóval rendelkező + felhasználónak megengedjük, hogy + elfoglalhassa a 110-es (<quote>pop3</quote>) és + 995-ös (<quote>pop3s</quote>) portokat. Ennek + köszönhetően az adott felhasználó + el tud indítani egy szervert, amihez a 110-es és + 995-ös portokon lehet kapcsolódni.</para> + + </sect2> + </sect1> + + <sect1 id="mac-partition"> + <title>A partition MAC-modul</title> + + <indexterm><primary>a futó programok + felosztását megvalósító + MAC-házirend</primary></indexterm> + + <para>A modul neve: <filename>mac_partition.ko</filename></para> + + <para>A rendszermag konfigurációs + beállítása: <literal>options + MAC_PARTITION</literal></para> + + <para>Rendszerindítási beállítás: + <literal>mac_partition_load="YES"</literal></para> + + <para>A &man.mac.partition.4; házirend a futó + programokat címkéjük szerint adott + <quote>partíciókra</quote> osztja szét. Ezt + leginkább egy speciális &man.jail.8; + megoldásként tudjuk elképzelni, noha teljesen + felesleges összehasonlítani a kettőt.</para> + + <para>Ez egy olyan modul, amelyet a &man.loader.conf.5; + állományba kell felvenni, hogy a + rendszerindítása közben be tudjon + töltődni.</para> + + <para>Ezt a házirendet többségében a + &man.setpmac.8; segédprogrammal tudjuk + állítgatni, ahogy az majd lentebb + látható lesz. A következő + <command>sysctl</command>-változó tartozik + még a modulhoz:</para> + + <itemizedlist> + <listitem> + <para>A <literal>security.mac.partition.enabled</literal> + engedélyezi a futó programok + <acronym>MAC</acronym> rendszeren keresztüli + felosztását.</para> + </listitem> + </itemizedlist> + + <para>A házirend engedélyezésével a + felhasználók csak a saját programjaikat + láthatják, illetve mindazokat, amelyek az + övékével egy partícióba + tartoznak, de a rajta kívül levő programokkal + már nem dolgozhatnak. Például, ha egy + felhasználó az <literal>insecure</literal> + (<quote>nem biztonságos</quote>) osztály tagja, + akkor ne engedjük, hogy hozzáférhessen a + <command>top</command> vagy bármilyen más olyan + parancshoz, amely további futó programokat hoz + létre.</para> + + <para>A <command>setpmac</command> használatával + tudunk címkéket készíteni a + partíciókhoz és programokat rendelni + hozzájuk:</para> + + <screen>&prompt.root; <userinput>setpmac partition/13 top</userinput></screen> + + <para>Így a <command>top</command> parancsot + hozzáadjuk az <literal>insecure</literal> osztályban + levő felhasználókhoz rendelt + címkéhez. Vegyük észre, hogy az + <literal>insecure</literal> osztályba tartozó + felhasználók által elindított + összes program a <literal>partition/13</literal> + címkét fogja használni.</para> + + <sect2> + <title>Példák</title> + + <para>A következő parancs megmutatja a +partíciók címkéit és a futó +programok listáját:</para> + + <screen>&prompt.root; <userinput>ps Zax</userinput></screen> + + <para>Ezzel paranccsal pedig megnézhetjük egy + másik felhasználó programjainak + címkéit és a felhasználó + által futtatott programokat:</para> + + <screen>&prompt.root; <userinput>ps -ZU trhodes</userinput></screen> + + <note> + <para>A felhasználók látják a + <username>root</username> címkéjével + futó programokat is, hacsak be nem töltjük a + &man.mac.seeotheruids.4; házirendet.</para> + </note> + + <para>Ezt a megoldást úgy tudnánk + igazán ravaszul felhasználni, ha + például az <filename>/etc/rc.conf</filename> + állományban letiltanánk az összes + szolgáltatást és egy olyan szkripttel + indítanánk el ezeket, amely futtatásuk + előtt beállítja hozzájuk a + megfelelő címkét.</para> + + <note> + <para>A most következő házirendek a + három alapértelmezett + címkeérték helyett egész + számokat használnak. Ezekről, valamint a + rájuk vonatkozó + korlátozásokról a megfelelő modulok + man oldalain ismerhetünk meg többet.</para> + </note> + + </sect2> + </sect1> + + <sect1 id="mac-mls"> + <title>A többszintű biztonsági MAC-modul</title> + + <indexterm><primary>a többszintű biztonsági + MAC-házirend</primary></indexterm> + + <para>A modul neve: <filename>mac_mls.ko</filename></para> + + <para>A rendszermag konfigurációs + beállítása: <literal>options + MAC_MLS</literal></para> + + <para>Rendszerindítási beállítás: + <literal>mac_mls_load="YES"</literal></para> + + <para>A &man.mac.mls.4; (MLS, Multi-Level Security) házirend + az információ szigorú + áramoltatásával vezérli a rendszerben + található alanyok és objektumok közti + elérést.</para> + + <para>A <acronym>MLS</acronym> megoldását + alkalmazó környezetekben a rekeszek mellett minden + alanyra és objektumra be kell még + állítanunk egy adott szintű + <quote>engedélyt</quote> is. Mivel az engedélyek + avagy az érzékenység szintje akár a + hatezret is meghaladhatja, egy rendszergazda számára + valódi rémálommá válthat az + egyes alanyok és objektumok precíz + beállítása. Szerencsére a + házirend erre a célra tartalmaz három + előre definiált <quote>instant</quote> + címkét.</para> + + <para>Ezek az <literal>mls/low</literal>, + <literal>mls/equal</literal> és + <literal>mls/high</literal>. Mivel a man oldal elég + részletesen kifejti ezeket, ezért itt csak + érintőlegesen foglalkozunk velük:</para> + + <itemizedlist> + <listitem> + <para>Az <literal>mls/low</literal> címke egy olyan + alacsony szintű beállítást + képvisel, amely lehetővé teszi, hogy az + összes többi objektum uralja. Tehát + bárminek is adjuk az <literal>mls/low</literal> + címkét, alacsony szintű engedéllyel + fog rendelkezni és nem lesz képes elérni + a magasabb szinten levő információt. + Ráadásul a címke a magasabb szintű + objektumok számára se fogja engedni, hogy + információt közöljön vagy adjon + át az alacsonyabb szintek felé.</para> + </listitem> + + <listitem> + <para>Az <literal>mls/equal</literal> címke olyan + objektumok esetében ajánlott, amelyeket ki + akarunk hagyni a házirend + szabályozásaiból.</para> + </listitem> + + <listitem> + <para>Az <literal>mls/high</literal> címke az + elérhető legmagasabb szintű engedélyt + ábrázolja. Az ilyen címkével + ellátott objektumok a rendszer összes többi + objektuma felett uralommal rendelkeznek, habár az + alacsonyabb szintű objektumok felé nem + képesek információt + közvetíteni.</para> + </listitem> + </itemizedlist> + + <para>Az <acronym>MLS</acronym>:</para> + + <itemizedlist> + <listitem> + <para>Egy hierarchikus védelmi szinteket + épít fel nem hierarchikus + kategóriákkal.</para> + </listitem> + + <listitem> + <para>Szabályai rögzítettek: a felsőbb + szintek olvasása és az alsóbb szintek + írása egyaránt tiltott (az alanyok csak a + saját vagy az alatta levő szinteken levő + objektumokat képesek olvasni, de a felette + állókat már nem. Ehhez hasonlóan + az alanyok a velük egyező vagy a felsőbb + szinteket tudják írni, de az alattuk + levőket már nem).</para> + </listitem> + + <listitem> + <para>Megőrzi a titkokat (megakadályozza az adatok + alkalmatlan közzétételét).</para> + </listitem> + + <listitem> + <para>Megadja mindazt az alapot, ami szükséges + ahhoz, hogy az adatokat több kényességi + szinten, párhuzamosan is kezelni tudjuk + (anélkül, hogy titkos és bizalmas + információkat szivárogtatnánk + ki).</para> + </listitem> + </itemizedlist> + + <para>A speciális szolgáltatások és + felületek beállításához az + alábbi <command>sysctl</command>-változók + használhatóak:</para> + + <itemizedlist> + <listitem> + <para>A <literal>security.mac.mls.enabled</literal> + engedélyezi vagy tiltja le az <acronym>MLS</acronym> + házirend alkalmazását.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.mls.ptys_equal</literal> + hatására látja el + <literal>mls/equal</literal> címkével az + összes &man.pty.4; eszközt + létrehozásuk során.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.mls.revocation_enabled</literal> + használható az alacsonyabb szintre + minősített objektumok + hozzáférésének + megvonására.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.mls.max_compartments</literal> + segítségével adható meg az + objektumok által használt rekeszek + szintjének maximális száma. + Lényegében a rekeszek rendszerben + engedélyezett maximuma.</para> + </listitem> + </itemizedlist> + + <para>Az <acronym>MLS</acronym> címkéit a + &man.setfmac.8; paranccsal tudjuk módosítani. Egy + ehhez hasonló paranccsal tudunk egy objektumhoz + címkét rendelni:</para> + + <screen>&prompt.root; <userinput>setfmac mls/5 <replaceable>próba</replaceable></userinput></screen> + + <para>A <filename><replaceable>próba</replaceable></filename> + állomány + <acronym>MLS</acronym>-címkéjét az + alábbi paranccsal kérhetjük le:</para> + + <screen>&prompt.root; <userinput>getfmac <replaceable>próba</replaceable></userinput></screen> + + <para>Ezzel össze is foglaltuk az <acronym>MLS</acronym> + házirend lehetőségeit. Az eddigiket úgy + is megoldhatjuk, hogy létrehozunk egy központi + házirendet az <filename class="directory">/etc</filename> + könyvtárban, amelyben megadjuk az + <acronym>MLS</acronym> házirendhez tartozó + információkat, majd átadjuk a + <command>setfmac</command> parancsnak. Erre a módszerre + majd a házirendek bemutatása után kerül + sor.</para> + + <sect2> + <title>A kényesség + megállapítása</title> + + <para>A többszintű biztonsági házirend + használatával a rendszergazda a kényes + információk áramlásának + irányát tudja befolyásolni. A + megoldás <quote>felfele nem lehet olvasni, lefele nem + lehet írni</quote> jellege folytán alapból + mindent a legalacsonyabb szintre helyez. Így + tehát kezdetben minden elérhető, és a + rendszergazdának lassanként ebből az + állapotból elindulva kell behangolnia az erre + alapozó védelmi rendszert az + információ bizalmasságának + megfelelően.</para> + + <para>A fentebb említett három alapvető + címke mellett a rendszergazdának + valószínűleg szüksége lesz a + felhasználók csoportosítására + és a csoportok közti + információáramlás + szabályozására. A információ + bizalmasságának szintjeit minden bizonnyal + könnyebb szavakkal beazonosítani, + például <literal>Confidential</literal> + (bizalmas), <literal>Secret</literal> (titkos) vagy <literal>Top + Secret</literal> (szigorúan bizalmas). Bizonyos + helyzetekben elég csak a futó projekteknek + megfelelően kialakítani csoportokat. Az + osztályozás konkrét + módszerétől függetlenül azonban + mindig elmondható, hogy előzetes tervezés + nélkül sose állítsunk össze ilyen + fajsúlyú házirendet.</para> + + <para>Ezt a biztonsági modult például webes + üzletek esetén érdemes használnunk, ahol + egy állományszerver tárolja a cég + fontos adatait és pénzügyi + információit. Viszont egy két vagy + három felhasználóval üzemelő + munkaállomás esetében szinte teljesen + felesleges gondolkodni rajta.</para> + </sect2> + </sect1> + + <sect1 id="mac-biba"> + <title>A Biba MAC-modul</title> + + <indexterm><primary>a Biba sértetlenségi + MAC-házirend</primary></indexterm> + + <para>A modul neve: <filename>mac_biba.ko</filename></para> + + <para>A rendszermag konfigurációs + beállítása: <literal>options + MAC_BIBA</literal></para> + + <para>Rendszerindítási beállítás: + <literal>mac_biba_load="YES"</literal></para> + + <para>A &man.mac.biba.4; modul a <acronym>MAC</acronym> Biba + elnevezésű házirendjét tölti be. + Ez leginkább az <acronym>MLS</acronym> házirendhez + hasonlít, azzal a kivétellel, hogy az + információ áramoltatására + vonatkozó szabályok némileg visszafelé + működnek. Tehát míg az + <acronym>MLS</acronym> házirend a kényes + információ áramlását + felfelé nem engedi, addig ez a lefelé + irányuló áramlást + állítja meg. Emiatt ez a szakasz + tulajdonképpen mind a két házirendre + érvényesül.</para> + + <para>A Biba alkalmazása során minden alany és + objektum egy <quote>sértetlenséget</quote> + jelképező címkét visel. Ezek a + címkék hierarchikus osztályokból, nem + peidg hiearchikus összetevőkből származnak. + Egy objektum vagy alany sértetlensége a + besorolásával növekszik.</para> + + <para>A modul a <literal>biba/low</literal>, + <literal>biba/equal</literal> és + <literal>biba/high</literal> címkéket ismeri, vagyis + bővebben:</para> + + <itemizedlist> + <listitem> + <para>A <literal>biba/low</literal> címke tekinthető + az alanyok és objektumok legkisebb + sértetlenségének. Ha + beállítjuk egy objektumra vagy alanyra, akkor + ezzel megakadályozzuk, hogy nagyobb + sértetlenségű objektumokat vagy alanyokat + tudjanak írni. Ettől függetlenül + azonban még képesek olvasni ezeket.</para> + </listitem> + + <listitem> + <para>A <literal>biba/equal</literal> címke + használata kizárólag olyan objektumok + esetében javasolt, amelyeket ki akarunk vonni a + házirend alól.</para> + </listitem> + + <listitem> + <para>A <literal>biba/high</literal> címke megengedi az + alacsonyabb szinteken levő objektumokat + írását, de az olvasását + viszont már nem. Ezt a címkét olyan + objektumra érdemes ragasztani, amelyek hatással + vannak az egész rendszer + sértetlenségére.</para> + </listitem> + </itemizedlist> + + <para>A Biba:</para> + + <itemizedlist> + <listitem> + <para>Hierarchikus sértetlenségi szinteket + épít fel nem hiearchikus + sértetlenségi kategóriákkal + kiegészítve.</para> + </listitem> + + <listitem> + <para>Szabályai rögzítettek: az felsőbb + szintek írása és az alsóbb szintek + olvasása egyaránt tilos (pontosan az + <acronym>MLS</acronym> ellentéte). Egy alany csak a + saját vagy az alatta álló szinteken + szereplő objektumokat tudja írni. Ehhez + hasonló módon egy alany csak a saját vagy + az afeletti szinten található objektumokat + képes olvasni.</para> + </listitem> + + <listitem> + <para>Az adatok sértetlenségét + biztosítja (megakadályozza az alkalmatlan + módosításukat)</para> + </listitem> + + <listitem> + <para>Sértetlenségi szinteket határoz meg + (szemben az MLS kényességi szintjeivel).</para> + </listitem> + </itemizedlist> + + <para>Az alábbi + <command>sysctl</command>-változókkal + vezérlhetjük a Biba házirend + működését:</para> + + <itemizedlist> + <listitem> + <para>A <literal>security.mac.biba.enabled</literal> + használható a célrendszeren a Biba + házirend engedélyezére vagy + letiltására.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.biba.ptys_equal</literal> + segítségével kapcsolhatjuk ki a Biba + házirend alkalmazását a &man.pty.4; + eszközökön.</para> + </listitem> + + <listitem> + <para>A <literal>security.mac.biba.revocation_enabled</literal> + hatására visszavonódik az objektumok + hozzáférése, ha az rájuk + vonatkozó címke megváltozik.</para> + </listitem> + </itemizedlist> + + <para>A rendszer objektumain a Biba házirendet a + <command>setfmac</command> és <command>getfmac</command> + paranccsal állíthatjuk be:</para> + + <screen>&prompt.root; <userinput>setfmac biba/low <replaceable>próba</replaceable></userinput> +&prompt.root; <userinput>getfmac <replaceable>próba</replaceable></userinput> +<replaceable>próba</replaceable>: biba/low</screen> + + <sect2> + <title>A sértetlenség + megállapítása</title> + + <para>A sértetlenség a + kényességtől eltérően azt igyekszik + szavatolni, hogy az információt + illetéktelenek nem módosítják. Ez + egyaránt vonatkozik az alanyok, objektumok és a + kettő között átadott adatokra. + Gondoskodik róla, hogy a felhasználók csak + olyan információkat változtathathassanak + meg, sőt csak olyat érhessenek el, amire + ténylegesen szükségük van.</para> + + <para>A &man.mac.biba.4; biztonsági modul megengedi a + rendszergazda számára, hogy megmondja milyen + állományokat és programokat láthat + vagy hívhat meg a felhasználó vagy + felhasználók egy csoportja, miközben + biztosítja, hogy az állományok és a + programok nincsenek kitéve semmilyen + fenyegetésnek, és a rendszer az adott + felhasználóban vagy felhasználói + csoportban megbízik.</para> + + <para>A kezdeti tervezési fázis során a + rendszergazdának fel kell készülnie arra, + hogy a felhasználókat osztályokra, + szintekre és területekre kell osztania. A + felhasználók nem csak adatokhoz, hanem + programokhoz és segédprogramokhoz sem lesznek + képesek hozzáférni, mind az + indításuk előtt és után. A + modul aktiválás után a rendszer + alapból rögtön a legmagasabb + címkét kapja meg, és teljesen a + rendszergazdára hárul, hogy a + felhasználókhoz beállítsa a + különféle osztályokat és + szinteket. A fentebb leírt engedélyszintek + helyett akár témák alapján is + tervezhetünk. Például + kizárólag csak a fejlesztők + számára engedjük meg a + forráskód módosítását, + a forráskód lefordítását + és a többi fejlesztőeszköz + használatát. Eközben a többi + felhasználót felosztjuk további + csoportokba, például tesztelőkre és + tervezőkre, vagy meghagyjuk ezeket átlagos + felhasználóknak, akik csak olvasási joggal + rendelkeznek.</para> + + <para>A megvalósított biztonsági modell + természetéből fakadóan egy + kevésbé sértetlenebb alany nem + írhatja a sokkal sértetlenebb alanyokat, a sokkal + sértetlenebb alanyok pedig nem érhetik el vagy + olvashatják a kevésbé sértetlen + objektumokat. A lehető legkisebb osztályú + címke beállításával + gyakorlatilag elérhetetlenné teszük az + alanyok számára. A modult + valószínűleg egy korlátozott + webszerver, fejlesztői- és tesztgépek vagy + forráskód tárolására + szánt környezetben érdemes bevetni. + Annál esélytelenebb a használata viszont + egy munkaállomás, útválasztó + vagy hálózati tűzfal esetében.</para> + + </sect2> + </sect1> + + <sect1 id="mac-lomac"> + <title>A LOMAC MAC-modul</title> + + <indexterm><primary>a LOMAC + MAC-házirend</primary></indexterm> + + <para>A modul neve: <filename>mac_lomac.ko</filename></para> + + <para>A rendszermag konfigurációs + beállítása: <literal>options + MAC_LOMAC</literal></para> + + <para>Rendszerindítás beállítás: + <literal>mac_lomac_load="YES"</literal></para> + + <para>Eltérően a <acronym>MAC</acronym> Biba + házirendjétől, a &man.mac.lomac.4; egyedül + csak azután engedi elérni az kevésbé + sértetlenebb objektumokat, miután + csökkentjük a sértetlenség szintjét + és ezzel betartjuk a sértetlenségre + vonatkozó szabályokat.</para> + + <para>A gyenge vízjeles sértetlenségi + házirend <acronym>MAC</acronym> alapú + változatát nem szabad összetéveszteni a + korábbi &man.lomac.4; implementációval, amely + majdnem ugyanúgy működik, mint a Biba, azzal az a + kivétellel, hogy a lebegő címkékkel + támogatjuk az alanyok lefokozását egy + kisegítő osztály rekeszén + keresztül. Ez a másodlagos rekesz + <literal>[<replaceable>kisegítő_osztály</replaceable>]</literal> + alakú. Tehát amikor egy kisegítő + osztállyal adjuk meg a lomac házirendet, valahogy + így néz ki: <literal>lomac/10[2]</literal>, ahol a + kettes (2) szám ez a kisegítésre + használt osztály.</para> + + <para>A <acronym>MAC</acronym> LOMAC házirendje az + összes rendszerszintű objektum esetében + jelenlevő sértetlenségi + címkézésen alapszik, megengedve az alanyok + számára, hogy az kevésbé + sértetlen objektumokat olvasni tudják, majd a + címke leminősítésével az alany + meg tudja akadályozni a sokkal sértetlenebbnek + ítélt objektumok jövőbeni + írását. Ez az a fentebb tárgyalt + <literal>[<replaceable>kisegítő_osztály</replaceable>]</literal> + opció, ezért ez a modul a + Bibáénál több kompatibilitást + és kevesebb kezdeti beállítást + igényel.</para> + + <sect2> + <title>Példák</title> + + <para>Hasonlóan a Biba és <acronym>MLS</acronym> + házirendeknél megszokottakhoz, a + <command>setfmac</command> és <command>setpmac</command> + segédprogramok használhatóak a + címkék + hozzárendeléséhez:</para> + + <screen>&prompt.root; <userinput>setfmac /usr/home/trhodes lomac/high[low]</userinput> +&prompt.root; <userinput>getfmac /usr/home/trhodes</userinput> lomac/high[low]</screen> + + <para>Itt a kisegítő osztály a + <literal>low</literal>. Ezt csak a LOMAC + <acronym>MAC</acronym>-házirendnél adhatjuk + meg.</para> + + </sect2> + </sect1> + + <sect1 id="mac-implementing"> + <title>A Nagios elzárása a MAC rendszerrel</title> + + <indexterm><primary>a Nagios elzárása a MAC + rendszerrel</primary></indexterm> + + <para>A most következő bemutatóban a + <acronym>MAC</acronym> moduljainak és a megfelelően + beállított házirendek + használatával fogunk kialakítani egy + biztonságos környezetet. Ne feledjük azonban, + hogy ez csupán egy ártatlan próba és + nem pedig a mindenki biztonsági aggályait + kielégítő legvégső megoldás. + Ha egy házirendet vakon építünk fel + és nem értjük meg a + működését, az soha nem válik + hasznunkra, és egy éles helyzetben + katasztrofális hatással járhat.</para> + + <para>A folyamat megkezdése előtt be kell + állítanunk a <literal>multilabel</literal> + opciót mindegyik állományrendszerre, a + fejezet elején leírtaknak megfelelően. Ha ezt + a lépést kihagyjuk, akkor hibákat kapunk. + Továbbá még az előkészület + részeként ne felejtsünk el gondoskodni a + <filename role="package">net-mngt/nagios-plugins</filename>, + <filename role="package">net-mngt/nagios</filename> és + <filename role="package">www/apache13</filename> portok + telepítéséről, + beállításáról és + megfelelő működéséről + sem.</para> + + <sect2> + <title>A nem megbízható felhasználók + osztályának létrehozása</title> + + <para>Az eljárást kezdjük az alábbi + (insecure) felhasználói osztály + hozzáadásával az + <filename>/etc/login.conf</filename> + állományban:</para> + + <programlisting>insecure:\ +:copyright=/etc/COPYRIGHT:\ +:welcome=/etc/motd:\ +:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ +:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin +:manpath=/usr/share/man /usr/local/man:\ +:nologin=/usr/sbin/nologin:\ +:cputime=1h30m:\ +:datasize=8M:\ +:vmemoryuse=100M:\ +:stacksize=2M:\ +:memorylocked=4M:\ +:memoryuse=8M:\ +:filesize=8M:\ +:coredumpsize=8M:\ +:openfiles=24:\ +:maxproc=32:\ +:priority=0:\ +:requirehome:\ +:passwordtime=91d:\ +:umask=022:\ +:ignoretime@:\ +:label=biba/10(10-10):</programlisting> + + <para>Valamint egészítsük ki az + alapértelmezett (default) felhasználói + osztályt a következő sorral:</para> + + <programlisting>:label=biba/high:</programlisting> + + <para>Ahogy ezzel elkészültünk, az + hozzá tartozó adatbázis újbóli + legyártásához a következő + parancsot kell kiadnunk:</para> + + <screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen> + + </sect2> + + <sect2> + <title>A rendszerindítással kapcsolatos + beállítások</title> + + <para>Még ne indítsuk újra a + számítógépet, csupán a + szükséges modulok betöltéséhez + bővítsük ki a + <filename>/boot/loader.conf</filename> állományt + az alábbi sorokkal:</para> + + <programlisting>mac_biba_load="YES" +mac_seeotheruids_load="YES"</programlisting> + + </sect2> + + <sect2> + <title>A felhasználók + beállítása</title> + + <para>Soroljuk be a <username>root</username> + felhasználót a <literal>default</literal> + osztályba:</para> + + <screen>&prompt.root; <userinput>pw usermod root -L default</userinput></screen> + + <para>Az összes <username>root</username> + felhasználón kívüli + hozzáférésnek vagy + rendszerfelhasználónak most kelleni fog egy + bejelentkezési osztály. A bejelentkezési + osztályra egyébként is szükség + lesz, mert ennek hiányában a + felhasználók még az olyan egyszerű + parancsokat sem tudják kiadni, mint például + a &man.vi.1;. A következő <command>sh</command> + szkript nekünk erre pontosan megfelel:</para> + + <screen>&prompt.root; <userinput>for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \</userinput> + <userinput>/etc/passwd`; do pw usermod $x -L default; done;</userinput></screen> + + <para>Helyezzük át a <username>nagios</username> + és <username>www</username> felhasználókat az + insecure osztályba:</para> + + <screen>&prompt.root; <userinput>pw usermod nagios -L insecure</userinput></screen> + <screen>&prompt.root; <userinput>pw usermod www -L insecure</userinput></screen> + + </sect2> + + <sect2> + <title>A <filename>contexts</filename> állomány + létrehozása</title> + + <para>Most csinálnunk kell egy + <filename>contexts</filename> állományt. Ebben + példában az + <filename>/etc/policy.contexts</filename> + állományt használjuk.</para> + + <programlisting># Ez a rendszer alapértelmezett BIBA házirendje. + +# Rendszer: +/var/run biba/equal +/var/run/* biba/equal + +/dev biba/equal +/dev/* biba/equal + +/var biba/equal +/var/spool biba/equal +/var/spool/* biba/equal + +/var/log biba/equal +/var/log/* biba/equal + +/tmp biba/equal +/tmp/* biba/equal +/var/tmp biba/equal +/var/tmp/* biba/equal + +/var/spool/mqueue biba/equal +/var/spool/clientmqueue biba/equal + +# Nagios: +/usr/local/etc/nagios +/usr/local/etc/nagios/* biba/10 + +/var/spool/nagios biba/10 +/var/spool/nagios/* biba/10 + +# Apache: +/usr/local/etc/apache biba/10 +/usr/local/etc/apache/* biba/10</programlisting> + + <para>Ezzel a házirenddel az információ + áramlását szabályozzuk. Ebben a + konkrét konfigurációban a + felhasználók, a <username>root</username> + és társai, nem férhetnek hozzá a + <application>Nagios</application>hoz. A + <application>Nagios</application> + beállításait tároló + állományok és a neve alatt futó + programok így teljesen különválnak + vagyis elzáródnak a rendszer többi + részétől.</para> + + <para>Ez az iménti állomány a + következő parancs hatására kerül be + a rendszerünkbe:</para> + + <screen>&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput> +&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput></screen> + + <note> + <para>A fenti állományrendszer + felépítése a környezettől + függően eltérhet, habár ezt minden + egyes állományrendszeren le kell + futtatni.</para> + </note> + + <para>Az <filename>/etc/mac.conf</filename> + állományt törzsét a + következőképpen kell még + átírnunk:</para> + + <programlisting>default_labels file ?biba +default_labels ifnet ?biba +default_labels process ?biba +default_labels socket ?biba</programlisting> + + </sect2> + + <sect2> + <title>A hálózat engedélyezése</title> + + <para>Tegyük hozzá a következő sort az + <filename>/boot/loader.conf</filename> + állományhoz:</para> + + <programlisting>security.mac.biba.trust_all_interfaces=1</programlisting> + + <para>Ezt az alábbi beállítást pedig + szúrjuk be az <filename>rc.conf</filename> + állományba a hálózati kártya + konfigurációjához. Amennyiben az + internetet <acronym>DHCP</acronym> + segítségével érjük el, ezt a + beállítást manuálisan kell megtenni + minden rendszerindítás alkalmával:</para> + + <programlisting>maclabel biba/equal</programlisting> + + </sect2> + + <sect2> + <title>A konfiguráció + kipróbálása</title> + + <indexterm><primary>a MAC beállításainak + kipróbálása</primary></indexterm> + + <para>Gondoskodjunk róla, hogy a webszerver és a + <application>Nagios</application> nem fog elindulni a rendszer + indításakor, majd indítsuk újra a + gépet. Ezenkívül még + ellenőrizzük, hogy a <username>root</username> ne + tudjon hozzáférni a + <application>Nagios</application> + beállításait tartalmazó + könyvtárhoz. Ha a <username>root</username> + képes kiadni egy &man.ls.1; parancsot a + <filename>/var/spool/nagios</filename> könyvtárra, + akkor valamit elronthattunk. Normális esetben egy + <errorname>permission denied</errorname> üzenetet kell + kapnunk.</para> + + <para>Ha minden jónak tűnik, akkor a + <application>Nagios</application>, + <application>Apache</application> és + <application>Sendmail</application> most már + elindítható a biztonsági házirend + szabályozásai szerint. Ezt a következő + parancsokkal tehetjük meg:</para> + + <screen>&prompt.root; <userinput>cd /etc/mail && make stop && \ +setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \ +setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart</userinput></screen> + + <para>Kétszer is ellenőrizzük, hogy minden a + megfelelő módon viselkedik-e. Ha valamilyen + furcsaságot tapasztalunk, akkor nézzük + át a naplókat vagy a hibaüzeneteket. A + &man.sysctl.8; használatával tiltsuk le a + &man.mac.biba.4; biztonsági modult és + próbáljunk meg mindent a szokott módon + újraindítani.</para> + + <note> + <para>A <username>root</username> felhasználó + különösebb aggodalom nélkül + képes megváltoztatni a biztonsági rend + betartatását és átírni a + konfigurációs állományokat. Egy + frissen indított parancsértelmező + számára ezzel a paranccsal tudjuk + csökkenteni a biztonsági besorolást:</para> + + <screen>&prompt.root; <userinput>setpmac biba/10 csh</userinput></screen> + + <para>Ennek kivédésére a + felhasználókat a &man.login.conf.5; + beállításaival le kell korlátozni. + Ha a &man.setpmac.8; megpróbál a rekesz + határain túl futtatni egy parancsot, akkor + hibát ad vissza és a parancs nem fut le. Ebben + az esetben a <username>root</username> + felhasználót tegyük a + <literal>biba/high(high-high)</literal> értékek + közé.</para> + </note> + + </sect2> + </sect1> + + <sect1 id="mac-userlocked"> + <title>A felhasználók + korlátozása</title> + + <para>Ebben a példában egy viszonylag kicsi, + nagyjából mindössze ötven + felhasználós, adattárolásra + használatos rendszert veszünk alapul. A + felhasználók rendelkezhetnek bizonyos + bejelentkezési tulajdonságokkal, és nem csak + adatokat tudnak tárolni, hanem az + erőforrásokhoz is hozzá tudnak + férni.</para> + + <para>Itt most a &man.mac.bsdextended.4; és a + &man.mac.seeotheruids.4; modulokat vetjük be együttesen, + és nem csak a rendszer objektumainak + elérését tudjuk megakadályozni, hanem + az egyes felhasználók futó programjait is + elrejtjük.</para> + + <para>A műveletet kezdjük azzal, hogy a + <filename>/boot/loader.conf</filename> állományt + kibővítjük a következő + módon:</para> + + <programlisting>mac_seeotheruids_load="YES"</programlisting> + + <para>A &man.mac.bsdextended.4; biztonsági modul az + alábbi + <filename>rc.conf</filename>-változóval + hozható működésbe:</para> + + <programlisting>ugidfw_enable="YES"</programlisting> + + <para>A hozzá tartozó alapértelmezett + szabálykészlet az + <filename>/etc/rc.bsdextended</filename> állományban + tárolódik, amely pedig a rendszer + indítása során töltődik be. Ezeket + némileg módosítanunk kell majd. Mivel a + példában szereplő + számítógép csak a + felhasználók kiszolgálását + hivatott ellátni, az utolsó kettő + kivételével mindent hagyhatunk megjegyzésben. + Így kikényszerítjük + felhasználók által birtokolt + rendszerobjektumok alapértelmezés szerinti + betöltését.</para> + + <para>Vegyük fel a szükséges + felhasználókat a + számítógépre és indítsuk + újra. Tesztelési célból + próbáljunk meg különböző + felhasználókként bejelentkezni két + konzolon. Futassuk le a <command>ps aux</command> parancsot, + és így meg tudjuk figyelni, hogy mennyire + látjuk a többi felhasználót. Amikor + megpróbáljuk kiadni a &man.ls.1; parancsot a + többiek felhasználói könyvtáraira, + akkor hibát kell kapnunk.</para> + + <para>Ne próbálgassunk a <username>root</username> + felhasználóval, hacsak a megfelelő + <command>sysctl</command> változókban be nem + állítottuk az ő + hozzáférésének + blokkolását is.</para> + + <note> + <para>Amikor felveszük egy felhasználót a + rendszerbe, a hozzá tartozó &man.mac.bsdextended.4; + szabály nem fog szerepelni a szabályrendszerben. + A szabályrendszer gyors frissítését + úgy tudjuk megoldani, ha a &man.kldunload.8; + használatával egyszerűen + eltávolítjuk a biztonsági modult a + memóriából és + újratöltjük a &man.kldload.8; + paranccsal.</para> + </note> + + </sect1> + + <sect1 id="mac-troubleshoot"> + <title>A hibák elhárítása a MAC + rendszerben</title> + + <indexterm><primary>MAC + hibaelhárítás</primary></indexterm> + + <para>A fejlesztés fázisában bizonyos + normál konfigurációval rendelkező + felhasználók gondokat jeleztek. Ezeket foglaljuk + most itt össze:</para> + + <sect2> + <title>A <option>multilabel</option> + beállítás nem adható meg a + <filename>/</filename> állományrendszerre</title> + + <para>A <option>multilabel</option> beállítás + nem marad meg a rendszerindító + (<filename>/</filename>) partíciómon!</para> + + <para>A tapasztalatok szerint körülbelül minden + ötvenedik felhasználó szembesül ezzel a + problémával, és mi is találkozunk + vele a kezdeti konfigurációk + kialakítása során. Ennek az + úgynevezett <quote>hibának</quote> a + behatóbb tanulmányozása során arra + jutottunk, hogy ez többnyire vagy a hibás + dokumentálásból vagy a + dokumentáció + félreértelmezéséből ered. + Független attól, hogy ez mitől is + következett be, a következő lépések + megtételével orvosolhatjuk:</para> + + <procedure> + <step> + <para>Nyissuk meg az <filename>/etc/fstab</filename> + állományt és adjuk meg a + rendszerindító partíciónak az + <option>ro</option>, vagyis az + írásvédett (read-only) + beállítást.</para> + </step> + + <step> + <para>Indítsuk újra a gépet + egyfelhasználós módban.</para> + </step> + + <step> + <para>A <command>tunefs</command> <option>-l enable</option> + parancsot futtassuk le a <filename>/</filename> + állományrendszeren.</para> + </step> + + <step> + <para>Indítsuk újra a rendszert normál + módban.</para> + </step> + + <step> + <para>Adjuk ki a <command>mount</command> + <option>-urw</option> <filename>/</filename> parancsot, majd + az <filename>/etc/fstab</filename> állományban + írjuk át a <option>ro</option> + beállítást az <option>rw</option> + értékre és megint indítsuk + újra a rendszert.</para> + </step> + + <step> + <para>Alaposan nézzük át a + <command>mount</command> parancs kimenetét és + győzödjünk meg róla, hogy a + <option>multilabel</option> opció valóban + beállítódott a + rendszerindító + állományrendszerre.</para> + </step> + </procedure> + + </sect2> + + <sect2> + <title>A <acronym>MAC</acronym> után nem lehet + indítani az X11 szervert</title> + + <para>Nem indul az X, miután <acronym>MAC</acronym>-kel + kialakítottunk egy biztonságos + környezetet!</para> + + <para>Ezt vagy a <acronym>MAC</acronym> + <literal>partition</literal> házirendje okozza, vagy az + egyik címkékeket használó + házirend helytelen beállítása. A + következő módon deríthetjük ki az + okát:</para> + + <procedure> + <step> + <para>Figyelmesen olvassuk el a hibaüzenetet: ha a + felhasználó az <literal>insecure</literal> + osztály tagja, akkor a <literal>partition</literal> + házirend lesz a bűnös. + Próbáljuk meg a felhasználót + visszatenni a <literal>default</literal> osztályba + és a <command>cap_mkdb</command> paranccsal + újragenerálni az adatbázist. Ha ez nem + segít a problémán, akkor haladjunk + tovább.</para> + </step> + + <step> + <para>Alaposan ellenőrizzük a + címkékhez tartozó házirendeket. + Vizsgáljuk meg, hogy a kérdeses + felhasználó esetében a + házirendet és az X11 alkalmazást, + valamint a <filename class="directory">/dev</filename> + eszközöket tényleg jól + állítottuk be.</para> + </step> + + <step> + <para>Ha az iméntiek egyik sem oldja meg gondunkat, + küldjük el a hibaüzenetet és a + környezetünk rövid + leírását a a <ulink + url="http://www.TrustedBSD.org">TrustedBSD</ulink> + honlapjáról elérhető TrustedBSD + levelezési lista vagy a &a.questions; + címére.</para> + </step> + </procedure> + + </sect2> + + <sect2> + <title>Hiba: &man..secure.path.3; cannot stat + <filename>.login_conf</filename></title> + + <para>Amikor a rendszerben megpróbálok a + <username>root</username> felhasználóról + átváltani egy másik + felhasználóra, a <errorname>_secure_path: unable + to state .login_conf</errorname> hibaüzenet jelenik + meg.</para> + + <para>Ez az üzenet általában akkor + látható, amikor a felhasználó + nagyobb értékű címkével + rendelkezik annál, mint akivé válni akar. + Például vegyük a <username>joska</username> + nevű felhasználót a rendszerben, aki az alap + <literal>biba/low</literal> címkével rendelkezik. + A <username>root</username> felhasználó, akinek + <literal>biba/high</literal> címkéje van, nem + láthatja <username>joska</username> + felhasználói könyvtárát. Ez + attól függetlenül megtörténik, hogy + a <username>root</username> a <command>su</command> paranccsal + váltott át a <username>joska</username> nevű + felhasználóra vagy sem. Egy ilyen helyzetben a + Biba sértetlenségi modellje nem fogja engedni a + <username>root</username> felhasználóra + számára, hogy láthassa a + kevésbé sértetlen objektumokat.</para> + + </sect2> + + <sect2> + <title>A <username>root</username> felhasználó nem + megy!</title> + + <para>A rendszer normál vagy egyfelhasználós + módban sem ismeri fel a <username>root</username> + felhasználót. A <command>whoami</command> parancs + 0 (nullát) ad vissza és a <command>su</command> + parancs pedig annyit mond: <errorname>who are you?</errorname> + (<errorname>ki vagy?</errorname>). Mi + történhetett?</para> + + <para>Ez csak olyankor történhet, ha a + címkézési házirendet nem + engedélyezzük, vagy a &man.sysctl.8; + használatával, vagy pedig a modul + eltávolításával. Ha a + házirendet letiltjuk vagy ideiglenesen letiltódik, + akkor a bejelentkezési tulajdonságokat + tároló adatbázist a <option>label</option> + beállítás + eltávolításával kell + újrakonfigurálni. A + <filename>login.conf</filename> állományból + ne felejtsük el kivenni az összes + <option>label</option> beállítást és + a <command>cap_mkdb</command> paranccsal + újragenerálni az adatbázist.</para> + + <para>Ilyen akkor is előfordulhat, amikor a házirend + valamilyen módon korlátozza a + <filename>master.passwd</filename> állomány vagy + adatbázis elérhetőségét. Ezt + általában az okozza, hogy a rendszergazda az + állományt olyan címke alatt + módosítja, amely ütközik a rendszerben + alkalmazott általános házirenddel. Ebben + az esetekben a rendszer próbálja meg beolvasni a + felhasználók adatait, azonban mivel közben az + állomány új címkét + örökölt, nem fér hozzá. Ha a + &man.sysctl.8; paranccsal letiltjuk a házirendet, minden + vissza fog térni a rendes + kerékvágásba.</para> + + </sect2> + </sect1> +</chapter> |