Manuale di FreeBSD
Indietro | Capitolo 17 Auditing degli Eventi di Sicurezza | Avanti

# 17.4 Configurazione dell'Audit

Tutti i file di configurazione per l'audit di sicurezza si trovano in `/etc/security`. I seguenti file devono essere presenti prima dell'avvio del demone audit:

- `audit_class` - Contiene le definizioni delle classi di audit.

- `audit_control` - Controlla aspetti del sottosistema dell'audit, come le classi audit di default, il minimo spazio su disco da lasciare al log di audit, la massima dimensione della traccia di audit, etc.

- `audit_event` - Nomi testuali e descrizioni degli eventi di audit di sistema, cosí come una lista di quali classi contengano quali eventi.

- `audit_user` - Requisiti specifici dell'audit per l'utente, combinati con i default globali al login.

- `audit_warn` - Uno script customizzabile usato da auditd per generare messaggi di warning in situazioni eccezionali, come ad esempio quando sta finendo lo spazio per i record o quando le tracce dell'audit sono ruotate.

> Avvertimento: I file di configurazione dell'audit dovrebbero essere editati e manotenuti con attenzione, dato che errori nella configurazione possono risultare in un tracciamento improprio degli eventi.

## 17.4.1 Espressioni per la Selezione degli Eventi

Le espressioni per la selezione sono usate in un certo numero di posti nella configurazione dell'audit per determinare quali eventi dovrebbero essere sotto audit. Le espressioni contengono una serie di classi di eventi, ognuna con un prefisso che indica se i record che sono indicati debbano essere accettati o ignorati, ed opzionalmente ad indicare se i record che vengono individuati siano da tracciare ad un successo o ad un fallimento. Le espressioni di selezione sono valutate da sinistra a destra, e due espressioni sono combinate aggiungendo una all'altra.

La seguente lista contiene le classi di eventi di default presenti in `audit_class`:

- `all` - all - Indica tutte le classi di eventi.

- `ad` - administrative - Le azioni amministrative eseguite su un sistema nel suo complesso.

- `ap` - application - Azioni definite dall'applicazione.

- `cl` - file close - Chiamate audit alla system call `close`.

- `ex` - exec - Fa l'audit delle esecuzioni di un programma. L'audit degli argomenti della command line e delle variabili di ambiente è controllato da audit_control(5) usando i parametri `argv` e `envv` nelle impostazioni della `policy`.

- `fa` - file attribute access - Fa l'audit dell'accesso ad attributi di accesso come stat(1), pathconf(2) ed eventi simili.

- `fc` - file create - Fa l'audit di eventi che hanno come risultato la creazione di un file.

- `fd` - file delete - Fa l'audit di eventi in cui avvenga una cancellazione di file.

- `fm` - file attribute modify - Fa l'audit di eventi in cui avvenga una modifica degli attributi dei file, come chown(8), chflags(1), flock(2), etc.

- `fr` - file read - Fa l'audit di eventi nei quali dei dati siano letti, file siano aperti in lettura, etc.

- `fw` - file write - Fa l'audit di eventi in cui dati siano scritti, file siano scritti o modificati, etc.

- `io` - ioctl - Fa l'audit dell'uso della system call ioctl(2).

- `ip` - ipc - Fa l'audit di varie forme di Inter-Process Communication, incluse pipe POSIX e operazioni IPC System V.

- `lo` - login_logout - Fa l'audit di eventi di login(1) e logout(1) che occorrano nel sistema.

- `na` - non attributable - Fa l'audit di eventi non attribuibili.

- `no` - invalid class - Indica nessun evento di audit.

- `nt` - network - Fa l'audit di eventi relativi ad azioni di rete, come connect(2) e accept(2).

- `ot` - other - Fa l'audit di eventi miscellanei.

- `pc` - process - Fa l'audit di operazioni dei processi, come exec(3) e exit(3).

Queste classi di eventi audit possono essere personalizzate modificando i file di configurazione `audit_class` e `audit_event`.

Ogni classe di audit nella lista è combinata con un prefisso che indica se le operazione di successo o andate in fallimento siano intercettate, e se la entry sta aggiungendo o togliendo delle regole di intercettazione per la classe ed il tipo.

