2947 lines
93 KiB
XML
2947 lines
93 KiB
XML
<?xml version="1.0" encoding="iso-8859-2"?>
|
|
<!--
|
|
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 xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="mac" xml:lang="hu">
|
|
<info><title>Kötelező
|
|
hozzáférés-vezérlés (MAC)</title>
|
|
<authorgroup>
|
|
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Írta: </contrib></author>
|
|
</authorgroup>
|
|
</info>
|
|
|
|
|
|
|
|
<sect1 xml: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 xml: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 xml: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 xml: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 <systemitem class="username">root</systemitem> 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
|
|
<systemitem class="username">root</systemitem> felhasználót is
|
|
korlátozza. Az objektumok feletti
|
|
irányítás ilyenkor a csoportra száll,
|
|
de a <systemitem class="username">root</systemitem> 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 próba</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 próba</userinput>
|
|
<errorname>Permission denied</errorname>
|
|
&prompt.root; <userinput>setpmac biba/low setfmac biba/high próba</userinput>
|
|
&prompt.root; <userinput>getfmac próba</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>összehasonlítás:rekesz+rekesz</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 xml: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 xml: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 xml: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=XXX</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 xml: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
|
|
<systemitem class="username">root</systemitem> 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 felhasználó1 object uid felhasználó2 mode n</userinput>
|
|
&prompt.root; <userinput>ugidfw set 3 subject uid felhasználó1 object gid felhasználó2 mode n</userinput></screen>
|
|
|
|
<para>Ilyenkor a <systemitem class="username">felhasználó1</systemitem>
|
|
nevű felhasználótól megvonjuk a
|
|
<systemitem class="username"><replaceable>felhasználó2</replaceable></systemitem>
|
|
felhasználói könyvtárának
|
|
összes hozzáférését,
|
|
beleértve a listázhatóságot
|
|
is.</para>
|
|
|
|
<para>A <systemitem class="username">felhasználó1</systemitem> 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 <systemitem class="username">root</systemitem> 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 xml: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 <package>security/aide</package> 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 xml: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-<systemitem class="username">root</systemitem>
|
|
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 <systemitem class="username">root</systemitem>
|
|
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>
|
|
azonosítótípus:
|
|
azonosító:
|
|
protokoll:
|
|
port</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
|
|
<systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem> 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
|
|
<systemitem class="username">www</systemitem>) számára
|
|
engedélyezzük a 80-as port
|
|
használatát. Így a
|
|
<systemitem class="username">www</systemitem> felhasználó
|
|
anélkül képes webszervert futtatni, hogy
|
|
szüksége lenne a <systemitem class="username">root</systemitem>
|
|
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 xml: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
|
|
<systemitem class="username">root</systemitem> 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 xml: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 próba</userinput></screen>
|
|
|
|
<para>A <filename>próba</filename>
|
|
állomány
|
|
<acronym>MLS</acronym>-címkéjét az
|
|
alábbi paranccsal kérhetjük le:</para>
|
|
|
|
<screen>&prompt.root; <userinput>getfmac próba</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>/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 xml: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 próba</userinput>
|
|
&prompt.root; <userinput>getfmac próba</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 xml: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>[kisegítő_osztály]</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>[kisegítő_osztály]</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 xml: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
|
|
<package>net-mngt/nagios-plugins</package>,
|
|
<package>net-mngt/nagios</package> és
|
|
<package>www/apache13</package> 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 <systemitem class="username">root</systemitem>
|
|
felhasználót a <literal>default</literal>
|
|
osztályba:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pw usermod root -L default</userinput></screen>
|
|
|
|
<para>Az összes <systemitem class="username">root</systemitem>
|
|
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 <systemitem class="username">nagios</systemitem>
|
|
és <systemitem class="username">www</systemitem> 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 <systemitem class="username">root</systemitem>
|
|
é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 <systemitem class="username">root</systemitem> ne
|
|
tudjon hozzáférni a
|
|
<application>Nagios</application>
|
|
beállításait tartalmazó
|
|
könyvtárhoz. Ha a <systemitem class="username">root</systemitem>
|
|
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 <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem>
|
|
felhasználót tegyük a
|
|
<literal>biba/high(high-high)</literal> értékek
|
|
közé.</para>
|
|
</note>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml: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 <systemitem class="username">root</systemitem>
|
|
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 xml: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>/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 <link xlink:href="http://www.TrustedBSD.org">TrustedBSD</link>
|
|
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
|
|
<systemitem class="username">root</systemitem> 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 <systemitem class="username">joska</systemitem>
|
|
nevű felhasználót a rendszerben, aki az alap
|
|
<literal>biba/low</literal> címkével rendelkezik.
|
|
A <systemitem class="username">root</systemitem> felhasználó, akinek
|
|
<literal>biba/high</literal> címkéje van, nem
|
|
láthatja <systemitem class="username">joska</systemitem>
|
|
felhasználói könyvtárát. Ez
|
|
attól függetlenül megtörténik, hogy
|
|
a <systemitem class="username">root</systemitem> a <command>su</command> paranccsal
|
|
váltott át a <systemitem class="username">joska</systemitem> nevű
|
|
felhasználóra vagy sem. Egy ilyen helyzetben a
|
|
Biba sértetlenségi modellje nem fogja engedni a
|
|
<systemitem class="username">root</systemitem> felhasználóra
|
|
számára, hogy láthassa a
|
|
kevésbé sértetlen objektumokat.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>A <systemitem class="username">root</systemitem> felhasználó nem
|
|
megy!</title>
|
|
|
|
<para>A rendszer normál vagy egyfelhasználós
|
|
módban sem ismeri fel a <systemitem class="username">root</systemitem>
|
|
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>
|