Ignorer les liens de navigation | |
Quitter l'aperu | |
Guide d'administration système : Services de sécurité |
Partie I Présentation de la sécurité
1. Services de sécurité (présentation)
Partie II Sécurité du système, des fichiers et des périphériques
2. Gestion de la sécurité de la machine (présentation)
3. Contrôle de l'accès aux systèmes (tâches)
4. Contrôle de l'accès aux périphériques (tâches)
5. Utilisation de l'outil de génération de rapports d'audit de base (tâches)
6. Contrôle de l'accès aux fichiers (tâches)
7. Utilisation d'Automated Security Enhancement Tool (Tâches)
Partie III Rôles, profils de droits et privilèges
8. Utilisation des rôles et des privilèges (présentation)
9. Utilisation du contrôle d'accès basé sur les rôles (tâches)
10. Contrôle d'accès basé sur les rôles (référence)
Partie IV Services cryptographiques
13. Structure cryptographique Oracle Solaris (présentation)
14. Structure cryptographique Oracle Solaris (tâches)
15. Structure de gestion des clés Oracle Solaris
Partie V Services d'authentification et communication sécurisée
16. Utilisation des services d'authentification (tâches)
19. Utilisation d'Oracle Solaris Secure Shell (tâches)
20. Oracle Solaris Secure Shell (référence)
21. Introduction au service Kerberos
22. Planification du service Kerberos
23. Configuration du service Kerberos (tâches)
24. Messages d'erreur et dépannage de Kerberos
25. Administration des principaux et des stratégies Kerberos (tâches)
26. Utilisation des applications Kerberos (tâches)
27. Service Kerberos (référence)
Partie VII Audit Oracle Solaris
28. Audit Oracle Solaris (présentation)
29. Planification de l'audit Oracle Solaris
30. Gestion de l'audit Oracle Solaris (tâches)
Audit Oracle Solaris (liste des tâches)
Configuration des fichiers d'audit (liste des tâches)
Configuration des fichiers d'audit (tâches)
Modification du fichier audit_control
Configuration des journaux d'audit syslog
Modification des caractéristiques d'audit d'un utilisateur
Modification de l'appartenance à une classe d'un événement d'audit
Configuration et activation du service d'audit (liste des tâches)
Configuration et activation du service d'audit (tâches)
Création des partitions pour les fichiers d'audit
Configuration de l'alias de messagerie audit_warn
Configuration de la stratégie d'audit
Désactivation du service d'audit
Mise à jour du service d'audit
Configuration du service d'audit dans les zones (tâches)
Configuration identique de toutes les zones pour l'audit
Configuration de l'audit par zone
Gestion des enregistrements d'audit (liste des tâches)
Gestion des enregistrements d'audit
Affichage des formats d'enregistrement d'audit
Fusion des fichiers d'audit de la piste d'audit
Sélection des événements d'audit de la piste d'audit
Affichage du contenu des fichiers d'audit binaires
Nettoyage d'un fichier d'audit not_terminated
Contrôle du dépassement de la piste d'audit
Dépannage de l'audit Oracle Solaris (tâches)
Dépannage de l'audit Oracle Solaris (liste des tâches)
Vérification de l'exécution de l'audit Oracle Solaris
Atténuation du volume des enregistrements d'audit produits
Audit de toutes les commandes par les utilisateurs
Recherche des enregistrements d'audit concernant des modifications de fichiers spécifiques
Modification d'un masque de présélection utilisateur
Suppression de certains événements de la liste d'audit
Limitation de la taille des fichiers d'audit binaires
Audit des connexions à partir d'autres systèmes d'exploitation
Audit des transferts de fichiers FTP et SFTP
Avant d'activer l'audit sur votre réseau, vous pouvez personnaliser les fichiers de configuration d'audit pour répondre aux conditions requises pour l'audit de votre site. Vous pouvez également redémarrer le service d'audit ou réinitialiser le système local pour lire les fichiers de configuration modifiés après l'activation du service d'audit. Il est toutefois recommandé de personnaliser votre configuration de l'audit autant que possible avant de démarrer le service d'audit.
Si vous avez mis en œuvre des zones, vous pouvez choisir d'auditer toutes les zones à partir de la zone globale. Pour faire la différence entre les zones dans la sortie d'audit, vous pouvez définir l'option de stratégie zonename. Si vous décidez d'auditer les zones non globales individuellement, vous pouvez également définir la stratégie perzone dans la zone globale et personnaliser les fichiers de configuration d'audit dans les zones non globales. Pour obtenir une présentation générale, reportez-vous à la section Audit et zones Oracle Solaris. Pour la planification, reportez-vous à la section Procédure de planification de l'audit par zone . Pour plus d'informations sur les procédures, reportez-vous à la section Configuration du service d'audit dans les zones (tâches) .
Le fichier /etc/security/audit_control configure l'audit à l'échelle du système. Le fichier détermine les événements qui sont audités, le moment où les avertissements d'audit sont émis et l'emplacement des fichiers d'audit.
Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Utilisation de la console de gestion Solaris (tâches) du Guide d’administration système : administration de base.
# cp /etc/security/audit_control /etc/security/audit_control.orig
Chaque entrée possède le format suivant :
keyword:value
Définit le type de ligne. Les types sont dir, flags, minfree, naflags et plugin. Dans la version Solaris10, les lignes dir et minfree ont été abandonnées.
Pour obtenir des explications sur les mots-clés, reportez-vous aux exemples suivants.
Spécifie les données associées au type de ligne.
Remarque - Pour indiquer les emplacements des répertoires d'audit, utilisez l'attribut p_dir au plug-in audit_binfile.so. Pour spécifier l'espace disponible minimum, utilisez l'attribut p_minfree.
# audit -v /etc/security/audit_control syntax ok
Exemple 30-1 Présélection des classes d'audit pour tous les utilisateurs
La ligne flags dans le fichier audit_control définit les classes des événements attribuables qui sont audités pour tous les utilisateurs sur le système. Les classes sont séparées par des virgules. Un espace est autorisé. Dans cet exemple, les événements des classes lo et ap sont audités pour tous les utilisateurs.
## audit_control file flags:lo,ap naflags:lo plugin:name=...
Pour voir les événements qui sont affectés à une classe, lisez le fichier audit_event. Vous pouvez également utiliser la commande bsmrecord, tel qu'illustré dans l'Exemple 30-27.
Exemple 30-2 Présélection d'événements non attribuables
Dans cet exemple, tous les événements dans la classe na et tous les événements login qui ne sont pas imputables font l'objet d'un audit.
## audit_control file flags:lo naflags:lo,na plugin:name=...
Exemple 30-3 Définition de l'emplacement des données d'audit binaires
L'indicateur p_dir du plug-in audit_binfile.so répertorie les systèmes de fichiers d'audit à utiliser pour les données d'audit binaires. Dans cet exemple, trois emplacements sont définis pour les données d'audit binaires. Les répertoires sont classés dans l'ordre, du répertoire principal au répertoire de dernier recours. La ligne plugin ne contient pas de retour à la ligne.
## audit_control file ## flags:lo naflags:lo,na plugin:name=audit_binfile.so; p_dir=/var/audit/egret.1/files, /var/audit/egret.2/files,/var/audit
Pour configurer des systèmes de fichiers binaires d'audit pour contenir les données d'audit, reportez-vous à la section Création des partitions pour les fichiers d'audit.
Exemple 30-4 Modification de la limite dépassable d'avertissements
Dans cet exemple, l'espace disponible minimum pour tous les systèmes de fichiers d'audit est défini de façon à ce qu'un message d'avertissement est émis lorsque seuls 10 % du système de fichiers est disponible.
La ligne plugin ne contient pas de retour à la ligne.
## audit_control file # flags:lo naflags:lo,na plugin:name=audit_binfile.so; p_dir=/var/audit/examplehost.1/files, /var/audit/examplehost.2/files,/var/audit/localhost/files; p_minfree=10
L'alias audit_warn reçoit l'avertissement. Pour configurer l'alias, reportez-vous à la section Configuration de l'alias de messagerie audit_warn .
Vous pouvez demander au service d'audit de copier tout ou partie des enregistrements d'audit collectés dans la file d'attente de l'audit pour syslog. Dans la procédure suivante, vous allez enregistrer les données d'audit textuelles et binaires. Les données d'audit textuelles sont un sous-ensemble de données binaires.
Avant de commencer
Vous devez présélectionner les classes d'audit. Les classes d'audit présélectionnées sont spécifiées dans les lignes flags et naflags du fichier audit_control. Vous pouvez également présélectionner des classes pour les utilisateurs·individuels·dans·le·fichier·?audit_user et ajouter de façon dynamique les classes d'audit avec la commande auditconfig.
Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Utilisation de la console de gestion Solaris (tâches) du Guide d’administration système : administration de base.
# cp /etc/security/audit_control /etc/security/audit_control.save
## audit_control file flags:lo,ss naflags:lo,na plugin:name=audit_binfile.so;p_dir=/var/audit; p_minfree=20; plugin:name=audit_syslog.so;p_flags=+lo,-ss
Une entrée plugin se présente sous la forme suivante :
plugin:name=name; qsize=max-queued-records;p_*=value
name=name : spécifie le nom du plug-in. Les valeurs valides sont audit_binfile.so et audit_syslog.so.
qsize=max-queued-records : spécifie le nombre maximal d'enregistrements à mettre en file d'attente pour des données d'audit envoyées au plug-in. L'attribut est facultatif.
p_*= value : spécifie les attributs du plug-in. Le plug-in audit_syslog.so accepte p_flags. Le plug-in audit_binfile.so accepte p_dir, p_minfree et p_fsize. L'attribut p_fsize a été introduit dans Solaris 10 10/08.
Pour plus d'informations sur les attributs de plug-in, reportez-vous à la section OBJECT ATTRIBUTES des pages de manuel audit_binfile(5) et audit_syslog(5).
L'entrée inclut l'emplacement du fichier journal.
# cat /etc/syslog.conf … audit.notice /var/adm/auditlog
Ne stockez pas les journaux texte dans lesquels les fichiers d'audit sont stockés. La commande auditreduce, qui lit les fichiers d'audit binaires, suppose que tous les fichiers d'une partition d'audit sont des fichiers d'audit binaires.
# touch /var/adm/auditlog
# svcadm refresh system/system-log
Le service d'audit peut générer une sortie volumineuse. Pour gérer les journaux, reportez-vous à la page de manuel logadm(1M).
Exemple 30-5 Spécification des classes d'audit pour la sortie syslog
Dans l'exemple suivant, l'utilitaire syslog collecte un sous-ensemble de classes d'audit présélectionnées.
## audit_user file jdoe:pf
## audit_control file flags:lo,ss naflags:lo,na plugin:name=audit_binfile.so; p_dir=/var/audit/host.1/files, /var/audit/host.2/files,/var/audit/localhost/files; p_minfree=10 plugin:name=audit_syslog.so; p_flags=-lo,-na,-ss,+pf
Les entrées flags et naflags demandent au système de collecter tous les enregistrements d'audit de connexion/déconnexion, non allouables et de changement de l'état du système au format binaire. L'entrée de plug-in audit_syslog.so demande à l'utilitaire syslog de collecter uniquement les connexions et événements non attribuables ayant échoué ainsi que les échecs de modification de l'état du système. Pour l'utilisateur jdoe, l'enregistrement d'audit binaire inclut toutes les utilisations d'un shell basé sur les profils. L'utilitaire syslog collecte les commandes réussies basées sur les profils. La classe pf est créée dans l'Exemple 30-10.
Exemple 30-6 Stockage des enregistrements d'audit syslog sur un système distant
Vous pouvez changer l'entrée audit.notice du fichier syslog.conf afin qu'elle pointe vers un système distant. Dans cet exemple, le nom du système local est example1. Le système distant est remote1.
example1 # cat /etc/syslog.conf … audit.notice @remote1
L'entrée audit.notice du fichier syslog.conf sur le système remote1 pointe vers le fichier journal.
remote1 # cat /etc/syslog.conf … audit.notice /var/adm/auditlog
Exemple 30-7 Utilisation des plug-ins dans le fichier audit_control
La méthode préférée pour spécifier des informations non liées aux indicateurs dans le fichier audit_control est d'utiliser l'entrée plugin. Dans cet exemple, les indicateurs d'audit sont sélectionnés, puis les informations de plug-in sont répertoriées.
## audit_control file flags:lo,ss naflags:lo,na plugin:name=audit_binfile.so;p_minfree=10; p_dir=/var/audit plugin:name=audit_syslog.so; p_flags=+lo
Les définitions de chaque utilisateur sont stockées dans la base de données audit_user. Ces définitions modifient, pour l'utilisateur spécifié, les classes présélectionnées dans le fichier audit_control. Le fichier nsswitch.conf détermine si un fichier local ou une base de données de service de nommage est utilisé(e). Pour calculer le masque de présélection d'audit final de l'utilisateur, reportez-vous à la section Caractéristiques de l'audit des processus.
Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Utilisation de la console de gestion Solaris (tâches) du Guide d’administration système : administration de base.
# cp /etc/security/audit_user /etc/security/audit_user.orig
Dans la base de données locale, chaque entrée a le format suivant :
username:always-audit:never-audit
Permet de sélectionner le nom de l'utilisateur audité.
Sélectionne la liste des classes d'audit qui doivent toujours être auditées pour l'utilisateur spécifié.
Sélectionne la liste des classes d'audit qui ne doivent jamais être auditées pour l'utilisateur spécifié.
Vous pouvez spécifier plusieurs classes en séparant les classes d'audit par une virgule.
Les entrées audit_user seront effectives à la prochaine connexion de l'utilisateur.
Exemple 30-8 Modification des événements à auditer pour un utilisateur
Dans cet exemple, le fichier audit_control contient les classes d'audit présélectionnées pour le système :
## audit_control file … flags:lo,ss naflags:lo,na
Le fichier audit_user affiche une exception. Lorsque l'utilisateur jdoe utilise un shell de profil cette utilisation est auditée :
## audit_user file jdoe:pf
Le masque de présélection d'audit pour jdoe est une combinaison des paramètres audit_user et audit_control. La commande auditconfig -getaudit affiche le masque de présélection pour jdoe :
# auditconfig -getaudit audit id = jdoe(1234567) process preselection mask = ss,pf,lo(0x13000,0x13000) terminal id (maj,min,host) = 242,511,example1(192.168.160.171) audit session id = 2138517656
Exemple 30-9 Audit des utilisateurs uniquement, et non du système
Dans cet exemple, les activités de connexion et de rôle de quatre utilisateurs uniquement sont auditées sur ce système. Le fichier audit_control n'a pas présélectionné les classes d'audit pour le système.
## audit_control file … flags: naflags:
Le fichier audit_user présélectionne deux classes d'audit pour quatre utilisateurs, comme suit :
## audit_user file jdoe:lo,pf kdoe:lo,pf pdoe:lo,pf sdoe:lo,pf
Le fichier audit_control suivant enregistre l'intrusion injustifiée. Utilisé en combinaison avec le fichier audit_user, ce fichier protège plus le système que le premier fichier audit_control dans cet exemple.
## audit_control file … flags: naflags:lo plugin:name=...
Lorsque vous créez votre propre classe d'audit, vous pouvez y placer uniquement les événements que vous souhaitez auditer pour votre site. Lorsque vous ajoutez la classe sur un seul système, vous devez copier la modification sur tous les systèmes audités.
Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Utilisation de la console de gestion Solaris (tâches) du Guide d’administration système : administration de base.
# cp /etc/security/audit_class /etc/security/audit_class.orig
Chaque entrée possède le format suivant :
0xnumber:name:description
Identifie number en tant que valeur hexadécimale.
Définit le masque de classe d'audit unique.
Définit le nom en lettres de la classe d'audit.
Définit le nom descriptif de la classe d'audit.
L'entrée doit être unique dans le fichier. N'utilisez pas les masques de classe d'audit existants.
Exemple 30-10 Création d'une nouvelle classe d'audit
Cet exemple crée une classe qui contient un petit ensemble d'événements d'audit. L'entrée ajoutée au fichier audit_class se présente comme suit :
0x10000000:pf:profile command
L'entrée crée une nouvelle classe d'audit appelée pf. L'Exemple 30-11 remplit la nouvelle classe d'audit.
Erreurs fréquentes
Si vous avez personnalisé le fichier audit_class, assurez-vous que les modifications éventuelles du fichier audit_user sont cohérentes avec les nouvelles classes d'audit. Des erreurs se produisent lorsque les classes d'audit dans audit_user ne sont pas un sous-ensemble de la base de données audit_class.
Vous pouvez être amené à modifier l'appartenance à une classe d'un événement d'audit pour réduire la taille d'une classe d'audit ou pour placer l'événement dans une classe à part. Lorsque vous reconfigurez les mappages événements-classes d'audit d'un système, vous devez copier la modification sur tous les systèmes audités.
Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Utilisation de la console de gestion Solaris (tâches) du Guide d’administration système : administration de base.
# cp /etc/security/audit_event /etc/security/audit_event.orig
Chaque entrée possède le format suivant :
number:name:description:class-list
ID de l'événement d'audit.
Nom de l'événement d'audit.
En règle générale, l'appel système ou l'exécutable qui déclenche la création d'un enregistrement d'audit.
Liste de classes d'audit séparées par des virgules.
Exemple 30-11 Mappage d'événements d'audit existants sur une nouvelle classe
Cet exemple permet de mapper un événement d'audit existant sur la nouvelle classe créée dans l'Exemple 30-10. Dans le fichier audit_control, l'enregistrement d'audit binaire capture les réussites et échecs des événements de la classe pf. Le journal d'audit syslog contient uniquement les échecs des événements de la classe pf.
# grep pf | /etc/security/audit_class 0x10000000:pf:profile command # vi /etc/security/audit_event 6180:AUE_prof_cmd:profile command:ua,as,pf # vi audit_control ... flags:lo,pf plugin:name=audit_binfile.so; p_dir=/var/audit; p_minfree=10 plugin:name=audit_syslog.so; p_flags=-lo,-pf
Exemple 30-12 Audit de l'utilisation des programmes setuid
Cet exemple crée une classe qui contiendra les événements surveillant les appels des programmes setuid et setgid. L'enregistrement d'audit binaire capture les réussites et échecs des événements des classes lo et na, et les réussites des événements de la classe st. Le journal d'audit syslog contient uniquement les réussites des événements de la classe st.
# vi /etc/security/audit_class 0x00000800:st:setuid class # vi /etc/security/audit_event 26:AUE_SETGROUPS:setgroups(2):st 27:AUE_SETPGRP:setpgrp(2):st 40:AUE_SETREUID:setreuid(2):st 41:AUE_SETREGID:setregid(2):st 214:AUE_SETEGID:setegid(2):st 215:AUE_SETEUID:seteuid(2):st # vi audit_control ## audit_control file flags:lo,+st naflags:lo,na plugin:name=audit_binfile.so; p_dir=/var/audit; p_minfree=10 plugin:name=audit_syslog.so; p_flags=-lo,+st