A vizsgálatok beállításához szükséges összes konfigurációs állomány a /etc/security könyvtárban található. A következő állományok vannak itt a démon indítása előtt:
audit_class - a vizsgálati osztályok definícióit tartalmazza.
audit_control - a vizsgálati alrendszer különböző területeit vezérli, többek közt az alapértelmezett vizsgálati osztályokat, az vizsgálati adatok tárhelyén fenntartandó minimális lemezterületet, a vizsgálati nyom maximális méretét, stb.
audit_event - a rendszerben jelenlevő vizsgálati események szöveges megnevezése és leírása, valamint a lista, hogy melyikük mely osztályban található.
audit_user - felhasználónként változó vizsgálati elvárások, kombinálva a bejelentkezéskor érvényes globálisan alapértelmezett beállításokkal.
audit_warn - az auditd által használt testreszabható shell szkript, aminek segítségével a szélsőséges helyzetekben figyelmeztető üzeneteket tudunk generálni, mint például amikor a rekordok számára fenntartott hely hamarosan elfogy, vagy amikor a nyomokat tartalmazó állományt archiváltuk.
Figyelem: Az eseményvizsgálat konfigurációs állományait alapos körültekintés mellett szabad szerkeszteni és karbantartani, mivel a bennük keletkező hibák az események helytelen naplózását eredményezhetik.
Az eseményvizsgálati beállítások során számtalan helyen felbukkanak a vizsgálni kívánt eseményeket meghatározó szűrési feltételek. Ezen feltételek eseményosztályok felsorolását tartalmazzák, mindegyiküket egy módosító vezeti be, ezzel jelezve, hogy az adott eseményosztályba tartozó rekordokat tartsuk meg vagy vessük el. Esetleg utalhatnak arra is, hogy vagy csak a sikerességet jelző rekordokat, vagy csak a sikertelenséget jelző rekordokat szűrjük ki. A szűrési feltételek balról jobbra értékelődnek ki, és két kifejezés összefűzéssel kombinálható.
A most következő lista tartalmazza a audit_class állományban található alapértelmezett eseményvizsgálati osztályokat:
all - all (mind) - Minden eseményosztályra vonatkozik.
ad - administrive (adminisztrációs) - olyan adminisztrációs tevékenységek, amelyek egyben az egész rendszeren végrehajtódnak.
ap - application (alkalmazás) - az alkalmazások által meghatározott tevékenység.
cl - file close
(állomány lezárása) -
a close
rendszerhívás
meghívásának vizsgálata.
ex - exec (programindítás) - egy program indításának vizsgálata. A parancssorban átadott paraméterek és a környezeti változók vizsgálatát az audit_control(5) vezérli a policy beállításhoz tartozó argv és envv paraméterek segítségével.
fa - file attribute access (állományjellemzők hozzáférése) - a rendszerbeli objektumok jellemzőinek hozzáférésnek vizsgálata, mint például a stat(1), pathconf(2) és ehhez hasonló események.
fc - file create (állomány létrehozása) - állományt eredményező események vizsgálata.
fd - file delete (állomány törlése) - állományt törlő események vizsgálata.
fm - file attribute modify (állományjellemzők módosítása) - állományok jellemzőit megváltoztató események vizsgálata, mint például a chown(8), chflags(1), flock(2), stb.
fr - file read (állományolvasás) - állományok megnyitásával olvasásra, olvasásával, stb. kapcsolatos események vizsgálata.
fw - file write (állományírás) - állományok megnyitásával írásra, írásával, módosításával, stb. kapcsolatos események vizsgálata.
io - ioctl - az ioctl(2) rendszerhívást használó események vizsgálata.
ip - ipc - a folyamatok közti kommunikáció különféle formáinak, beleértve a POSIX csövek és System V IPC műveleteinek vizsgálata.
lo - login_logout (ki- és bejelentkezés) - a rendszerben megjelenő login(1) és logout(1) események vizsgálata.
na - non attributable (nem jellegzetes) - a nem jellegzetes események vizsgálata.
no - invalid class (érvénytelen osztály) - egyetlen biztonsági eseményt sem tartalmaz.
nt - network (hálózat) - a hálózathoz tartozó események vizsgálata, mint például a connect(2) és az accept(2).
ot - other (egyéb) - más egyéb események vizsgálata.
pc - process (folyamat) - a folyamatokkal kapcsolatos műveletek, mint például az exec(3) és az exit(3) vizsgálata.
Az imént felsorolt eseményosztályok az audit_class és az audit_event állományok módosításával igény szerint testreszabhatóak.
A listában szereplő minden egyes eseményosztályhoz tartozik még egy módosító is, amely jelzi, hogy a sikeres vagy a sikertelen műveleteket kell-e szűrnünk, valamint hogy a bejegyzés az adott típust vagy osztályt hozzáadja vagy elveszi az adott szűrésből.
(üres) az adott típusból mind a sikereseket és mind a sikerteleneket feljegyzi.
+ az eseményosztályba tartozó sikeres eseményeket vizsgálja csak.
- az eseményosztályba tartozó sikertelen eseményeket vizsgálja csak.
^ az eseményosztályból sem a sikereseket, sem pedig a sikerteleneket nem vizsgálja.
^+ az eseményosztályból nem vizsgálja a sikeres eseményeket.
^- az eseményosztályból nem vizsgálja a sikertelen eseményeket.
Az alábbi példa egy olyan szűrési feltételt mutat be, amely a ki- és bejelentkezések közül megadja a sikereset és a sikerteleneket, viszont a programindítások közül csak a sikereseket:
lo,+ex
A vizsgálati rendszer beállításához az esetek túlnyomó részében a rendszergazdáknak csupán két állományt kell módosítaniuk: ezek az audit_control és az audit_user. Az előbbi felelős a rendszerszintű vizsgálati jellemzőkért és házirendekért, míg az utóbbi az igények felhasználókénti finomhangolásához használható.
Az audit_control állomány határozza meg a vizsgálati alrendszer alapértelmezéseit. Ezt az állományt megnyitva a következőket láthatjuk:
dir:/var/audit flags:lo minfree:20 naflags:lo policy:cnt filesz:0
A dir
opciót használjuk a
vizsgálati naplók
tárolására szolgáló egy
vagy több könyvtár megadására.
Ha egynél több könyvtárra
vonatkozó bejegyzés található az
állományban, akkor azok a megadás
sorrendjében kerülnek feltöltésre.
Nagyon gyakori az a beállítás, ahol a
vizsgálati naplókat egy erre a célra
külön kialakított
állományrendszeren tárolják,
megelőzve ezzel az állományrendszer
betelésekor keletkező problémákat a
többi alrendszerben.
A flags
mező egy rendszerszintű
alapértelmezett előválogatási
maszkot határoz meg a jellegzetes események
számára. A fenti példában a
sikeres és sikertelen ki- és
bejelentkezéseket mindegyik felhasználó
esetén vizsgáljuk.
A minfree
opció megszabja a
vizsgálati nyom tárolására
szánt állományrendszeren a
minimális szabad helyet, a teljes kapacitás
százalékában. Amint ezt a
küszöböt túllépjük, egy
figyelmeztetés fog generálódni. A fenti
példa a minimálisan szükséges
rendelkezésre álló helyet húsz
százalékra állítja.
A naflags
opció megadja azokat az
eseményosztályokat, amelyeket vizsgálni
kell a nem jellegzetes események, mind
például a bejelentkezési folyamatok vagy
rendszerdémonok esetén.
A policy
opció a vizsgálat
különböző szempontjait
irányító házirendbeli
beállítások vesszővel
elválasztott listáját tartalmazza. Az
alapértelmezett cnt
beállítás azt adja meg, hogy a rendszer a
felmerülő vizsgálati hibák
ellenére is folytassa tovább a
működését (erősen javasolt a
használata). A másik gyakorta alkalmazott
beállítás az argv,
amellyel a rendszer a parancsvégrehajtás
részeként az execve(2)
rendszerhívás parancssori paramétereit is
megvizsgálja.
A filesz
opció határozza
meg a vizsgálati nyom automatikus
szétvágása és
archiválása előtti maximális
méretét, byte-ban. Az alapértelmezett
értéke a 0, amely kikapcsolja ezt az
archiválást. Ha az itt megadott
állományméret nem nulla és a
minimálisan elvárt 512 KB alatt van, akkor
a rendszer figyelmen kívül hagyja és
erről egy figyelmeztetést ad.
Az audit_user állomány lehetővé teszi a rendszergazda számára, hogy az egyes felhasználók számára további vizsgálati szigorításokat határozzon meg. Minden sor egy-egy felhasználó vizsgálatának pontosítását adja meg két mező segítségével: az első közülük az alwaysaudit mező, mely felsorolja azokat az eseményeket, amelyeket minden esetben vizsgáni kell az adott felhasználó esetén, valamint a második a neveraudit mező, mely az adott felhasználó esetén a nem vizsgálandó eseményeket adja meg.
A most következő audit_user példában vizsgáljuk a root felhasználó ki- és bejelentkezéseit és sikeres programindításait, valamint a www felhasználó állománylétrehozásait és sikeres programindításait. Ha a korábban bemutatott audit_control példával együtt használjuk, akkor észrevehetjük, hogy a lo bejegyzés a root felhasználó esetén redundáns, illetve ilyenkor a ki/bejelentkezést a www felhasználó esetén is vizsgáljuk.
root:lo,+ex:no www:fc,+ex:no
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>.