aboutsummaryrefslogtreecommitdiff
path: root/hu_HU.ISO8859-2/books/handbook/mac/chapter.xml
diff options
context:
space:
mode:
Diffstat (limited to 'hu_HU.ISO8859-2/books/handbook/mac/chapter.xml')
-rw-r--r--hu_HU.ISO8859-2/books/handbook/mac/chapter.xml2959
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;&nbsp;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;&nbsp;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 &gt;= 1001) &amp;&amp; ($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 &amp;&amp; make stop &amp;&amp; \
+setpmac biba/equal make start &amp;&amp; setpmac biba/10\(10-10\) apachectl start &amp;&amp; \
+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>