FreeBSD kézikönyv
Előző | Fejezet 17. Biztonsági események vizsgálata | Következő

# 17.4. A vizsgálat beállítása

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.

## 17.4.1. Eseményszűrési feltételek

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

## 17.4.2. A konfigurációs állományok

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ó.

### 17.4.2.1. Az `audit_control` állomány

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.

### 17.4.2.2. Az `audit_user` állomány

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

Előző | Tartalom | Következő
A vizsgálat támogatásának telepítése | Fel | A vizsgálati alrendszer használata

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