17.4. Configuration de l'audit

Tous les fichiers de configuration de l'audit d'événements en rapport avec la sécurité se trouvent dans le répertoire /etc/security. Les fichiers suivants doivent être présents avant le lancement du « démon » d'audit:

Avertissement:

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.

17.4.1. Expressions de sélection des événements

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.

La liste suivante contient les classes d'événements présentes par défaut dans le fichier audit_class:

  • all - all (tout) - correspond à toutes les classes d'événements.

  • ad - administrative (administration) - actions d'administration du système.

  • ap - application - action définie par l'application.

  • cl - file close (fermeture de fichiers) - enregistre les utilisations de l'appel système close.

  • ex - exec (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 audit_control(5) en utilisant les paramètres argv et envv pour l'entrée policy.

  • fa - file attribute access - enregistre l'accès aux attributs des objets comme stat(1), pathconf(2) et les événements similaires.

  • fc - file create (création de fichiers) - enregistre les événements ayant pour résultat la création d'un fichier.

  • fd - file delete (suppression de fichiers) - enregistre les événements pour lesquels une suppression de fichier a lieu.

  • fm - file attribute modify (modification des attributs d'un fichier) - enregistre les événements lors desquels une modification des attributs d'un fichier intervient, comme l'utilisation de chown(8), chflags(1), flock(2), etc.

  • fr - file read (lecture de fichiers) - enregistre les événements qui donnent lieu à la lecture de données, l'ouverture de fichiers à la lecture, etc.

  • fw - file write (écriture de fichiers) - enregistre les événements qui donnent lieu à l'écriture de données, à l'écriture ou à la modification de fichiers, etc.

  • io - ioctl - enregistre l'utilisation de l'appel système ioctl(2).

  • ip - ipc - enregistre les différentes utilisations de communication inter-processus, dont les utilisations des tubes POSIX et les opérations IPC Système V.

  • lo - login_logout (ouverture et fermeture de session) - enregistre les ouvertures et fermeture de session (login(1) et logout(1)) intervenant sur le système.

  • na - non attributable (non-attribuable) - enregistre les événements non-attribuables.

  • no - invalid class (classe invalide) - ne correspond à aucun des événements surveillés.

  • nt - network (réseau) - enregistre les événements relatifs au réseau, comme l'utilisation des fonctions connect(2) et accept(2).

  • ot - other (autre) - enregistre les événements divers.

  • pc - process (processus) - enregistre les opérations sur les processus, comme l'utilisation des fonctions exec(3) et exit(3).

Ces classes d'événement peuvent être personnalisées en modifiant les fichiers de configuration audit_class et audit_event.

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

  • (rien) enregistre les succès et les échecs de l'événement.

  • + enregistre les événements réussis de cette classe.

  • - enregistre les événements de cette classe qui ont échoué.

  • ^ n'enregistre ni les événements réussis ni les échecs de cette classe.

  • ^+ ne pas enregistrer les événements réussis de cette classe.

  • ^- ne pas enregistrer les événements de cette classe qui ont échoué.

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:

lo,+ex

17.4.2. Fichiers de configuration

Dans la plupart des cas, les administrateurs ne devront modifier que deux fichiers lors de la configuration du système d'audit: audit_control et audit_user. 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.

17.4.2.1. Le fichier audit_control

Le fichier audit_control 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:

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

L'option dir 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.

Le champ flags 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.

L'option minfree 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 pourcent.

L'entrée naflags indique les classes à surveiller pour les événements non-attribués, comme les processus d'ouverture de session et les « démons » système.

L'entrée policy 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 cnt 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 argv, qui provoque l'audit des arguments passés à l'appel système execve(2) lors de l'audit de l'exécution des commandes.

L'entrée filez 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é.

17.4.2.2. Le fichier audit_user

Le fichier audit_user 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 alwaysaudit, qui indique l'ensemble des événements qui devraient toujours être surveillés pour l'utilisateur, le deuxième champ, neveraudit, indique un ensemble d'événements qui ne devrait jamais être audité pour cet utilisateur.

L'exemple suivant de fichier audit_user permet le suivi des ouvertures et fermetures de sessions et l'exécution de commandes avec succès de l'utilisateur root, et audite la création de fichiers et l'exécution de commandes avec succès pour l'utilisateur www. Si ce fichier est utilisé avec l'exemple précédent de fichier audit_control, l'entrée lo pour root est redondante, et les événements relatifs aux ouvertures et aux fermetures de sessions seront également enregistrés pour l'utilisateur www.

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

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.

Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.