C H A P I T R E 4 |
Annulation de modifications du système |
Ce chapitre décrit l'annulation des modifications du système introduites par le logiciel Solaris Security Toolkit pendant la sécurisation. Cette option fournit un mécanisme automatisé permettant de restaurer un système à son état initial avant une ou plusieurs sécurisations.
Ce chapitre contient les sections suivantes :
Chaque sécurisation par Solaris Security Toolkit crée un répertoire d'exécution dans JASS_REPOSITORY. Les noms de ces répertoires sont basés sur la date et l'heure de début d'exécution. Outre l'affichage de la sortie sur un écran, le logiciel Solaris Security Toolkit crée un ensemble de fichiers dans le répertoire pour le suivi des modifications et la journalisation des opérations.
Les fichiers enregistrés dans le répertoire suivent les modifications apportées au système et activent la fonction d'annulation.
Quand vous utilisez le logiciel Solaris Security Toolkit pour la sécurisation d'un système, que ce soit en mode JumpStart ou autonome, le logiciel consigne les modifications dans le fichier JASS_REPOSITORY/jass-manifest.txt. Ce fichier contient la liste des opérations que la fonction undo utilise pour annuler les modifications. Il contient des informations sur les opérations de sécurisation mises en oeuvre par le logiciel Solaris Security Toolkit, y compris les fichiers créés, copiés, déplacés ou supprimés. Par ailleurs, ce fichier peut contenir aussi bien des entrées standard que des entrées personnalisées, qui sont requises pour l'annulation de modifications plus complexes, telles les installations de packages. Un fichier jass-manifest.txt distinct est créé pour chaque sécurisation.
Remarque - La fonction undo du logiciel Solaris Security Toolkit annule uniquement les modifications qui correspondent à des entrées dans les fichiers globaux. |
La commande undo parcourt les fichiers globaux générés pendant l'exécution de Solaris Security Toolkit et stockés dans JASS_REPOSITORY. Elle peut restaurer les fichiers sauvegardés à leurs emplacements d'origine, selon que vous avez utilisez l'option de -b (sauvegarde), -f (forçage) ou -k (conservation). Pour de plus amples informations sur ces options, reportez-vous aux sections suivantes :
Si vous n'avez pas sauvegardé les fichiers pendant la sécurisation, et si la variable JASS_SAVE_BACKUP est définie dans le fichier user.init sur 0 ou si l'option -c est utilisée, la fonction d'annulation n'est pas disponible. Pour de plus amples informations, reportez-vous à la section Conditions requises pour l'annulation de modifications du système.
L'annulation d'une modification par Solaris Security Toolkit n'entraîne pas la suppression du répertoire associé. Par contre, deux fichiers sont créés dans le répertoire JASS_REPOSITORY : jass-undo-log.txt et reverse-jass-manifest.txt. Ensuite, la modification qui a été annulée n'apparaît plus dans la liste à la prochaine exécution de jass-execute -u. Une sécurisation ne peut être annulée qu'une seule fois.
L'utilisation de la fonction d'annulation du logiciel Solaris Security Toolkit est soumise aux restrictions et conditions suivantes.
Solaris Security Toolkit dispose d'une structure suffisamment flexible pour la conception et la construction de scripts finish. La structure vous permet d'étendre les capacités du logiciel Solaris Security Toolkit en fonction des besoins de votre organisation, tout en vous facilitant la gestion de la configuration des systèmes pendant leurs cycles de vie.
Lors de la personnalisation de scripts, il est important de comprendre l'effet de chacune des actions sur la fonction d'annulation. Pour simplifier la personnalisation des scripts, des fonctions auxiliaires introduisent les modifications voulues dans les fichiers globaux. (La fonction undo utilise le contenu des fichiers globaux pour annuler les sécurisations). Dans la plupart des cas, ces fonctions auxiliaires fournissent ce dont vous avez besoin pour personnaliser les scripts de votre organisation.
Pour obtenir une liste des fonctions auxiliaires et des informations sur leur utilisation, reportez-vous au manuel Solaris Security Toolkit 4.2 Reference Manual. Utilisez ces fonctions auxiliaires à la place des commandes système équivalentes, afin que les annulations référencent les entrées correspondantes dans les fichiers globaux.
Il peut toutefois arriver qu'aucune fonction auxiliaire ne soit associée à la fonction que vous devez exécuter. Si tel est le cas, utilisez la fonction spéciale appelée add_to_manifest. En utilisant cette fonction, vous pouvez insérer manuellement des entrées dans les fichiers globaux sans faire appel à une fonction auxiliaire. Utilisez cette fonction spéciale avec précaution en veillant à protéger l'intégrité du système et le référentiel de Solaris Security Toolkit. Par exemple, vous pouvez utiliser cette fonction spéciale pour ajouter des packages qui ne sont pas au format pkg de Sun. Dans cet exemple, vous devez indiquer à la fonction undo la méthode de suppression des packages ajoutés sous un autre format lors de la sécurisation.
Avec les fonctions auxiliaires et la fonction spéciale add_to_manifest, le logiciel Solaris Security Toolkit offre un outil simple et flexible pour personnaliser des scripts et étendre les modifications aux annulations.
Si vous modifiez le comportement d'un script finish sans utiliser ces fonctions, le logiciel Solaris Security Toolkit ne pourra pas identifier les modifications apportées. Par conséquent, vous devez annuler manuellement les modifications qui ne sont pas référencées dans les fichiers globaux.
Autre exemple : avant de modifier un fichier sur le système, vous devez d'abord en enregistrer la version originale. Hors du contexte du logiciel Solaris Security Toolkit, les utilisateurs accomplissent généralement cette tâche en exécutant la commande /usr/bin/cp. Toutefois, si vous utilisez directement cette commande dans le contexte du logiciel Solaris Security Toolkit, ce dernier n'a aucun moyen de savoir qu'une entrée globale doit être créée. À la place de la commande cp, utilisez la fonction auxiliaire backup_file. Cette fonction enregistre une copie du fichier original, avec un suffixe de SUFFIXE_JASS et ajoute une entrée globale indiquant au logiciel Solaris Security Toolkit qu'une copie du fichier a été effectuée. Cette fonction entraîne également le calcul des sommes de contrôle du fichier. Les sommes de contrôle du fichier sont utilisées par la fonction d'annulation ainsi que par la commande jass-check-sum.
Même si la commande jass-execute -u contrôle automatiquement les fichiers qui ont été modifiés manuellement après une sécurisation, il s'avère parfois utile d'utiliser la commande jass-check-sum pour répertorier et vérifier les fichiers qui ont été modifiés.
Cette commande vous permet de passer en revue le contenu du répertoire JASS_REPOSITORY et d'effectuer les sommes de contrôle sur tous les fichiers répertoriés dans les fichiers globaux, afin de déterminer les fichiers modifiés depuis l'enregistrement de leurs sommes de contrôle pendant la sécurisation. Effectué avant une annulation forcée, ce contrôle permet d'obtenir de précieuses informations qui vous éviteront des heures de dépannage inutile.
Ci-dessous, un exemple de sortie.
La sortie indique que trois fichiers ont été modifiés après la sécurisation.
Cette section décrit la commande jass-execute -u et les options que vous pouvez utiliser pendant l'exécution d'une annulation.
Remarque - Vous ne pouvez pas utiliser les options -c, -d, -a, -h, -l et -H avec la fonction d'annulation. Vous devez vous servir de l'option -b, -k ou -f lors d'une annulation en mode silencieux. |
La commande jass-execute -u constitue la méthode standard d'exécution d'une annulation. Cette commande détecte automatiquement les fichiers qui ont été modifiés manuellement depuis la dernière sécurisation. Si le logiciel Solaris Security Toolkit détecte des fichiers modifiés manuellement après une sécurisation, il vous demande de choisir l'une des réponses suivantes :
1. Effectuez une copie de sauvegarde du fichier le plus récent avant de restaurer l'original (le fichier qui existait avant la sécurisation).
2. Conservez le fichier le plus récent et ne restaurez pas le fichier original.
3. Forcez l'écrasement de tout fichier modifié manuellement (certaines données pourraient, de ce fait, être perdues) et restaurez le fichier original.
4. Effectuez toujours une copie de sauvegarde du fichier le plus récent avant de restaurer l'original (le fichier qui existait avant la sécurisation).
5. Conservez toujours le fichier le plus récent et ne restaurez pas le fichier original.
6. Forcez toujours l'écrasement de tout fichier modifié manuellement (certaines données pourraient, de ce fait, être perdues) et restaurez le fichier original.
Si vous souhaitez définir le traitement par la commande d'annulation des fichiers modifiés depuis la sécurisation, utilisez les options -b (sauvegarde), -k (conservation) ou -f (forçage) lorsque vous exécutez la commande d'annulation.
Le TABLEAU 4-1 contient la liste des options de ligne de commande que vous pouvez utiliser avec la commande d'annulation. Pour de plus amples informations sur chaque option, reportez-vous aux sections ci-après.
L'option -b sauvegarde automatiquement les fichiers qui ont été modifiés manuellement depuis la dernière sécurisation, puis restaure les fichiers à leur état d'origine avant la sécurisation. Pour mettre en oeuvre les modifications manuelles, vous devez comparer les fichiers restaurés et les fichiers sauvegardés, et ajuster vous-même les différences. Un fichier sauvegardé à l'aide de cette option est similaire à l'exemple suivant.
L'option -f annule les modifications apportées pendant une sécurisation sans aucune exception, même si les fichiers ont été modifiés manuellement après une sécurisation. L'annulation ne compare pas les sommes de contrôle des fichiers enregistrés et les versions actuelles des fichiers. En conséquence, si vous avez modifié des fichiers manuellement après une sécurisation, les modifications sont écrasées et perdues après l'annulation.
Il peut s'avérer nécessaire de mettre de nouveau en oeuvre les modifications manuellement après l'exécution d'une annulation, et d'ajuster les différences entre des groupes de fichiers, en fonction des types de modifications apportées.
Remarque - Pour éviter ces problèmes, utilisez la commande jass-check-sum ou l'option de ligne de commande -b précédemment citée. |
L'option -k conserve automatiquement toute modification manuelle apportée aux fichiers après une sécurisation au lieu de restaurer les fichiers originaux. L'option -k détecte les incohérences dans les fichiers, génère et consigne un avertissement et n'écrase pas le fichier avec l'original. Les seules modifications annulées sont celles pour lesquelles les sommes de contrôle enregistrées sont correctes.
Cette option n'est pas sans inconvénients. Par exemple, un système peut devenir incohérent si un sous-ensemble de fichiers modifiés par un script finish est modifié ultérieurement.
Prenez le script finish remove-unneeded-accounts.fin. Ce script modifie les fichiers /etc/passwd et /etc/shadow sur le système. Si un utilisateur change manuellement un mot de passe après une sécurisation, la somme de contrôle associée au fichier /etc/shadow ne correspond pas à la valeur enregistrée par le logiciel Solaris Security Toolkit. En conséquence, en cas d'utilisation de l'option de conservation, seul le fichier /etc/passwd retrouve son état d'origine. Le fichier /etc/shadow conserve sa forme actuelle. Les deux fichiers ne sont plus cohérents.
L'option -o /chemin/complet/du/fichier_sortie redirige la sortie de console de jass-execute vers un fichier de sortie (fichier-sortie) distinct.
Cette option n'a aucun effet sur les journaux conservés dans le répertoire JASS_REPOSITORY. Elle est particulièrement utile en présence d'une connexion de terminal bas débit, car une annulation Solaris Security Toolkit génère souvent un volume significatif de données en sortie.
Remarque - Vous devez vous servir de l'option -b, -k ou -f lors d'une annulation en mode silencieux. |
L'option -q empêche le logiciel Solaris Security Toolkit d'afficher la sortie à l'écran. Cette option n'a aucun effet sur les journaux conservés dans le répertoire JASS_REPOSITORY. Comme l'option -o, cette option est particulièrement utile lorsque le logiciel Solaris Security Toolkit est exécuté via une tâche cron ou une connexion réseau bas débit.
L'option -m adresse_email indique au logiciel Solaris Security Toolkit qu'il doit envoyer une copie de l'exécution complète à une adresse e-mail. La notification par e-mail s'ajoute aux journaux générés sur le système à l'aide d'autres options.
Il est parfois nécessaire d'annuler les modifications apportées pendant une ou plusieurs sécurisations Solaris Security Toolkit. Si vous estimez que les modifications apportées pendant une sécurisation ont des conséquences négatives sur le système, vous pouvez les annuler.
Par exemple, si vous découvrez après une sécurisation qu'un service requis, tel que Solaris Volume Manager (SVM), a été désactivé, effectuez les opérations suivantes :
2. Créez un pilote personnalisé.
Reportez-vous à la section Personnalisation des pilotes du chapitre 4 du manuel Solaris Security Toolkit 4.2 Reference Manual pour obtenir des instructions sur la personnalisation des pilotes.
3. Activez les services SVM à utiliser à l'aide de la variable d'environnement JASS_SVCS_ENABLE.
Reportez-vous à la section JASS_SVCS_ENABLE du chapitre 7 du Solaris Security Toolkit 4.2 Reference Manual pour obtenir des instructions sur l'utilisation de JASS_SVCS_ENABLE.
4. Recommencez la sécurisation.
Cette section décrit l'annulation des modifications apportées pendant une ou plusieurs sécurisations. L'annulation d'une sécurisation est soumise à certaines restrictions et conditions. Voir Conditions requises pour l'annulation de modifications du système.
|
1. Sauvegardez et réinitialisez le système.
Sauvegardez et réinitialisez le système avant chaque annulation pour garantir que le système revienne ou puisse revenir à un état connu et à un fonctionnement correct.
2. Déterminez les options que vous voulez utiliser avec la commande jass-execute -u.
Voir Utilisation d'options avec la fonction d'annulation.
Les instructions qui suivent supposent que vous utilisez la commande jass-execute -u.
3. Pour annuler une ou plusieurs sécurisations à l'aide de l'option standard -u, entrez la commande suivante à partir de JASS_HOME_DIR/bin:
Le logiciel Solaris Security Toolkit collecte des informations sur chaque sécurisation en recherchant tous les fichiers globaux contenus dans JASS_REPOSITORY. Si un fichier global est vide ou absent, le logiciel suppose qu'aucune modification ne doit être annulée et l'annulation de ce fichier est ignorée. De plus, si le répertoire du fichier global contient également un fichier intitulé jass-undo-log.txt, le logiciel suppose que l'annulation a déjà été effectuée et ne l'exécute donc pas. Une fois toutes les informations collectées, les résultats s'affichent. Ci-dessous, un exemple de sortie.
Dans cet exemple, quatre sécurisations distinctes ont été trouvées. Ces sécurisations ont apporté des modifications au système et n'ont pas été annulées. La liste des sécurisations est toujours présentée par ordre chronologique inverse. La première entrée dans la liste correspond à la sécurisation la plus récente.
4. Vérifiez la sortie pour déterminer les sécurisations à annuler, puis entrez les numéros correspondants.
Pour chaque entrée sélectionnée, le logiciel Solaris Security Toolkit annule chaque sécurisation de numéro d'index égal ou inférieur à la valeur sélectionnée. Ainsi, il annule les modifications dans l'ordre inverse où elles ont été effectuées, en commençant par la sécurisation la plus récente pour terminer par celle que vous avez sélectionnée. En suivant l'exemple précédent, si vous sélectionnez la sécurisation 3, vous annulez d'abord les modifications de la sécurisation 1, puis celles de la sécurisation 2 et enfin celles de la sécurisation 3.
L'EXEMPLE DE CODE 4-3 illustre la sortie générée quand l'annulation porte sur deux entrées de fichier global.
Dans cet exemple, le logiciel Solaris Security Toolkit annule une opération de copie et supprime un fichier qui avait été ajouté pendant une sécurisation. La sortie d'une annulation indique les commandes utilisées pour restaurer le système, de telle sorte que le processus est facile à comprendre et à identifier au cas où vous auriez besoin de dépanner la configuration d'un système.
Si Solaris Security Toolkit réussit à vérifier les fichiers modifiés depuis la dernière sécurisation, l'annulation continue jusqu'à ce que toutes les sécurisations et tous les fichiers globaux correspondants soient traités et les modifications annulées.
Outre la collecte d'informations sur chaque sécurisation qu'il effectue en recherchant tous les fichiers globaux contenus dans JASS_REPOSITORY, le logiciel Solaris Security Toolkit effectue les opérations suivantes :
a. Il compare la somme de contrôle de chaque fichier modifié.
b. Il génère et consigne un message pour toute erreur dans les fichiers de somme de contrôle.
c. Il vous demande l'action à entreprendre pour ces fichiers.
5. Si l'annulation détecte une exception (un fichier qui a été modifié manuellement après la sécurisation), entrez l'une des options.
L'exemple de sortie suivant illustre une exception et les possibilités de traitement de cette exception.
Dans cet exemple, si vous choisissez l'élément 1, la sortie suivante s'affiche.
Si vous choisissez l'élément 4, la sortie suivante s'affiche.
Une fois que Solaris Security Toolkit a terminé les annulations sélectionnées, vous devez passer en revue les fichiers marqués comme modifiés depuis la dernière sécurisation et effectuer toute modification système nécessaire. Ne redémarrez pas le système tant que vous n'avez pas manuellement analysé ces modifications, car elles peuvent provoquer un état incohérent du système.
6. Ajustez toutes les exceptions éventuelles avant de continuer.
7. Après l'ajustement des exceptions, redémarrez le système.
Le redémarrage du système est nécessaire pour que les modifications apportées à la configuration du SE Solaris soient prises en compte.
Copyright © 2005, Sun Microsystems, Inc. Tous droits réservés.