aboutsummaryrefslogtreecommitdiff
path: root/it_IT.ISO8859-15/books/handbook/audit/chapter.sgml
blob: 134f42f4ecf8802667b5dce5d6f182361c5f9a47 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
<?xml version="1.0" encoding="iso-8859-15" standalone="no"?>
<!--
     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>