16.8. A bsdextended MAC-modul

A modul neve: mac_bsdextended.ko

A rendszermag konfigurációs beállítása: options MAC_BSDEXTENDED

Rendszerindítási beállítás: mac_bsdextended_load="YES"

A 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 security.mac.bsdextended.firstmatch_enabled sysctl(8) paraméter segítségével változtatható meg. Hasonlóan a FreeBSD-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 rc.conf(5) változóból olvasódnak be.

A szabályokat a ugidfw(8) segédprogrammal adhatjuk meg, amelynek a formai szabályai hasonlóak az ipfw(8) programéhoz. A libugidfw(3) függvénykönyvtár felhasználásával azonban további segédprogramok is írhatóak hozzá.

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.

16.8.1. Példák

Miután sikerült betölteni a mac_bsdextended(4) modult, a következő paranccsal tudjuk lekérdezni a jelenleg érvényes szabályokat:

# ugidfw list
0 slots, 0 rules

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 root kivételével elutasítjuk az összes felhasználó hozzáférését:

# ugidfw add subject not uid root new object not uid root mode n

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 ls-t, sem tudják rájuk kiadni. Ennél sokkal humánusabb lesz, ha:

# ugidfw set 2 subject uid felhasználó1 object uid felhasználó2 mode n
# ugidfw set 3 subject uid felhasználó1 object gid felhasználó2 mode n

Ilyenkor a felhasználó1 nevű felhasználótól megvonjuk a felhasználó2 felhasználói könyvtárának összes hozzáférését, beleértve a listázhatóságot is.

A felhasználó1 helyett megadhatjuk a not uid felhasználó2 opciót is. Ebben az esetben egy felhasználó helyett az összes felhasználóra ugyanaz a korlátozás fog érvényesülni.

Megjegyzés:

A root felhasználóra ezek a beállítások nem vonatkoznak.

Ezzel felvázoltuk, miként lehet a mac_bsdextended(4) modult felhasználni az állományrendszerek megerősítésére. Részletesebb információkért járuljunk a mac_bsdextended(4) és ugidfw(8) man oldalakhoz.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <questions@FreeBSD.org>.

Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.