doc/it_IT.ISO8859-15/books/handbook/audit/chapter.xml
2013-01-21 17:39:52 +00:00

757 lines
32 KiB
XML

<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
Original revision: 1.33
-->
<chapter id="audit">
<chapterinfo>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Scritto da </contrib>
</author>
<author>
<firstname>Robert</firstname>
<surname>Watson</surname>
</author>
</authorgroup>
</chapterinfo>
<title>Auditing degli Eventi di Sicurezza</title>
<sect1 id="audit-synopsis">
<title>Sinossi</title>
<indexterm><primary>AUDIT</primary></indexterm>
<indexterm>
<primary>Auditing degli Eventi di Sicurezza</primary>
<see>MAC</see>
</indexterm>
<para>&os; 6.2-RELEASE e i successivi includono supporto
per audit di eventi relativi alla sicurezza. L'audit
degli eventi permette di tener traccia attraverso i log in modo
affidabile, preciso e configurabile di una varietà
di eventi rilevanti per la sicurezza del sistema, inclusi
i login, i cambiamenti della configurazione e l'accesso
ai file ed alla rete. Questi dati loggati possono essere
molto preziosi per il monitoraggio di sistemi in produzione,
ricerca di intrusioni ed analisi post mortem. &os;
implementa le API di <acronym>BSM</acronym> di &sun; e i suoi
formati di file, ed è interoperabile sia con le
implementazioni di audit di &sun; &solaris;
che con quelle di &apple; &macos; X.</para>
<para>Questo capitolo si focalizza sull'installazione
e la configurazione dell'Auditing degli Eventi. Spiega politiche di
auditing e fornisce come esempio una configurazione di audit.</para>
<para>Dopo aver letto questo capitolo, saprai:</para>
<itemizedlist>
<listitem>
<para>Cosa è l'Auditing di Eventi e come funziona.</para>
</listitem>
<listitem>
<para>Come configurare l'Auditing di Eventi su &os;
per utenti e processi.</para>
</listitem>
<listitem>
<para>Come rivedere la traccia di audit usando la riduzione dell'audit
e i tool per studiarla.</para>
</listitem>
</itemizedlist>
<para>Prima di leggere questo capitolo, dovresti:</para>
<itemizedlist>
<listitem>
<para>Comprendere le basi di &unix; e &os;
(<xref linkend="basics"/>).</para>
</listitem>
<listitem>
<para>Essere familiare con le basi di configurazione e compilazione
del kernel (<xref linkend="kernelconfig"/>).</para>
</listitem>
<listitem>
<para>Avere una certa familiarità con la sicurezza
e come si applica a &os; (<xref linkend="security"/>).</para>
</listitem>
</itemizedlist>
<warning>
<para>La funzione di audit in &os; 6.<replaceable>X</replaceable>
è sperimentale
e la messa in produzione dovrebbe avvenire solo dopo aver ben
ponderato i rischi connessi al software sperimentale.
Le limitazioni note includono che non tutti gli eventi
relativi alla sicurezza al momento posso essere tracciati
con l'audit, e che alcuni meccanismi di login, come
display manager basati su X11 e demoni di terze parti,
non sono correttamente configurabili per tracciare sotto audit
le sessioni di login degli utenti.</para>
<para>La funzione di audit di sicurezza può generare
log molto dettagliati dell'attività di sistema: su un
sistema carico, i file di traccia possono essere molto grandi
quando sono configurati in dettaglio, oltre i gigabytes per settimana.
Gli amministratori dovrebbero tenere in conto le richieste di spazio
associate alla configurazione dell'audit di grandi dimensioni.
Ad esempio, potrebbe essere desiderabile dedicare un intero
file system alle directory sotto <filename>/var/audit</filename>
in modo che gli altri file system non siano toccati se il file system
di audit si riempie completamente.</para>
</warning>
</sect1>
<sect1 id="audit-inline-glossary">
<title>Termini chiave - Parole da conoscere</title>
<para>Prima di leggere questo capitolo, dobbiamo chiarire alcuni termini relativi
all'audit:</para>
<itemizedlist>
<listitem>
<para><emphasis>event</emphasis>: Un event tracciabile da audit
è ogni evento che può essere tenuto sotto
osservazione dal sottosistema di audit.
Esempi di eventi rilevanti per la sicurezza includono
la creazione di un file, lo stabilire una connessione di rete,
o il loggarsi di un utente.
Gli event sono o <quote>attribuibili</quote>,
ovvero possono essere riferiti ad un utente
autenticato, o <quote>non attribuibili</quote> se non
possono esserlo. Esempi di eventi non attribuibili sono
tutti gli eventi che occorrono prima dell'autenticazione
nel processo di login, come tentativi di login con
password errata.</para>
</listitem>
<listitem>
<para><emphasis>class</emphasis>: Le class di eventi sono insiemi
di eventi correlati fra loro, e sono usati nelle espressioni
di selezione. Class di eventi usate spesso includono <quote>
la creazione di file</quote> (fc), <quote>esecuzione</quote> (ex)
e <quote>login_logout</quote> (lo).</para>
</listitem>
<listitem>
<para><emphasis>record</emphasis>: Un record è una voce nel log
di audit che descrive un evento di sicurezza. I record contengono
il tipo di evento, informazione sul soggetto che ha causato l'evento,
informazione sulla data e sull'ora dell'evento, informazione su ogni
oggetto o argomento, ed una condizione di successo o fallimento.</para>
</listitem>
<listitem>
<para><emphasis>trail</emphasis>: Una traccia di audit, o file di log,
consiste in una serie di record di eventi che descrivono
eventi di sicurezza. Tipicamente le tracce sono in qualche modo
in ordine cronologico rispetto all'istante in cui l'evento
si è realizzato. Solo processi autorizzati
hanno il permesso di tracciare record nella traccia di audit.</para>
</listitem>
<listitem>
<para><emphasis>selection expression</emphasis>: Una espressione
di selezione è una stringa che contiene una lista di prefissi
e nomi di classi di eventi usati per catalogare eventi.</para>
</listitem>
<listitem>
<para><emphasis>preselection</emphasis>: Il processo attraverso il quale
il sistema identifica quali eventi sono di interesse per l'amministratore
al fine di evitare di generare record di audit per eventi che
non siano di interesse. La configurazione della preselezione
usa una serie di espressioni di selezioni per identificare
quali classi di eventi siano da tracciare per quale utente,
come anche impostazioni globali che si applicano sia a processi
autenticati che nono autenticati.</para>
</listitem>
<listitem>
<para><emphasis>reduction</emphasis>: Il processo attraverso
il quale i record di un audit esistente sono selezionati
per il salvataggio, la stampa, l'analisi. Ovvero, il processo
attraverso il quale record di audit non desiderati siano
rimossi dalla traccia di audit. Usando la riduzione, gli amministratori
sono in grado di implementare politiche per il salvataggio
di dati di audit. Per esempio, tracce di audit dettagliate
possono essere tenute per un mese, dopodichè le
tracce possono essere ridotte al fine di preservare solo
le informazioni di login.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="audit-install">
<title>Installare il Supporto Audit</title>
<para>Il supporto in user space per l'Audit degli Eventi
è installato come parte del sistema operativo &os;.
In &os; 7.0 e successivi, il supporto kernel all'Audit degli eventi
è compilato di default. In &os; 6.<replaceable>X</replaceable>,
il supporto all'Audit degli eventi deve essere compilato
esplicitamente nel kernel aggiungendo le seguenti
righe al file di configurazione del kernel:</para>
<programlisting>options AUDIT</programlisting>
<para>Ricompila e reinstalla il kernel attraverso
il normale processo spiegato in
<xref linkend="kernelconfig"/>.</para>
<para>Una volta che il kernel è stato compilato ed
installato con l'audit abilitato, ed il
sistema è stato rebootato, abilita il demone audit
aggiungendo la seguente riga in &man.rc.conf.5;:</para>
<programlisting>auditd_enable="YES"</programlisting>
<para>Il supporto all'audit a questo punto deve essere avviato
al reboot, o manualmente avviando il demone:</para>
<programlisting>/etc/rc.d/auditd start</programlisting>
</sect1>
<sect1 id="audit-config">
<title>Configurazione dell'Audit</title>
<para>Tutti i file di configurazione per l'audit di sicurezza
si trovano in <filename class="directory">/etc/security</filename>.
I seguenti file devono essere presenti prima dell'avvio
del demone audit:</para>
<itemizedlist>
<listitem>
<para><filename>audit_class</filename> - Contiene le definizioni
delle classi di audit.</para>
</listitem>
<listitem>
<para><filename>audit_control</filename> - 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.</para>
</listitem>
<listitem>
<para><filename>audit_event</filename> - Nomi testuali e descrizioni
degli eventi di audit di sistema, cos&iacute; come una lista
di quali classi contengano quali eventi.</para>
</listitem>
<listitem>
<para><filename>audit_user</filename> - Requisiti specifici dell'audit
per l'utente, combinati con i default globali
al login.</para>
</listitem>
<listitem>
<para><filename>audit_warn</filename> - Uno script customizzabile
usato da <application>auditd</application> 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.</para>
</listitem>
</itemizedlist>
<warning>
<para>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.</para>
</warning>
<sect2>
<title>Espressioni per la Selezione degli Eventi</title>
<para>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.</para>
<para>La seguente lista contiene le classi di eventi di default
presenti in <filename>audit_class</filename>:</para>
<itemizedlist>
<listitem>
<para><literal>all</literal> - <emphasis>all</emphasis> - Indica
tutte le classi di eventi.</para>
</listitem>
<listitem>
<para><literal>ad</literal> - <emphasis>administrative</emphasis>
- Le azioni amministrative eseguite su un sistema
nel suo complesso.</para>
</listitem>
<listitem>
<para><literal>ap</literal> - <emphasis>application</emphasis> -
Azioni definite dall'applicazione.</para>
</listitem>
<listitem>
<para><literal>cl</literal> - <emphasis>file close</emphasis> -
Chiamate audit alla system call <function>close</function>.</para>
</listitem>
<listitem>
<para><literal>ex</literal> - <emphasis>exec</emphasis> - Fa l'audit
delle esecuzioni di un programma. L'audit degli argomenti
della command line e delle variabili di ambiente è
controllato da &man.audit.control.5; usando i parametri
<literal>argv</literal> e <literal>envv</literal> nelle
impostazioni della <literal>policy</literal>.</para>
</listitem>
<listitem>
<para><literal>fa</literal> - <emphasis>file attribute access</emphasis>
- Fa l'audit dell'accesso ad attributi di accesso
come &man.stat.1;, &man.pathconf.2; ed eventi simili.</para>
</listitem>
<listitem>
<para><literal>fc</literal> - <emphasis>file create</emphasis>
- Fa l'audit di eventi che hanno come risultato
la creazione di un file.</para>
</listitem>
<listitem>
<para><literal>fd</literal> - <emphasis>file delete</emphasis>
- Fa l'audit di eventi in cui avvenga una cancellazione
di file.</para>
</listitem>
<listitem>
<para><literal>fm</literal> - <emphasis>file attribute modify</emphasis>
- Fa l'audit di eventi in cui avvenga una modifica
degli attributi dei file, come &man.chown.8;, &man.chflags.1;, &man.flock.2;,
etc.</para>
</listitem>
<listitem>
<para><literal>fr</literal> - <emphasis>file read</emphasis>
- Fa l'audit di eventi nei quali dei dati siano letti,
file siano aperti in lettura, etc.</para>
</listitem>
<listitem>
<para><literal>fw</literal> - <emphasis>file write</emphasis> -
Fa l'audit di eventi in cui dati siano scritti,
file siano scritti o modificati, etc.</para>
</listitem>
<listitem>
<para><literal>io</literal> - <emphasis>ioctl</emphasis> -
Fa l'audit dell'uso della system call &man.ioctl.2;.</para>
</listitem>
<listitem>
<para><literal>ip</literal> - <emphasis>ipc</emphasis> - Fa l'audit
di varie forme di Inter-Process Communication, incluse pipe
POSIX e operazioni <acronym>IPC</acronym> System V.</para>
</listitem>
<listitem>
<para><literal>lo</literal> - <emphasis>login_logout</emphasis> -
Fa l'audit di eventi di &man.login.1; e &man.logout.1; che occorrano
nel sistema.</para>
</listitem>
<listitem>
<para><literal>na</literal> - <emphasis>non attributable</emphasis> -
Fa l'audit di eventi non attribuibili.</para>
</listitem>
<listitem>
<para><literal>no</literal> - <emphasis>invalid class</emphasis> -
Indica nessun evento di audit.</para>
</listitem>
<listitem>
<para><literal>nt</literal> - <emphasis>network</emphasis> -
Fa l'audit di eventi relativi ad azioni di rete, come
&man.connect.2; e &man.accept.2;.</para>
</listitem>
<listitem>
<para><literal>ot</literal> - <emphasis>other</emphasis> -
Fa l'audit di eventi miscellanei.</para>
</listitem>
<listitem>
<para><literal>pc</literal> - <emphasis>process</emphasis> -
Fa l'audit di operazioni dei processi, come
&man.exec.3; e &man.exit.3;.</para>
</listitem>
</itemizedlist>
<para>Queste classi di eventi audit possono essere personalizzate
modificando i file di configurazione
<filename>audit_class</filename> e
<filename>audit_event</filename>.</para>
<para>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.</para>
<itemizedlist>
<listitem>
<para>(none) Fa l'audit di istanze dell'evento sia di successo
che fallite.</para>
</listitem>
<listitem>
<para><literal>+</literal> Fa l'audit di eventi di successo
in questa classe.</para>
</listitem>
<listitem>
<para><literal>-</literal> fa l'audit di eventi falliti
in questa classe.</para>
</listitem>
<listitem>
<para><literal>^</literal> Non fa l'audit di eventi nè
di successo nè falliti in questa classe.</para>
</listitem>
<listitem>
<para><literal>^+</literal> Non fa l'audit di eventi di successo
in questa classe.</para>
</listitem>
<listitem>
<para><literal>^-</literal> Non fa l'audit di eventi falliti in
questa classe.</para>
</listitem>
</itemizedlist>
<para>Il seguente esempio di selezione indica eventi di login/logout
sia di successo che non, ma solo eventi di successo di esecuzione:</para>
<programlisting>lo,+ex</programlisting>
</sect2>
<sect2>
<title>File di Configurazione</title>
<para>Nella maggior parte dei casi, gli amministratori dovranno
solo modificare due file quando configurano il sistema audit:
<filename>audit_control</filename> ed <filename>audit_user</filename>.
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.</para>
<sect3 id="audit-auditcontrol">
<title>Il File <filename>audit_control</filename></title>
<para>Il file <filename>audit_control</filename> specifica un certo numero
di valori di default per il sottosistema audit. Leggendo i contenuti
di questo file, notiamo le seguenti righe:</para>
<programlisting>dir:/var/audit
flags:lo
minfree:20
naflags:lo
policy:cnt
filesz:0</programlisting>
<para>L'opzione <option>dir</option> 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.</para>
<para>Il campo <option>flags</option> 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.</para>
<para>L'opzione <option>minfree</option> 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.</para>
<para>L'opzione <option>naflags</option> specifica le classi di audit
da tenere sotto audit per gli eventi non attribuibili, come
il processo di login ed i demoni di sistema.</para>
<para>L'opzione <option>policy</option> specifica una lista separata
da virgole di flag per le politiche che controllano vari aspetti
del comportamento dell'audit. Il flag di default <literal>cnt</literal>
indica che il sistema dovrebbe continuare a funzionare nonostante
un errore dell'audit (questa flag è altamente consigliato).
Un altro flag usato di comune è <literal>argv</literal>,
che fa sì che gli argomenti di command line della sistema call &man.execve.2;
siano tenuti sotto audit come parte dell'esecuzione del comando.</para>
<para>L'opzione <option>filesz</option> 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.</para>
</sect3>
<sect3 id="audit-audituser">
<title>Il File <filename>audit_user</filename></title>
<para>Il file <filename>audit_user</filename> 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 è <literal>alwaysaudit</literal>,
che specifica un insieme di eventi che dovrebbero sempre essere tenuti
sotto audit per l'utente, ed il secondo è il campo
<literal>neveraudit</literal>, che specifica un insieme di eventi
che non dovrebbero mai essere tenuti sotto audit per l'utente.
</para>
<para>Il seguente esempio di file <filename>audit_user</filename> fa
l'audit di eventi di login/logout e delle esecuzioni di successo
per l'utente <username>root</username>, e fa l'audit della creazione
e dell'esecuzione di successo per l'utente <username>www</username>.
Se usato con il file di esempio <filename>audit_control</filename>
sopra riportato, l'entry <literal>lo</literal> per
<username>root</username> è ridondante, e gli eventi di
login/logout sarano tenuti sotto audit anche per l'utente
<username>www</username>.</para>
<programlisting>root:lo,+ex:no
www:fc,+ex:no</programlisting>
</sect3>
</sect2>
</sect1>
<sect1 id="audit-administration">
<title>Amministrare il Sottosistema Audit</title>
<sect2>
<title>Leggere le Tracce di Audit</title>
<para>Le tracce di audit sono conservate nel formato binario BSM,
così devono essere usati degli strumenti appositi
per modificare o convertirli a testo. Il comando &man.praudit.1;
converte file di traccia a semplice formato testo; il comando
<command>auditreduce</command> può essere usato per ridurre
file di traccia per analisi, archiviazione o stampa.
&man.auditreduce.1; supporta una varietà di
parametri di selezione, incluso il tipo di evento, la classe
dell'evento, l'utente, la data o l'ora dell'evento, ed il percorso
del file o l'oggetto su cui si opera.</para>
<para>Per esempio, l'utility <command>praudit</command> farà il
dump dell'intero contenuto di uno specifico file di log di audit
in semplice formato testuale:</para>
<screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
<para>Dove <filename><replaceable>AUDITFILE</replaceable></filename>
è il nome del file di log di cui fare il dump.</para>
<para>Le tracce di audit consistono in una serie di record di audit
composti da token, che <command>praudit</command> scrive sequenzialmente
uno per linea. Ogni token è per un tipo specifico,
come <literal>header</literal> che tiene un header di un record
audit, o <literal>path</literal> che tiene un percorso di file
da una ricerca del nome.
Il seguente è un esempio di un evento <literal>execve</literal>:</para>
<programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
exec arg,finger,doug
path,/usr/bin/finger
attribute,555,root,wheel,90,24918,104944
subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
return,success,0
trailer,133</programlisting>
<para>Questo audit rappresenta una chiamata di successo a
<literal>execve</literal>, in cui il comando
<literal>finger doug</literal> è stato eseguito.
Il token degli argomenti contiene la riga di comando presentata
dalla shell al kernel. Il token <literal>path</literal> contiene
il percorso dell'eseguibile usato dal kernel.
Il token <literal>attribute</literal> descrive il binario, ed in particolare
include i permessi del file che possono essere usato per determinare
se l'applicazione era setuid. Il token <literal>subject</literal>
descrive il processo
in oggetto e conserva in sequenza l'id utente dell'audit, l'id effettivo
dell'utente, il group id, lo user id reale ed il group id reale,
il process id, l'id della sessione, l'id della porta e l'indirizzo di login.
Nota che l'audit user id ed il real user id sono diversi:
l'utente <username>robert</username> è diventato
<username>root</username> prima di eseguire questo comando, ma questo
viene tenuto sotto audit usando lo user id originale. Infine, il token
<literal>return</literal> indica l'esecuzione andata a buon fine, ed il
<literal>trailer</literal> chiude il record.</para>
<para>In &os; 6.3 e successive, <command>praudit</command> supporta
anche il formato di output XML, che può essere selezionato
usando l'argomento <option>-x</option>.</para>
</sect2>
<sect2>
<title>Ridurre le Tracce di Audit</title>
<para>Dato che i log dell'audit possono essere molto grandi,
un amministratore probabilmente vorrà selezionarne
solo un sottoinsieme utile, ad esempio i record
associati con un utente specifico:</para>
<screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
<para>Questo selezionerà tutti i record di audit per
l'utente <username>trhodes</username> conservati nel file
<filename><replaceable>AUDITFILE</replaceable></filename>.</para>
</sect2>
<sect2>
<title>Delegare Diritti di Ispezionare l'Audit</title>
<para>I membri del gruppo <groupname>audit</groupname> hanno
il permesso di leggere tracce di audit in <filename>/var/audit</filename>;
di default questo gruppo e' vuoto, così solo
<username>root</username> può leggere le tracce di audit.
Utenti possono essere aggiunti al gruppo <groupname>audit</groupname>
per delegare diritti di lettura sull'audit.
Dato che l'abilità di tracciare contenuti del log di audit
fornisce significative informazioni sul comportamento di utenti
e processi, si raccomanda che la delega di lettura sia fatta con cautela.</para>
</sect2>
<sect2>
<title>Monitoraggio dal Vivo Usando Pipe di Audit</title>
<para>Le pipe di audit sono degli pseudo-device clonanti nel
file system dei device che permettono alle applicazioni di intercettare
lo stream dei record di audit in tempo reale. Questo è
di primario interesse per i creatori di applicativi di intrusion
detection e di monitoraggio di sistemi.
In ogni caso, per l'amministratore il device della pipe dell'audit
è un modo conveniente per permettere il monitaraggio dal vivo
senza incontrare problemi con i permessi della traccia audit o
la rotazione dei log che interrompono lo stream degli eventi.
Per tracciare lo stream degli eventi dell'audit, usa la seguente
linea di comando:</para>
<screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
<para>Di default, i nodi di device delle pipe dell'audit sono accessibili
solo dall'utente <username>root</username>. Per renderlo accessibile
ai membri del gruppo <groupname>audit</groupname>, aggiungi una
regola <literal>devfs</literal>
al file <filename>devfs.rules</filename>:</para>
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
<para>Leggi &man.devfs.rules.5; per altre informazioni su come
configurare il filesystem devfs.</para>
<warning>
<para>È facile produrre cicli di feedback di eventi audit,
in cui il semplice osservare ogni evento di audit risulta nella
creazione di più eventi di audit. Per esempio, se tutto
il traffico di rete viene tenuto sotto audit, e &man.praudit.1; viene
eseguito da una sessione SSH, un flusso continuo di notevoli dimensioni di eventi
audit sarà generato, dato che ogni evento scritto genererà
un altro evento. È consigliabile eseguire
<command>praudit</command> su un device
pipe di audit da sessioni senza audit I/O in grande dettaglio, per evitare
fenomeni come questo.</para>
</warning>
</sect2>
<sect2>
<title>Ruotare File di Traccia di Audit</title>
<para>Le tracce di audit sono scritte solo dal kernel, e gestite
solo dal demone dell'audit, <application>auditd</application>. Gli
amministratori non dovrebbero cercare di usare &man.newsyslog.conf.5;
o altri tool per ruotare direttamente i log di audit. Invece,
il tool di gestione <command>audit</command> può essere usato
per interrompere l'audit, riconfigurare il sistema di audit,
ed eseguire la rotazione dei log. Il seguente comando fa sì
che il demone audit crei un nuovo log di audit e segnali al kernel
di usare il nuovo log. I vecchio log sarà terminato
e rinominato, ed a questo punto potrà essere manipolato
dall'amministratore.</para>
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
<warning>
<para>Se il demone <application>auditd</application> non sta girando
al momento, questo comando fallirà e sarà prodotto
un messaggio di errore.</para>
</warning>
<para>Aggiungendo la seguente linea a
<filename>/etc/crontab</filename> forzerà la rotazione
ogni dodici ore da parte di &man.cron.8;:</para>
<programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting>
<para>Il cambiamento prenderà effetto dopo che hai salvato
il nuovo <filename>/etc/crontab</filename>.</para>
<para>La rotazione automatica della traccia dell'audit basata
sulla dimensione del file è possibile attraverso l'opzione
<option>filesz</option> in &man.audit.control.5;, ed è
descritta nella sezione sui file di configurazione di questo capitolo.</para>
</sect2>
<sect2>
<title>Comprimere le Tracce di Audit</title>
<para>Man mano che i file di traccia dell'audit diventano
di grandi dimensioni, è spesso desiderabile
comprimerli o in qualche modo archiviarli dopo che sono
stati chiusi dal demone audit. Lo script <filename>audit_warn</filename>
può essere usato per eseguire operazioni personalizzate
per una varietà di eventi relativi all'audit, incluse
la chiusura pulita delle tracce di audit quando sono ruotate.
Ad esempio, il seguente comando può essere aggiunto
allo script <filename>audit_warn</filename> per comprimere
le tracce di audit alla chiusura:</para>
<programlisting>#
# Compress audit trail files on close.
#
if [ "$1" = closefile ]; then
gzip -9 $2
fi</programlisting>
<para>Altre attività di archiviazione possono includere
copiare i file di traccia su di un server centralizzato, cancellare
file di traccia vecchi, o ridurre la traccia di audit per rimuovere
i record non voluti. Lo script sarà eseguito solo quando
i file di traccia sono chiusi in maniera pulita, così
non sarà eseguito su tracce lasciate non terminate
a seguito di uno shutdown improprio.</para>
</sect2>
</sect1>
</chapter>