Add a new translated chapter.
This commit is contained in:
parent
821d4caf74
commit
25b0880275
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=30438
2 changed files with 953 additions and 0 deletions
15
fr_FR.ISO8859-1/books/handbook/audit/Makefile
Normal file
15
fr_FR.ISO8859-1/books/handbook/audit/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CHAPTERS= audit/chapter.sgml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
938
fr_FR.ISO8859-1/books/handbook/audit/chapter.sgml
Normal file
938
fr_FR.ISO8859-1/books/handbook/audit/chapter.sgml
Normal file
|
@ -0,0 +1,938 @@
|
|||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD French Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.28
|
||||
-->
|
||||
|
||||
<!-- Need more documentation on praudit, auditreduce, etc. Plus more info
|
||||
on the triggers from the kernel (log rotation, out of space, etc).
|
||||
And the /dev/audit special file if we choose to support that. Could use
|
||||
some coverage of integrating MAC with Event auditing and perhaps discussion
|
||||
on how some companies or organizations handle auditing and auditing
|
||||
requirements. -->
|
||||
|
||||
<chapter id="audit">
|
||||
<chapterinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
<contrib>Ecrit par </contrib>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Robert</firstname>
|
||||
<surname>Watson</surname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</chapterinfo>
|
||||
|
||||
<title>Audit des événements relatifs à la
|
||||
sécurité du système</title>
|
||||
&trans.a.fonvieille;
|
||||
|
||||
<sect1 id="audit-synopsis">
|
||||
<title>Synopsis</title>
|
||||
|
||||
<indexterm><primary>AUDIT</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>Audit des événements relatifs à la
|
||||
sécurité du système</primary>
|
||||
<see>MAC</see>
|
||||
</indexterm>
|
||||
|
||||
<para>&os; 6.2-RELEASE et les versions suivantes disposent d'un
|
||||
support pour l'audit d'événements relatifs
|
||||
à la sécurité du système. L'audit
|
||||
d'événements permet un enregistrement fiable et
|
||||
configurable d'une grande variété
|
||||
d'événements système en rapport avec la
|
||||
sécurité, parmi lesquels les ouvertures de
|
||||
session, les modifications de la configuration, et les
|
||||
accès aux fichiers et au réseau. Ces
|
||||
enregistrements ou journaux peuvent être d'une très
|
||||
grande aide pour la surveillance d'un système, pour la
|
||||
détection d'intrusion, et les analyses post-mortem. &os;
|
||||
implémente l'API et le format de fichiers
|
||||
<acronym>BSM</acronym> publiés par &sun; qui sont
|
||||
interopérables avec les implémentations d'audits
|
||||
de &solaris; de &sun; et de &macos; X d'&apple;.</para>
|
||||
|
||||
<para>Ce chapitre se concentre sur l'installation et la
|
||||
configuration de l'audit des événements. Il
|
||||
explique les stratégies utilisées pour l'audit, et
|
||||
propose un exemple de configuration.</para>
|
||||
|
||||
<para>Après la lecture de ce chapitre, vous saurez:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Ce qu'est l'audit d'événements et comment
|
||||
cela fonctionne.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Comment configurer l'audit d'événements
|
||||
sous &os; pour les utilisateurs et les processus.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Comment lire une trace d'audit en utilisant les outils
|
||||
de réduction et de lecture.</para>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Avant de lire ce chapitre, vous devrez:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Comprendre les fondements d'&unix; et de &os;
|
||||
(<xref linkend="basics">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Etre familier avec la configuration et la compilation du
|
||||
noyau (<xref linkend="kernelconfig">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Avoir quelques notions de sécurité et
|
||||
savoir comment les appliquer à &os; (<xref
|
||||
linkend="security">).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<warning>
|
||||
<para>La fonctionnalité d'audit sous &os; 6.2 est
|
||||
considérée comme expérimentale, aussi un
|
||||
déploiement en production ne devrait intervenir
|
||||
qu'après avoir considéré avec prudence les
|
||||
risques découlant de l'utilisation de logiciels
|
||||
expérimentaux. Parmi les limitations connues, on peut
|
||||
citer le fait que tous les événements
|
||||
systèmes en rapport avec la sécurité ne
|
||||
peuvent pas être soumis à un audit, et que certains
|
||||
mécanismes d'ouverture de session, comme les
|
||||
gestionnaires de procédures de connexions basés
|
||||
sur X11 et des <quote>démons</quote> tiers, ne permettent
|
||||
pas une configuration correcte de l'audit pour les ouvertures de
|
||||
session utilisateur.</para>
|
||||
</warning>
|
||||
|
||||
<warning>
|
||||
<para>Le système d'audit des événements
|
||||
permet la génération d'enregistrements
|
||||
détaillés de l'activité du système:
|
||||
sur un système occupé, un fichier journal d'audit
|
||||
peut être très important quand le système
|
||||
est configuré pour un haut niveau de détail,
|
||||
dépassant plusieurs gigaoctets par semaine sur certaines
|
||||
configurations. Les administrateurs système devraient
|
||||
prendre en compte les besoins en espace disque associés
|
||||
avec les configurations d'audit à haut niveau de
|
||||
détail. Par exemple, il peut être
|
||||
recommandé de dédier un système de fichiers
|
||||
à l'arborescence <filename>/var/audit</filename> de
|
||||
manière à ce que les autres systèmes de
|
||||
fichiers ne soient pas affectés si le système de
|
||||
fichiers pour les audits est plein.</para>
|
||||
</warning>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="audit-inline-glossary">
|
||||
<title>Mots-clés utilisés dans ce chapitre</title>
|
||||
|
||||
<para>Avant de lire ce chapitre, quelques termes relatifs à
|
||||
l'audit doivent être explicités:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>événement</emphasis>: un
|
||||
événement pouvant être audité est
|
||||
n'importe quel événement pouvant faire l'objet
|
||||
d'un suivi par le système d'audit. La création
|
||||
d'un fichier, la mise en place d'une connection réseau,
|
||||
ou une ouverture de session sont des exemples
|
||||
d'événements relatifs à la
|
||||
sécurité. Les événements sont
|
||||
considérés soit comme
|
||||
<quote>attribuables</quote>, quand on peut les relier à
|
||||
un utilisateur authentifié, soit
|
||||
<quote>non-attribuables</quote> quand on ne peut pas les
|
||||
relier à un utilisateur authentifié. Des
|
||||
événements comme ceux qui apparaissent avant
|
||||
l'authentification durant le processus d'ouverture de session,
|
||||
tels que les tentatives avec un mauvais mot de passe, sont des
|
||||
événement non-attribuables.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>classe</emphasis>: les classes
|
||||
d'événement désignent à l'aide
|
||||
d'un nom particulier des ensembles
|
||||
d'événements en rapport les uns avec les
|
||||
autres et sont utilisées dans les expressions de
|
||||
sélection des événements. Les classes
|
||||
d'événement généralement
|
||||
utilisées sont la <quote>création de
|
||||
fichiers</quote> (fc) l'<quote>exécution</quote> (ex)
|
||||
et l'<quote>ouverture/fermeture de session</quote>
|
||||
(lo).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>enregistrement</emphasis>: un enregistrement
|
||||
est une entrée du fichier de trace d'audit
|
||||
décrivant un événement relatif à
|
||||
la sécurité. Les enregistrements contiennent
|
||||
le type d'événement, des informations sur
|
||||
l'auteur (l'utilisateur) de l'action, la date et l'heure,
|
||||
des informations sur tout objet ou argument en relation avec
|
||||
l'action, et une condition de succès ou
|
||||
d'échec.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>trace d'audit</emphasis>: une trace d'audit,
|
||||
ou fichier journal, consiste en une série
|
||||
d'enregistrements décrivant les
|
||||
événements relatifs à la
|
||||
sécurité. Généralement ces traces
|
||||
sont organisées de manière chronologiques par
|
||||
rapport à l'horaire de fin des
|
||||
événements. Seuls les processus
|
||||
autorisés peuvent ajouter des enregistrements aux
|
||||
fichiers journaux d'audit.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>expression de sélection</emphasis>: une
|
||||
expression de sélection est une chaîne de
|
||||
caractères contenant une liste de préfixes et
|
||||
de classes d'événement d'audit utilisés
|
||||
pour désigner des événements.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>préselection</emphasis>: le processus
|
||||
par lequel le système identifie quels
|
||||
événements intéressent l'administrateur
|
||||
afin d'éviter la génération
|
||||
d'enregistrements d'audit sans intérêt pour
|
||||
l'administrateur. La configuration de la
|
||||
présélection utilise une série
|
||||
d'expressions de sélection pour déterminer
|
||||
quelles classes d'événement sont à
|
||||
auditer et pour quels utilisateurs, ainsi que le
|
||||
paramétrage global qui s'applique aux processus
|
||||
authentifiés et non-authentifiés.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>réduction</emphasis>: le processus par
|
||||
lequel les enregistrements de traces d'audit existantes sont
|
||||
sélectionnés pour être conservés,
|
||||
imprimés ou analysés. Ou encore le processus
|
||||
qui supprime de la trace d'audit les enregistrements
|
||||
non-désirés. En utilisant le principe de
|
||||
réduction, les administrateurs peuvent mettre en
|
||||
place des stratégies pour la conservation des
|
||||
données d'audit. Par exemple, les traces d'audit
|
||||
détaillées peuvent être
|
||||
conservées pendant un mois, mais passé ce
|
||||
délai, les traces seront réduites afin de ne
|
||||
préserver pour archivage que les informations
|
||||
relatives aux ouvertures de sessions.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="audit-install">
|
||||
<title>Installation du support pour les audits</title>
|
||||
|
||||
<para>Le support pour l'audit des événements est
|
||||
installé avec le système de base de &os; depuis la
|
||||
version 6.2-RELEASE. Cependant ce support doit être
|
||||
compilé dans le noyau en ajoutant la ligne suivante au
|
||||
fichier de configuration du noyau:</para>
|
||||
|
||||
<programlisting>options AUDIT</programlisting>
|
||||
|
||||
<para>Recompilez et réinstallez le noyau en suivant le
|
||||
processus classique expliqué dans le <xref
|
||||
linkend="kernelconfig">.</para>
|
||||
|
||||
<para>Une fois que le noyau a été compilé,
|
||||
installé, et que le système a été
|
||||
redémarré, activez le <quote>démon</quote>
|
||||
d'audit en ajoutant la ligne suivante au fichier
|
||||
&man.rc.conf.5;:</para>
|
||||
|
||||
<programlisting>auditd_enable="YES"</programlisting>
|
||||
|
||||
<para>Le support pour les audits peut alors être
|
||||
lancé par un redémarrage de la machine ou
|
||||
manuellement en lançant le <quote>démon</quote>
|
||||
d'audit:</para>
|
||||
|
||||
<programlisting>/etc/rc.d/auditd start</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="audit-config">
|
||||
<title>Configuration de l'audit</title>
|
||||
|
||||
<para>Tous les fichiers de configuration de l'audit
|
||||
d'événements en rapport avec la
|
||||
sécurité se trouvent dans le répertoire
|
||||
<filename class="directory">/etc/security</filename>. Les
|
||||
fichiers suivants doivent être présents avant le
|
||||
lancement du <quote>démon</quote> d'audit:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><filename>audit_class</filename> - contient les
|
||||
définitions des classes d'audit.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>audit_control</filename> - contrôle les
|
||||
caractéristiques du système d'audit comme les
|
||||
classes d'audit par défaut, l'espace disque minimal
|
||||
à conserver sur le volume réservé aux
|
||||
journaux, la taille maximale des traces d'audit, etc.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>audit_event</filename> - les noms et la
|
||||
description des événements systèmes
|
||||
audités ainsi qu'une liste de classes auxquelles
|
||||
appartiennent chaque événement.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>audit_user</filename> - les classes
|
||||
d'événement à auditer pour des
|
||||
utilisateurs spécifiques, qui s'ajoutent aux
|
||||
paramètres généraux fixés par
|
||||
défaut à l'ouverture de session.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>audit_warn</filename> - une procédure
|
||||
modifiable utilisée par
|
||||
<application>auditd</application> pour générer
|
||||
des messages d'alerte lors des situations exceptionnelles
|
||||
comme un espace disque faible pour les fichiers journaux
|
||||
d'audit ou quand il y a eu rotation de ces fichiers
|
||||
journaux.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<warning>
|
||||
<para>Les fichiers de configuration de l'audit devraient
|
||||
être modifiés et gérés avec prudence
|
||||
étant donné que des erreurs dans la configuration
|
||||
pourraient donner lieu à un enregistrement incorrect des
|
||||
événements.</para>
|
||||
</warning>
|
||||
|
||||
<sect2>
|
||||
<title>Expressions de sélection des
|
||||
événements</title>
|
||||
|
||||
<para>Les expressions de sélection sont utilisées
|
||||
à plusieurs endroits dans la configuration du
|
||||
système d'audit pour déterminer quels
|
||||
événements doivent être suivis. Les
|
||||
expressions contiennent une liste de classes
|
||||
d'événements, chacune avec un préfixe
|
||||
indiquant si les enregistrements correspondants doivent
|
||||
être acceptés ou ignorés, et qui peut, de
|
||||
manière optionnelle, indiquer si l'entrée se
|
||||
limite aux opérations réussies ou aux
|
||||
échecs. Les expressions de sélection sont
|
||||
évaluées de gauche à droite, et deux
|
||||
expressions sont combinées en ajoutant l'une à
|
||||
la suite de l'autre.</para>
|
||||
|
||||
<para>La liste suivante contient les classes
|
||||
d'événements présentes par défaut
|
||||
dans le fichier <filename>audit_class</filename>:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><literal>all</literal> - <emphasis>all</emphasis>
|
||||
(tout) - correspond à toutes les classes
|
||||
d'événements.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ad</literal> -
|
||||
<emphasis>administrative</emphasis> (administration)
|
||||
- actions d'administration du système.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ap</literal> -
|
||||
<emphasis>application</emphasis> - action définie
|
||||
par l'application.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>cl</literal> - <emphasis>file
|
||||
close</emphasis> (fermeture de fichiers) - enregistre les
|
||||
utilisations de l'appel système
|
||||
<function>close</function>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ex</literal> - <emphasis>exec</emphasis>
|
||||
(exécution) - audite les exécutions de
|
||||
programmes. L'audit des arguments en ligne de commande et
|
||||
des variables d'environnement est contrôlé
|
||||
par via &man.audit.control.5; en utilisant les
|
||||
paramètres <literal>argv</literal> et
|
||||
<literal>envv</literal> pour l'entrée
|
||||
<literal>policy</literal>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fa</literal> - <emphasis>file attribute
|
||||
access</emphasis> - enregistre l'accès aux
|
||||
attributs des objets comme &man.stat.1;, &man.pathconf.2;
|
||||
et les événements similaires.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fc</literal> - <emphasis>file
|
||||
create</emphasis> (cration de fichiers) - enregistre les
|
||||
événements ayant pour résultat la
|
||||
création d'un fichier.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fd</literal> - <emphasis>file
|
||||
delete</emphasis> (suppression de fichiers) - enregistre
|
||||
les événements pour lesquels une suppression
|
||||
de fichier a lieu.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fm</literal> - <emphasis>file attribute
|
||||
modify</emphasis> (modification des attributs d'un
|
||||
fichier) - enregistre les événements lors
|
||||
desquels une modification des attributs d'un fichier
|
||||
intervient, comme l'utilisation de &man.chown.8;,
|
||||
&man.chflags.1;, &man.flock.2;, etc.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fr</literal> - <emphasis>file read</emphasis>
|
||||
(lecture de fichiers) - enregistre les
|
||||
événements qui donnent lieu à la
|
||||
lecture de données, l'ouverture de fichiers
|
||||
à la lecture, etc.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fw</literal> - <emphasis>file
|
||||
write</emphasis> (écriture de fichiers) -
|
||||
enregistre les événements qui donnent lieu
|
||||
à l'écriture de données, à
|
||||
l'écriture ou à la modification de fichiers,
|
||||
etc.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>io</literal> - <emphasis>ioctl</emphasis> -
|
||||
enregistre l'utilisation de l'appel système
|
||||
&man.ioctl.2;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ip</literal> - <emphasis>ipc</emphasis> -
|
||||
enregistre les différentes utilisations de
|
||||
communication inter-processus, dont les utilisations des
|
||||
tubes POSIX et les opérations
|
||||
<acronym>IPC</acronym> Système V.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>lo</literal> -
|
||||
<emphasis>login_logout</emphasis> (ouverture et fermeture
|
||||
de session) - enregistre les ouvertures et fermeture de
|
||||
session (&man.login.1; et &man.logout.1;) intervenant sur
|
||||
le système.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>na</literal> - <emphasis>non
|
||||
attributable</emphasis> (non-attribuable) - enregistre les
|
||||
événements non-attribuables.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>no</literal> - <emphasis>invalid
|
||||
class</emphasis> (classe invalide) - ne correspond
|
||||
à aucun des événements
|
||||
surveillés.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>nt</literal> - <emphasis>network</emphasis>
|
||||
(réseau) - enregistre les événements
|
||||
relatifs au réseau, comme l'utilisation des
|
||||
fonctions &man.connect.2; et &man.accept.2;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ot</literal> - <emphasis>other</emphasis>
|
||||
(autre) - enregistre les événements
|
||||
divers.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>pc</literal> - <emphasis>process</emphasis>
|
||||
(processus) - enregistre les opérations sur les
|
||||
processus, comme l'utilisation des fonctions &man.exec.3;
|
||||
et &man.exit.3;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Ces classes d'événement peuvent être
|
||||
personnalisées en modifiant les fichiers de
|
||||
configuration <filename>audit_class</filename> et
|
||||
<filename>audit_event</filename>.</para>
|
||||
|
||||
<para>Chaque classe d'audit dans la liste est combinée
|
||||
avec un préfixe indiquant si les opérations
|
||||
réussies/échouées sont
|
||||
sélectionnées, et si l'entrée ajoute ou
|
||||
supprime une sélection pour la classe ou le type
|
||||
concerné.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>(rien) enregistre les succès et les
|
||||
échecs de l'événement.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>+</literal> enregistre les
|
||||
événements réussis de cette
|
||||
classe.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>-</literal> enregistre les
|
||||
événements de cette classe qui ont
|
||||
échoué.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>^</literal> n'enregistre ni les
|
||||
événements réussis ni les échecs
|
||||
de cette classe.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>^+</literal> ne pas enregistrer les
|
||||
événements réussis de cette
|
||||
classe.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>^-</literal> ne pas enregistrer les
|
||||
événements de cette classe qui ont
|
||||
échoué.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>L'exemple suivant d'expression de sélection permet
|
||||
la sélection des ouvertures et fermetures de session
|
||||
réussies ou échouées, et uniquement les
|
||||
exécutions ayant réussies:</para>
|
||||
|
||||
<programlisting>lo,+ex</programlisting>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Fichiers de configuration</title>
|
||||
|
||||
<para>Dans la plupart des cas, les administrateurs ne devront
|
||||
modifier que deux fichiers lors de la configuration du
|
||||
système d'audit: <filename>audit_control</filename> et
|
||||
<filename>audit_user</filename>. Le premier contrôle
|
||||
les propriétés et les stratégies au
|
||||
niveau du système; le second peut être
|
||||
utilisé pour affiner l'audit pour chaque
|
||||
utilisateur.</para>
|
||||
|
||||
<sect3 id="audit-auditcontrol">
|
||||
<title>Le fichier <filename>audit_control</filename></title>
|
||||
|
||||
<para>Le fichier <filename>audit_control</filename> fixe un
|
||||
certain nombre de paramètres par défaut pour
|
||||
le système d'audit. Le contenu de ce fichier
|
||||
ressemble à ce qui suit:</para>
|
||||
|
||||
<programlisting>dir:/var/audit
|
||||
flags:lo
|
||||
minfree:20
|
||||
naflags:lo
|
||||
policy:cnt
|
||||
filesz:0</programlisting>
|
||||
|
||||
<para>L'option <literal>dir</literal> est utilisée pour
|
||||
déclarer un ou plusieurs répertoires dans
|
||||
lesquels seront stockés les fichiers journaux. Si
|
||||
l'on mentionne plus d'un répertoire, ces derniers
|
||||
seront utilisés dans l'ordre à mesure qu'ils
|
||||
se remplissent. Il est classique de configurer le
|
||||
système d'audit pour le stockage des fichiers
|
||||
journaux sur un système de fichiers
|
||||
dédié, afin d'éviter toute
|
||||
interférence entre le système d'audit et
|
||||
d'autres systèmes si le système de fichiers
|
||||
est plein.</para>
|
||||
|
||||
<para>Le champ <literal>flags</literal> fixe le masque
|
||||
général de présélection
|
||||
utilisé par défaut pour les
|
||||
événements attribuables. Dans l'exemple
|
||||
ci-dessus, les ouvertures et fermetures de sessions
|
||||
réussies ou échouées sont
|
||||
enregistrées pour tous les utilisateurs.</para>
|
||||
|
||||
<para>L'option <literal>minfree</literal> définit le
|
||||
pourcentage minimal d'espace libre du système de
|
||||
fichiers sur lequel les traces d'audit sont stockées.
|
||||
Si cette limite est dépassée, un avertissement
|
||||
sera généré. L'exemple ci-dessus fixe
|
||||
l'espace minimal à vingt pourcents.</para>
|
||||
|
||||
<para>L'entrée <literal>naflags</literal> indique les
|
||||
classes à surveiller pour les
|
||||
événements non-attribués, comme les
|
||||
processus d'ouverture de session et les
|
||||
<quote>démons</quote> système.</para>
|
||||
|
||||
<para>L'entrée <literal>policy</literal> donne une
|
||||
liste d'indicateurs de stratégie contrôlant
|
||||
divers aspect du comportement de l'audit
|
||||
séparés par une virgule. L'indicateur
|
||||
<literal>cnt</literal> indique que le système devrait
|
||||
continuer à fonctionner en dépit d'un
|
||||
échec dans l'audit (l'emploi de cet indicateur est
|
||||
hautement recommandé). Un autre indicateur
|
||||
généralement utilisé est
|
||||
<literal>argv</literal>, qui provoque l'audit des arguments
|
||||
passés à l'appel système &man.execve.2;
|
||||
lors de l'audit de l'exécution des commandes.</para>
|
||||
|
||||
<para>L'entrée <literal>filez</literal> indique la
|
||||
taille maximale en octets autorisée pour un fichier
|
||||
de trace avant qu'il soit interrompu et que le
|
||||
système provoque sa rotation. La valeur par
|
||||
défaut, 0, désactive la rotation automatique
|
||||
des journaux. Si la taille de fichier est différente
|
||||
de zéro mais inférieure à 512K, elle
|
||||
sera ignorée et un message sera
|
||||
généré.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3 id="audit-audituser">
|
||||
<title>Le fichier <filename>audit_user</filename></title>
|
||||
|
||||
<para>Le fichier <filename>audit_user</filename> permet
|
||||
à l'administrateur de préciser des conditions
|
||||
supplémentaires d'audit pour des utilisateurs
|
||||
spécifiques. Chaque ligne paramètre l'audit
|
||||
pour un utilisateur par l'intermédiaire de deux
|
||||
champs: le premier est le champ
|
||||
<literal>alwaysaudit</literal>, qui indique l'ensemble des
|
||||
événements qui devraient toujours être
|
||||
surveillés pour l'utilisateur, le deuxième
|
||||
champ, <literal>neveraudit</literal>, indique un ensemble
|
||||
d'événements qui ne devrait jamais être
|
||||
audité pour cet utilisateur.</para>
|
||||
|
||||
<para>L'exemple suivant de fichier
|
||||
<filename>audit_user</filename> permet le suivi des
|
||||
ouvertures et fermetures de sessions et l'exécution
|
||||
de commandes avec succès de l'utilisateur
|
||||
<username>root</username>, et audite la création de
|
||||
fichiers et l'exécution de commandes avec
|
||||
succès pour l'utilisateur <username>www</username>.
|
||||
Si ce fichier est utilisé avec l'exemple
|
||||
précédent de fichier
|
||||
<filename>audit_control</filename>, l'entrée
|
||||
<literal>lo</literal> pour <username>root</username> est
|
||||
redondante, et les événements relatifs aux
|
||||
ouvertures et aux fermetures de sessions seront
|
||||
également enregistrés pour l'utilisateur
|
||||
<username>www</username>.</para>
|
||||
|
||||
<programlisting>root:lo,+ex:no
|
||||
www:fc,+ex:no</programlisting>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="audit-administration">
|
||||
<title>Administration du système d'audit</title>
|
||||
|
||||
<sect2>
|
||||
<title>Consultation des traces d'audit</title>
|
||||
|
||||
<para>Les traces d'audit sont stockées sous le format
|
||||
binaire BSM (<quote>Basic Security Module</quote>), aussi il
|
||||
sera nécessaire d'utiliser des outils pour modifier ou
|
||||
convertir en texte les fichiers de trace. La commande
|
||||
&man.praudit.1; convertit les fichiers de trace en simple
|
||||
texte; la commande &man.auditreduce.1; peut être
|
||||
utilisée pour réduire le fichier de trace en vue
|
||||
d'une analyse, d'un archivage, ou d'une impression. La
|
||||
commande <command>auditreduce</command> supporte une
|
||||
variété de paramètres de
|
||||
sélection, parmi lesquels le type
|
||||
d'événement, la classe de
|
||||
l'événement, l'utilisateur, la date ou l'heure
|
||||
de l'événement, et le chemin d'accès ou
|
||||
l'objet sur lequel on agit.</para>
|
||||
|
||||
<para>Par exemple, l'utilitaire <command>praudit</command>
|
||||
affichera sous forme de texte brut l'intégralité
|
||||
du contenu du fichier journal d'audit
|
||||
précisé:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
|
||||
|
||||
<para>Où
|
||||
<filename><replaceable>AUDITFILE</replaceable></filename> est
|
||||
le journal à afficher.</para>
|
||||
|
||||
<para>Les traces d'audit consistent en une série
|
||||
d'enregistrements constitués de champs que la commande
|
||||
<command>praudit</command> affiche de manière
|
||||
séquentielle, un par ligne. Chaque champ est
|
||||
spécifique, comme <literal>header</literal> contenant
|
||||
l'entête de l'enregistrement, ou <literal>path</literal>
|
||||
contenant le chemin d'accès. Ce qui suit est un
|
||||
exemple d'événement
|
||||
<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>Cet audit représente un appel réussi
|
||||
à <literal>execve</literal>, lors de l'exécution
|
||||
de la commande <literal>finger doug</literal>. Le champ pour
|
||||
les arguments contient la ligne de commande
|
||||
présentée par l'interpréteur de commandes
|
||||
au noyau. Le champ <literal>path</literal> contient le chemin
|
||||
d'accès à l'exécutable comme le voit le
|
||||
noyau. Le champ <literal>attribute</literal> décrit le
|
||||
binaire, et en particulier, précise les permissions sur
|
||||
le fichier qui permettent de déterminer si
|
||||
l'application avait les permissions <quote>setuid</quote>. Le
|
||||
champ <literal>subject</literal> décrit le sujet de
|
||||
l'audit, et conserve sous la forme d'une séquence
|
||||
l'identifiant (ID) de l'utilisateur audité, les
|
||||
identifiants groupe et utilisateur effectifs, les identifiants
|
||||
groupe et utilisateur réels, l'ID du processus, l'ID de
|
||||
la session, l'ID du port, et l'adresse correspondant à
|
||||
la session. Notez que l'ID de l'utilisateur pour l'audit
|
||||
diffère de l'ID réel de l'utilisateur:
|
||||
l'utilisateur <username>robert</username> est passé en
|
||||
<username>root</username> avant l'exécution de la
|
||||
commande, mais l'audit se fait par rapport à
|
||||
l'utilisateur authentifié original. Et enfin, le champ
|
||||
<literal>return</literal> indique la réussite de
|
||||
l'exécution, et le champ <literal>trailer</literal>
|
||||
termine l'enregistrement.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Réduction des traces d'audit</title>
|
||||
|
||||
<para>Comme les journaux d'audit peuvent être très
|
||||
gros, un administrateur voudra ne conserver qu'une partie des
|
||||
enregistrements, comme par exemple les enregistrements
|
||||
associés à un utilisateur particulier:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
|
||||
|
||||
<para>Cette commande sélectionnera tous les
|
||||
enregistrements stockés dans le fichier
|
||||
<filename><replaceable>AUDITFILE</replaceable></filename> et
|
||||
concernant l'utilisateur <username>trhodes</username>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Délégation des droits d'accès aux
|
||||
résultats des audits</title>
|
||||
|
||||
<para>Les membres du groupe <groupname>audit</groupname> sont
|
||||
autorisés à lire les traces d'audit
|
||||
présentes dans le répertoire <filename
|
||||
class="directory">/var/audit</filename>; par défaut ce
|
||||
groupe est vide, par conséquent seul l'utilisateur
|
||||
<username>root</username> pourra lire les traces d'audit. Des
|
||||
utilisateurs peuvent être ajoutés au groupe
|
||||
<groupname>audit</groupname> afin de déléguer
|
||||
les droits de lecture des audits à ses utilisateurs.
|
||||
Comme la possibilité de suivre le contenu des fichiers
|
||||
journaux de l'audit donne un aperçu significatif du
|
||||
comportement des utilisateurs et des processus, il est donc
|
||||
recommandé de déléguer avec prudence les
|
||||
droits de lecture des audits.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Surveillance en direct à l'aide de tubes
|
||||
d'audit</title>
|
||||
|
||||
<para>Les tubes (<quote>pipes</quote>) d'audit sont des
|
||||
pseudo-périphériques <quote>clonables</quote> du
|
||||
système de fichiers des périphériques qui
|
||||
autorisent aux applications l'accès au flux
|
||||
d'enregistrement des audits en cours. C'est de tout premier
|
||||
intérêt pour les auteurs d'applications de
|
||||
détection des intrusions et de surveillance du
|
||||
système. Pour l'administrateur, le tube d'audit est un
|
||||
moyen pratique d'autoriser la surveillance en direct sans
|
||||
avoir à faire face aux problèmes de permissions
|
||||
ou de rotation des fichiers journaux interrompant le flux des
|
||||
enregistrements des événements. Pour suivre le
|
||||
flux des enregistrements de l'audit en cours, utiliser la
|
||||
ligne de commande suivante:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
|
||||
|
||||
<para>Par défaut, les fichiers spéciaux de
|
||||
périphériques correspondant aux tubes d'audit ne
|
||||
sont accessibles qu'à l'utilisateur
|
||||
<username>root</username>. Pour les rendre accessibles aux
|
||||
membres du groupe <groupname>audit</groupname>, ajoutez une
|
||||
règle <literal>devfs</literal> au fichier
|
||||
<filename>devfs.rules</filename>:</para>
|
||||
|
||||
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
|
||||
|
||||
<para>Consultez la page de manuel &man.devfs.rules.5; pour plus
|
||||
d'information sur la configuration du système de
|
||||
fichiers devfs.</para>
|
||||
|
||||
<warning>
|
||||
<para>Il est relativement simple de produire un effet de
|
||||
boucle sans fin, dans lequel la consultation de chaque
|
||||
événement enregistré par le
|
||||
système d'audit provoque la génération
|
||||
de nouveaux événements d'audit. Par exemple,
|
||||
si toutes les entrées/sorties réseau sont
|
||||
surveillées, et que &man.praudit.1; est
|
||||
exécuté depuis une session SSH, alors un flux
|
||||
continu d'événements sera
|
||||
généré suivant une fréquence
|
||||
importante, chaque événement affiché
|
||||
générant un autre événement. Il
|
||||
est recommandé d'exécuter
|
||||
<command>praudit</command> sur un tube par
|
||||
l'intermédiaire de sessions sans surveillance
|
||||
précise des entrées/sortie afin
|
||||
d'éviter que ne survienne un tel
|
||||
problème.</para>
|
||||
</warning>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Rotation des fichiers de trace d'audit</title>
|
||||
|
||||
<para>Les traces d'audit ne sont écrites que par le
|
||||
noyau, et ne sont gérées que par le
|
||||
<quote>démon</quote> d'audit,
|
||||
<application>auditd</application>. Les administrateurs ne
|
||||
devraient donc pas tenter d'utiliser &man.newsyslog.conf.5; ou
|
||||
tout autre outil pour assurer la rotation directe des journaux
|
||||
d'audit. A la place, l'utilitaire <command>audit</command>
|
||||
devrait être employé pour stopper l'audit,
|
||||
reconfigurer le système d'audit et effectuer la
|
||||
rotation des journaux. La commande suivante provoque la
|
||||
création d'un nouveau fichier journal d'audit par le
|
||||
<quote>démon</quote> et signale au noyau d'utiliser le
|
||||
nouveau fichier pour les enregistrements. L'ancien fichier
|
||||
journal sera fermé et renommé et pourra,
|
||||
à partir de cet instant, être manipulé par
|
||||
l'administrateur.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
|
||||
|
||||
<warning>
|
||||
<para>Si le <quote>démon</quote>
|
||||
<application>auditd</application> ne tourne pas, cette
|
||||
commande échouera et un message d'erreur sera
|
||||
généré.</para>
|
||||
</warning>
|
||||
|
||||
<para>Ajouter la ligne suivante au fichier
|
||||
<filename>/etc/crontab</filename> provoquera la rotation des
|
||||
fichiers toutes les douze heures à l'aide de
|
||||
&man.cron.8;:</para>
|
||||
|
||||
<programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting>
|
||||
|
||||
<para>La modification sera prise en compte une fois que aurez
|
||||
sauvegardé le nouveau fichier
|
||||
<filename>/etc/crontab</filename>.</para>
|
||||
|
||||
<para>La rotation automatique du fichier d'une trace d'audit
|
||||
basée sur la taille du fichier est possible à
|
||||
l'aide de l'option <option>filesz</option> de
|
||||
&man.audit.control.5;, cette option est décrite dans la
|
||||
section de ce chapitre concernant les fichiers de
|
||||
configuration.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Compresser les traces d'audit</title>
|
||||
|
||||
<para>Les fichiers de trace d'audit peuvent devenir très
|
||||
gros, il est souvent désirable de les compresser ou
|
||||
sinon de les archiver une fois qu'ils ont été
|
||||
fermés par le <quote>démon</quote> d'audit. La
|
||||
procédure <filename>audit_warn</filename> peut
|
||||
être employée pour effectuer des
|
||||
opérations personnalisées pour une
|
||||
variété d'événements relatifs
|
||||
à l'audit, y compris l'arrêt propre des traces
|
||||
d'audit lors de leur rotation. Par exemple, ce qui suit peut
|
||||
être ajouté à la procédure
|
||||
<filename>audit_warn</filename> pour compresser les traces
|
||||
d'audit à leur fermeture:</para>
|
||||
|
||||
<programlisting>#
|
||||
# Compression des fichiers de trace d'audit à leur fermeture.
|
||||
#
|
||||
if [ "$1" = closefile ]; then
|
||||
gzip -9 $2
|
||||
fi</programlisting>
|
||||
|
||||
<para>D'autres activités d'archivage pourront inclure la
|
||||
copie des fichiers de trace vers un serveur central, la
|
||||
suppression d'anciennes traces, ou la réduction des
|
||||
traces pour supprimer les enregistrements inutiles. La
|
||||
procédure ne sera exécutée que lorsque
|
||||
les fichiers de trace d'audit auront été
|
||||
proprement arrêtés, et ne sera pas
|
||||
exécutée sur les traces interrompues en cours
|
||||
d'utilisation suite à un arrêt incorrect du
|
||||
système.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
Loading…
Reference in a new issue