FreeBSD kézikönyv
Előző | Fejezet 16. Kötelező hozzáférés-vezérlés (MAC) | Következő

# 16.15. A Nagios elzárása a MAC rendszerrel

A most következő bemutatóban a MAC 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.

A folyamat megkezdése előtt be kell állítanunk a `multilabel` 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 `net-mngt/nagios-plugins`, `net-mngt/nagios` és `www/apache13` portok telepítéséről, beállításáról és megfelelő működéséről sem.

## 16.15.1. A nem megbízható felhasználók osztályának létrehozása

Az eljárást kezdjük az alábbi (insecure) felhasználói osztály hozzáadásával az `/etc/login.conf` állományban:

    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):

Valamint egészítsük ki az alapértelmezett (default) felhasználói osztályt a következő sorral:

    :label=biba/high:

Ahogy ezzel elkészültünk, az hozzá tartozó adatbázis újbóli legyártásához a következő parancsot kell kiadnunk:

    # cap_mkdb /etc/login.conf

## 16.15.2. A rendszerindítással kapcsolatos beállítások

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 `/boot/loader.conf` állományt az alábbi sorokkal:

    mac_biba_load="YES"
    mac_seeotheruids_load="YES"

## 16.15.3. A felhasználók beállítása

Soroljuk be a `root` felhasználót a `default` osztályba:

    # pw usermod root -L default

Az összes `root` 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 vi(1). A következő `sh` szkript nekünk erre pontosan megfelel:

    # for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \
    	/etc/passwd`; do pw usermod $x -L default; done;

Helyezzük át a `nagios` és `www` felhasználókat az insecure osztályba:

    # pw usermod nagios -L insecure

    # pw usermod www -L insecure

## 16.15.4. A `contexts` állomány létrehozása

Most csinálnunk kell egy `contexts` állományt. Ebben példában az `/etc/policy.contexts` állományt használjuk.

    # 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

Ezzel a házirenddel az információ áramlását szabályozzuk. Ebben a konkrét konfigurációban a felhasználók, a `root` és társai, nem férhetnek hozzá a Nagioshoz. A Nagios 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.

Ez az iménti állomány a következő parancs hatására kerül be a rendszerünkbe:

    # setfsmac -ef /etc/policy.contexts /
    # setfsmac -ef /etc/policy.contexts /

> Megjegyzés: 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.

Az `/etc/mac.conf` állományt törzsét a következőképpen kell még átírnunk:

    default_labels file ?biba
    default_labels ifnet ?biba
    default_labels process ?biba
    default_labels socket ?biba

## 16.15.5. A hálózat engedélyezése

Tegyük hozzá a következő sort az `/boot/loader.conf` állományhoz:

    security.mac.biba.trust_all_interfaces=1

Ezt az alábbi beállítást pedig szúrjuk be az `rc.conf` állományba a hálózati kártya konfigurációjához. Amennyiben az internetet DHCP segítségével érjük el, ezt a beállítást manuálisan kell megtenni minden rendszerindítás alkalmával:

    maclabel biba/equal

## 16.15.6. A konfiguráció kipróbálása

Gondoskodjunk róla, hogy a webszerver és a Nagios 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 `root` ne tudjon hozzáférni a Nagios beállításait tartalmazó könyvtárhoz. Ha a `root` képes kiadni egy ls(1) parancsot a `/var/spool/nagios` könyvtárra, akkor valamit elronthattunk. Normális esetben egy “`permission denied`” üzenetet kell kapnunk.

Ha minden jónak tűnik, akkor a Nagios, Apache és Sendmail most már elindítható a biztonsági házirend szabályozásai szerint. Ezt a következő parancsokkal tehetjük meg:

    # 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

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 sysctl(8) használatával tiltsuk le a mac_biba(4) biztonsági modult és próbáljunk meg mindent a szokott módon újraindítani.

> Megjegyzés: A `root` 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:

>     # setpmac biba/10 csh

> Ennek kivédésére a felhasználókat a login.conf(5) beállításaival le kell korlátozni. Ha a 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 `root` felhasználót tegyük a `biba/high(high-high)` értékek közé.

Előző | Tartalom | Következő
A LOMAC MAC-modul | Fel | A felhasználók korlátozása

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.