- (none) Fa l'audit di istanze dell'evento sia di successo che fallite.

- `+` Fa l'audit di eventi di successo in questa classe.

- `-` fa l'audit di eventi falliti in questa classe.

- `^` Non fa l'audit di eventi nè di successo nè falliti in questa classe.

- `^+` Non fa l'audit di eventi di successo in questa classe.

- `^-` Non fa l'audit di eventi falliti in questa classe.

Il seguente esempio di selezione indica eventi di login/logout sia di successo che non, ma solo eventi di successo di esecuzione:

    lo,+ex

## 17.4.2 File di Configurazione

Nella maggior parte dei casi, gli amministratori dovranno solo modificare due file quando configurano il sistema audit: `audit_control` ed `audit_user`. Il primo controlla le proprietà e le politiche di tutto il sistema, il secondo può essere usato per fare del fine tuning iper il singolo utente.

### 17.4.2.1 Il File `audit_control`

Il file `audit_control` specifica un certo numero di valori di default per il sottosistema audit. Leggendo i contenuti di questo file, notiamo le seguenti righe:

    dir:/var/audit
    flags:lo
    minfree:20
    naflags:lo
    policy:cnt
    filesz:0

L'opzione `dir` viene usata per impostare una o più directory dove i file di log dell'audit vengono salvati. Se appare più di una directory, saranno usati in ordine uno dopo l'altro, dopo che uno si riempie. È comune configurare audit cosicchè i log siano tenuti in un filesystem dedicato, per prevenire interferenze fra il sottosistema audit ed altri sottosistemi se il filesystem si riempie.

Il campo `flags` imposta la maschera di preselzione per gli eventi attribuibili per tutto il sistema. Nell'esempio sopra, i login ed i logout di successo e quelli falliti sono tenuti sotto audit per tutto il sistema.

L'opzione `minfree` definisce la minima percentuale di spazio libero per i file system dove vengono conservate le tracce dell'audit. Quando questo limite viene superato, sarà generato un warning. L'esempio sopra imposta il minimo spazio libero al venti per cento.

L'opzione `naflags` specifica le classi di audit da tenere sotto audit per gli eventi non attribuibili, come il processo di login ed i demoni di sistema.

L'opzione `policy` specifica una lista separata da virgole di flag per le politiche che controllano vari aspetti del comportamento dell'audit. Il flag di default `cnt` indica che il sistema dovrebbe continuare a funzionare nonostante un errore dell'audit (questa flag è altamente consigliato). Un altro flag usato di comune è `argv`, che fa sì che gli argomenti di command line della sistema call execve(2) siano tenuti sotto audit come parte dell'esecuzione del comando.

L'opzione `filesz` specifica la massima dimensione in bytes da tenere per le tracce di audit, prima di terminarli automaticamente e routarli. Il default, 0, disabilita la rotazione dei file di log. Se la dimensione è diversa di zero ma minore del minimo, 512k, sarà ignorata ed un messaggio di log sarà generato.

### 17.4.2.2 Il File `audit_user`

Il file `audit_user` permette all'amministratore di specificare ulteriori requisiti dell'audit per utenti specifici. Ogni linea configura l'audit per un utente attraverso due campi: il primo campo è `alwaysaudit`, che specifica un insieme di eventi che dovrebbero sempre essere tenuti sotto audit per l'utente, ed il secondo è il campo `neveraudit`, che specifica un insieme di eventi che non dovrebbero mai essere tenuti sotto audit per l'utente.

Il seguente esempio di file `audit_user` fa l'audit di eventi di login/logout e delle esecuzioni di successo per l'utente `root`, e fa l'audit della creazione e dell'esecuzione di successo per l'utente `www`. Se usato con il file di esempio `audit_control` sopra riportato, l'entry `lo` per `root` è ridondante, e gli eventi di login/logout sarano tenuti sotto audit anche per l'utente `www`.

    root:lo,+ex:no
    www:fc,+ex:no

Indietro | Partenza | Avanti
Installare il Supporto Audit | Risali | Amministrare il Sottosistema Audit

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.