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.
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
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"
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
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
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
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 cshEnnek 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é.
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>.