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 /
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.
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é.
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>.