C H A P I T R E 7 |
Sécurisation d'un système |
Ce chapitre décrit comment appliquer les informations contenues dans les chapitres précédents à un scénario réaliste pour l'installation et la sécurisation d'un nouveau système. Ce chapitre explique comment déployer le logiciel Solaris Security Toolkit avec un Check PointFirewall-1 NG pour le SE Solaris 8.
Utilisez les informations contenues dans ce chapitre comme guide et scénario pour sécuriser un nouveau système et des applications.
Les ouvrages et les articles Sun BluePrint accessibles en ligne peuvent vous guider au cours du processus de réduction et de durcissement de nombreux systèmes Sun. Vous trouverez les versions les plus récentes de ces documents à l'adresse suivante :
Ce chapitre traite des points suivants :
Pour bien déployer des systèmes réduits et sécurisés tels que décrit dans cette étude de cas, la planification et la préparation sont deux facteurs fondamentaux. L'infrastructure de réseau sous-jacente, les stratégies et les procédures doivent être en place. De plus, le support et la maintenance de systèmes doivent être définis et communiqués. Pour de plus amples informations sur la planification et la préparation, reportez-vous au Chapitre 2. Le scénario décrit dans ce chapitre documente les procédures et les tâches qu'un administrateur système doit effectuer afin d'obtenir une image réduite et durcie du SE Solaris pour un système de pare-feu.
Dans ce scénario, l'administrateur système doit créer une solution automatisée et évolutive pour la construction et le déploiement de systèmes Check PointFirewall-1 NG pour un fournisseur d'accès (xSP) qui souhaite offrir un service pare-feu à ses clients. Pour ce scénario, les exigences et les considérations du xSP sont les suivantes :
Sur la base de ces facteurs, l'administrateur système décide d'automatiser l'installation, la réduction et le durcissement des images OS en utilisant la technologie JumpStart et le logiciel Solaris Security Toolkit.
Ce chapitre suppose que nous utilisons un logiciel Solaris Security Toolkit déjà fonctionnel et une installation en technologie JumpStart. D'autres chapitres de cet ouvrage contiennent des instructions et des directives pour l'installation du logiciel ; reportez-vous aux chapitres correspondants.
Ce chapitre suppose que nous développons une configuration personnalisée pour la réduction et le durcissement d'une application spécifique. Le logiciel Solaris Security Toolkit ne possède pas de pilotes ou de profils JumpStart spécifiques à l'application. Par conséquent, nous devons créer des pilotes et des profils personnalisés pour cette application. Cette tâche consiste à copier des pilotes et des profils existants et à les modifier en fonction de l'application.
Pour ce scénario, l'administrateur système doit :
L'exemple de scénario se base sur l'environnement matériel et logiciel suivant :
Pour ce scénario, le haut niveau requis et les packages ont été identifiés, mais pas les composants et les services spécifiques de tous les packages. Il faut également identifier les capacités du SE Solaris nécessaires pour administrer et gérer les systèmes.
La liste suivante précise comment les composants logiciels sont utilisés :
Vous pouvez développer un profil de sécurité à partir de cette liste. Pour des informations détaillées sur le développement de profils de sécurité et l'utilisation de modèles de profils, reportez-vous à la section Développement et implémentation d'un profil Solaris Security Toolkit.
Un profil de sécurité définit les modifications introduites par le logiciel Solaris Security Toolkit lors du durcissement et de la réduction de la configuration de sécurité d'un système. Aucun des profils de sécurité ou des pilotes standard inclus dans le logiciel Solaris Security Toolkit ne remplit les conditions requises pour les systèmes Check PointFirewall-1 NG réduits. Par conséquent, vous devez créer un profil de sécurité personnalisé pour implémenter les modifications du système appropriées.
La méthode de création d'un profil de sécurité pour ce scénario est décrite en divers points de ce chapitre. D'abord, nous créons de nouveaux fichiers de pilotes à partir des pilotes existants. Ensuite, nous modifions les nouveaux pilotes afin de les conformer aux conditions de sécurité précédemment précisées. La réduction est décrite au point Installation du logiciel, et les modifications de la configuration de durcissement au point Personnalisation de la configuration de durcissement.
Cette section décrit comment installer le logiciel. La description est effectuée en tenant compte de toutes les exceptions et instructions spécifiques à cet exemple de scénario. Vous trouverez des instructions générales sur l'installation du logiciel dans d'autres parties de ce guide.
Remarque - Vous pouvez utiliser les instructions suivantes comme modèle pour la gestion des situations correspondantes. |
Cette section décrit les tâches suivantes :
Téléchargez et installez Solaris Security Toolkit et les composants logiciels de sécurisation additionnels, y compris les patchs, sur le serveur JumpStart en procédant comme suit.
|
1. Téléchargez le logiciel Solaris Security Toolkit et les composants de sécurisation additionnels.
Reportez-vous à la section Téléchargement des packages de sécurité.
2. Installez le logiciel Solaris Security Toolkit et les composants de sécurisation additionnels.
Reportez-vous à la section Installation et exécution du logiciel.
![]() |
Attention - N'exécutez pas encore le logiciel Solaris Security Toolkit. Effectuez d'abord la configuration et la personnalisation additionnelles décrites dans les sections suivantes. |
Les patchs du système d'exploitation peuvent corriger des vulnérabilités, des aspects de disponibilité, des défauts au niveau des performances ou d'autres aspects d'un système. Quand vous installez un nouveau système d'exploitation puis à intervalles réguliers, vérifiez que les patchs appropriés sont appliqués.
Le logiciel Solaris Security Toolkit fournit un mécanisme pour l'installation du cluster de patchs de sécurité et recommandés disponibles sur SunSolve Online. Ce cluster de patchs spécifiques au système d'exploitation contient les patchs les plus souvent requis.
|
1. Vous devez au minimum télécharger le cluster de patchs recommandés de sécurité et dans le répertoirePatches et le décomprimer.
Si le script install-recommended-patches.fin est inclus dans le pilote de durcissement, ce cluster de patchs sera installé automatiquement.
Un point supplémentaire porte sur Check PointFirewall-1 NG. Cette application nécessite des patchs spécifiques non fournis dans le cluster des patchs de sécurité et recommandés. Le Check PointFirewall-1 NG requiert les patchs suivants :
2. Pour automatiser l'installation des patchs 108434 et 108435, téléchargez les dernières versions des patchs depuis SunSolve OnLine et placez-les dans le répertoire Patches.
3. Créez un nouveau script finish (par exemple, fw1-patch-install.fin) qui appelle la fonction d'aide add_patch, avec le nom de chaque patch.
Ce script finish appelle les fonctions d'aide appropriées avec les deux ID de patchs requis pour Check PointFirewall-1 NG. Par exemple :
La première tâche requise après la définition de l'organisation du disque pour l'installation du système d'exploitation est de spécifier quel cluster du SE Solaris doit être installé. Choisissez l'un des cinq clusters d'installation fournis avec le SE Solaris : SUNWCreq, SUNWCuser, SUNWCprog, SUNWCall etSUNWCXall.
|
1. Spécifiez le cluster du système d'exploitation à installer.
L'objectif de cet exemple de scénario étant de construire un pare-feu réduit et dédié, à savoir le plus petit des clusters de SE Solaris disponibles, SUNWCreq, ce package est également connu en tant que Noyau.
Ce cluster contenant un nombre relativement petit de packages, d'autres packages seront probablement requis. Ces autres packages doivent être inclus dans le profil avec la définition du cluster de Solaris.
La définition du profil de la ligne de référence ajoute ce qui suit au profil précédemment défini.
Le cluster d'installation SUNWCreq comprend des packages qui ne sont pas nécessaire au bon fonctionnement d'un serveur pare-feu Sun. Supprimez ces packages inutiles après avoir défini une ligne de base de travail. Reportez-vous à l'article Sun BluePrints OnLine « Minimizing the Solaris Operating Environment for Security : Updated for the Solaris 9 Operating Environment ».
2. Exploitez une installation avec le profil de sécurité correctement défini pour déterminer la présence éventuelle de problèmes de dépendance de packages.
Certaines dépendances de packages sont rencontrées pendant l'installation et nous déterminons que les packages Solaris suivants sont requis pour Check PointFirewall-1 NG :
La liste complète des packages dans le profil est la suivante :.
Bien que cette liste soit complète pour cette étude de cas, d'autres packages peuvent être ajoutés ou supprimés dans l'environnement où cette configuration est déployée.
Des modifications pourront encore être apportées à liste finale des packages tant que le fonctionnement et la sécurité du système n'auront pas été vérifiés (voir Test d'assurance qualité). Si tel est le cas, modifiez le profil, réinstallez le système et répétez le test.
3. Créez un script minimize-firewall.fin, basé sur les dépendances des packages des deux étapes précédentes.
Cette section explique comment configurer le serveur et le client JumpStart afin d'utiliser un profil de sécurité pour la réduction. Pour des informations détaillées sur l'utilisation du logiciel Solaris Security Toolkit dans un environnement JumpStart, reportez-vous au Chapitre 5.
Cette section décrit les tâches suivantes :
Préparez l'infrastructure en procédant comme suit. Les tâches suivantes permettent la création d'une configuration de base pour le client, en utilisant les pilotes, les profils et les scripts finish existants. Après la mise en oeuvre de cette configuration de base, vérifiez son fonctionnement puis personnalisez-la pour l'application de votre choix.
|
1. Configurez votre serveur et environnement JumpStart.
Reportez-vous au Chapitre 5 pour des instructions détaillées.
2. Ajoutez le client au serveur JumpStart en utilisant la commande add-client.
3. Créez une entrée de fichier rules pour le client, en spécifiant le profil JumpStart et le script finish. Par exemple :
4. Créez un fichier nommé xsp-minimal-firewall.profile pour le profil et un fichier nommé xsp-firewall-secure.driver pour le pilote en copiant les fichiers fournis avec le logiciel Solaris Security Toolkit.
Vous devez créer ces fichiers avant de pouvoir terminer avec succès l'étape suivante. Initialement, ces fichiers peuvent être des copies de fichiers distribués avec le logiciel Solaris Security Toolkit. Ne modifiez jamais les fichiers originaux distribués avec le logiciel Solaris Security Toolkit. L'exemple suivant illustre comment créer les fichiers.
Cet exemple utilise une configuration de serveur Web dédié, parce qu'il s'agit d'une bonne base de départ pour le développement d'un pare-feu dédié.
5. Après la création des fichiers de profil et de pilote, modifiez ces fichiers comme suit :
a. Remplacez la référence xsp-firewall-secure.driver à hardening.driver par xsp-firewall-hardening.driver.
b. Remplacez les deux scripts finish définis dans JASS_SCRIPTS par les références à minimize-firewall.fin et à votre script finish (par exemple, fw1-patch-install.fin).
Le script modifié doit être similaire au suivant.
6. Vérifiez que l'entrée du fichier rules est correcte en utilisant la commande suivante.
À ce stade, il doit être possible de commencer l'installation JumpStart sur le client, jordan dans cet exemple. Utilisez la configuration JumpStart et les pilotes Solaris Security Toolki, les scripts finish et les profils que vous avez créés.
7. Si vous rencontrez des problèmes pendant la vérification du fichier rules, reportez-vous à la section Validation et vérification du fichier Rules.
8. Depuis l'invite ok du client, entrez la commande suivante pour installer le client en utilisant l'infrastructure JumpStart.
Si le client ne se construit pas, vérifiez la configuration et modifiez-la jusqu'à ce qu'il fonctionne correctement. Notez que tous les aspects de la configuration JumpStart ne sont pas décrits dans cette section. Reportez-vous à l'ouvrage Sun BluePrint JumpStart Technology : Effective Use in the Solaris Operating Environment pour de plus amples informations.
Après avoir terminé correctement l'exécution du fichier rules et vérifié que les patchs sont correctement installés, vous pouvez démarrer l'installation de base du système client ainsi que sa réduction et son durcissement.
Lors de la validation du fichier rules, vous pouvez rencontrer toute une série de problèmes. Certains de ces problèmes les plus fréquents sont décrits dans cette section.
La première exécution du fichier rules donne la sortie suivante.
Dans cet exemple, le profil spécifié dans l'entrée du fichier rules pourjordan n'existe pas. Le profil xsp-minimal-firewall.profile n'était pas présent dans le répertoire des profils. Normalement, cette erreur est générée à cause d'une faute de frappe dans le nom de fichier, de l'omission du répertoire pour les profils ou simplement parce le profil n'a pas encore été créé. Résolvez le problème et effectuez une nouvelle vérification.
Le second contrôle détecte deux autres problèmes. Le premier problème se réfère au pilote appelé dans xsp-firewall-secure.driver. Au lieu d'appeler xsp-firewall-hardening.driver, xsp-firewall-secure.driver appelle encore hardening.driver.
Le second problème se réfère à la variable JASS_SCRIPTS qui est réglée sur minimize-Sun_ONE-WS.fin et non sur minimize-firewall.fin.
Le script suivant est incorrect.
Le script suivant est correct.
La configuration de durcissement du pare-feu proposé est prête pour sa personnalisation et son réglage précis. Les scripts initiaux se basent sur hardening.driver. Ceci signifie que tous les services du système sont désactivés.
Vu que Solaris 8 OS ne contient pas de Shell client sécurisé, vous devez faire des modifications pour permettre l'administration à distance via le réseau des pare-feux. Pour le pare-feu dans cet exemple de scénario, il est spécifié que les services FTP doivent rester activés et qu'un Shell client sécurisé doit être installé pour l'administration à distance. Limitez ces deux services uniquement au réseau privé de gestion, en empêchant donc l'écoute sur toutes autres interfaces réseau. Vous trouverez des informations sur la restriction de ces services dans l'article Sun BluePrints OnLine intitulé « Solaris Operating Environment Security : Updated for the Solaris 9 Operating Environment ».
Laissez non seulement ces deux services activés, mais encore les services RPC de manière à pouvoir utiliser l'interface graphique (IG) pour configurer Solstice DiskSuite et effectuer la mise en miroir du disque. Si l'interface graphique de Solstice DiskSuite ne doit pas être utilisée, les services RPC sont inutiles. Dans cet exemple, l'interface graphique est requise et les services RPC sont laissés activés. Notez que l'installation et la configuration de Solstice DiskSuite ne font pas l'objet de cet ouvrage.
La modification finale pour ce client consiste en un fichier syslog.conf personnalisé qui utilise le serveur SYSLOG central du xSP. Ce fichier syslog.conf personnalisé doit être installé sur chacun des systèmes de pare-feu.
Ces modifications requièrent des changements dans un grand nombre d'options de configuration de Solaris Security Toolkit. Chacune des modifications nécessaires est décrite en détails dans les sections suivantes.
Pour le pare-feu dans cet exemple de scénario, laissez les services FTP activés.
|
1. Pour laisser le service FTP activé, modifiez le comportement pas défaut du fichier update-inetd-conf.fin en réglant les variables JASS_SVCS_DISABLE et JASS_SVCS_ENABLE.
Pour désactiver tous les services standard Solaris sauf FTP, la meilleure méthode dans notre exemple de scénario est de définir JASS_SVCS_ENABLE sur ftp, tout en s'assurant que JASS_SVCS_DISABLE conserve sa valeur par défaut obtenue via le script finish.init. Reportez-vous au manuel le Solaris Security Toolkit 4.1 Reference Manual.
2. Pour implémenter le changement à l'aide des variables d'environnement, ajoutez une entrée du type ci-dessous à xsp-firewall-secure.driver avant l'appel à xsp-firewall-hardening.driver.
3. Vérifiez que FTP n'est disponible que sur le réseau de gestion du xSP en l'implémentant via le logiciel du pare-feu.
Parmi les autres conditions, il fallait que FTP ne soit disponible que sur le réseau de gestion du xSP. Sur le SE Solaris 8, vous pouvez implémenter cette condition en incorporant des wrappers TCP sur le système ou par l'intermédiaire du logiciel du pare-feu. Dans cet exemple de scénario, implémentez cette conditions via le logiciel du pare-feu.
Vu que Solaris 8 n'incorpore pas un Shell client sécurisé, vous devez installer un Shell client sécurisé pour l'administration à distance.
Vous pouvez configurer le logiciel Solaris Security Toolkit pour installer l'outil OpenSSH. Utilisez le script install-openssh.fin, listé dans le fichierconfig.driver utilisé par xsp-firewall-secure.driver.
|
1. Copiez le config.driver par défaut sur xsp-firewall-config.driver.
2. Dans la copie du fichier, annuler le commentaire relatif à install-openssh.fin.
3. Modifiez l'entrée dans xsp-firewall-secure.driver qui appelleconfig.driver pour qu'elle appelle xsp-firewall-config.driver à sa place.
4. Procurez-vous la dernière version d'OpenSSH.
Comme pour les patchs et le système d'exploitation, veillez à toujours utiliser la version la plus récente d'OpenSSH. Pour des informations sur la dernière version, accédez aux pages Web d'OpenSSH :
5. Compilez le dernier package OpenSSH, attribuez-lui un nom correct et installez-le dans le répertoire Packages.
Pour de plus amples informations sur ce package, reportez-vous à l'article Sun BluePrints OnLine intitulé « Configuring OpenSSH for the Solaris Operating Environment ».
6. Actualisez le script install-openssh.fin en mettant à jour le nom du package OpenSSH.
Il peut être nécessaire de modifier le script install-openssh.fin. Ce script définit le nom de package du package OpenSSH dont le format doit être du type suivant.
Où le nom de package est constitué par le numéro de version (3.5p1), l'architecture (sparc), la version de l'architecture (sun4u), le système d'exploitation pour lequel ce package a été compilé(5.8) et un suffixe pkg.
7. Vérifiez que SSH n'est disponible que sur le réseau de gestion du xSP en l'implémentant via le logiciel du pare-feu.
Parmi les autres conditions, il fallait que le Shell sécurisé ne soit disponible que sur le réseau de gestion du xSP. Avec Solaris 8, vous pouvez implémenter cette condition en incorporant des wrappers TCP sur le système ou par l'intermédiaire du logiciel du pare-feu. Dans cet exemple de scénario, nous l'implémentons via le logiciel du pare-feu. Notez que cette condition peut également être implémentée en modifiant la configuration du serveur Shell sécurisé.
Laissez les services RPC activés afin de pouvoir utiliser SDS pour la mise en miroir du disque, qui nécessite RPC.
Cette modification est relativement immédiate grâce à la disponibilité d'un script finish disable-rpc.fin qui désactive les services RPC pendant une session de Solaris Security Toolkit.
Remarque - L'accès à distance aux services RPC sur un système doit être explicitement interdit par la configuration de pare-feu du système. |
|
Commentez l'entrée pour disable-rpc.fin dans xsp-firewall-hardening.driver.
Désactivez les scripts depuis les pilotes en les commentant au lieu de les supprimer. Faites attention en commentant les entrées dans la définition JASS_SCRIPTS, parce que seules certaines combinaisons de commentaires sont acceptées.
L'exemple suivant est un commentaire inclus dans le script driver.funcs concernant les données que le logiciel Solaris Security Toolkit accepte comme indicateurs de commentaires dans la définition de JASS_SCRIPTS.
La modification finale pour ce client consiste en un fichier personnalisé syslog.conf qui utilise le serveur SYSLOGcentral du xSP. Ce fichier syslog.conf personnalisé doit être installé sur chacun des systèmes de pare-feu.
|
1. Copiez le fichier syslog.conf standard du xSP, renommez-le syslog.conf.jordan et placez-le dans le répertoire Files/etc.
Le logiciel Solaris Security Toolkit permet de copier des fichier selon plusieurs méthodes. L'option la plus appropriée pour cette configuration est d'ajouter au fichier le nom d'hôte du système sous forme de suffixe de sorte que le fichier syslog.conf est uniquement copié sur jordan, parce qu'il a des modifications uniques spécifiques au pare-feu. Dans notre cas, le client est appelé jordan, de sorte que le nom de fichier utilisé dans Files/etc est syslog.conf.jordan. Il est important de noter que la définition de JASS_FILES ne doit pas avoir de suffixe. Pour de plus amples informations, reportez-vous au manuel le Solaris Security Toolkit 4.1 Reference Manual.
2. Si le fichier xSP standard syslog.conf n'est pas disponible, créez un fichier syslog.conf personnalisé en procédant comme suit :
a. Copiez le fichier syslog.conf livré avec le logiciel Solaris Security Toolkit, renommez-le syslog.conf.jordan et placez-le dans le répertoire Files/etc.
b. Modifiez syslog.conf.jordan pour le conformer au standard xSP pour SYSLOG.
3. Vérifiez que le fichier /etc/syslog.conf est listé dans la définition JASS_FILES du xsp-firewall-hardening.driver.
Par défaut, la définition modifiée JASS_FILE dans xsp-firewall-hardening.driver est la suivante.
/etc/init.d/set-tmp-permissions /etc/rc2.d/S00set-tmp-permissions |
À ce stade, toutes les modifications requises ont été faites. L'installation du système d'exploitation, la réduction et le durcissement sont entièrement automatisés et personnalisés en fonction de l'application spécifique. Les seules tâches qui ne sont pas entièrement automatisées sont la configuration et l'installation du logiciel pare-feu et de Solstice DiskSuite. Même si ces configurations peuvent être réalisées en utilisant la technologie JumpStart, les instructions correspondantes ne sont pas traitées dans cet ouvrage. Reportez-vous à l'ouvrage Sun BluePrints JumpStart Technology: Effective Use in the Solaris Operating Environment.
Après avoir apporté toutes les modifications voulues au pilotes, installez le client en procédant comme décrit dans cette section.
|
1. Quand toutes les modifications requises ont été apportées aux pilotes, installez le client en utilisant l'infrastructure JumpStart.
Tapez la commande suivante à l'invite ok du client.
2. Si vous rencontrez des erreurs, corrigez-les et réinstallation le système d'exploitation du client.
La dernière tâche de ce processus consiste à vérifier que les applications et services offerts par le système fonctionnent tous correctement. Cette tâche permet aussi de vérifie que le profil de sécurité a correctement implémenté les modifications requises.
Il est important que cette tâche soit accomplie avec soin et immédiatement après la réinitialisation de la plate-forme qui vient d'être durcie et réduite, afin d'assurer la détection des anomalies ou problèmes éventuels et leur rapide correction. Cette procédure comporte deux tâches : Vérification de l'installation du profil et du fonctionnement des applications et des services.
|
Pour vérifier que le logiciel Solaris Security Toolkit a installé correctement le profil de sécurité et sans erreurs, contrôlez et évaluez ce qui suit :
1. Vérifiez le fichier journal de l'installation.
Ce fichier est installé dans JASS_REPOSITORY/jass-install-log.txt.
2. Utilisez l'option audit pour évaluer la configuration de sécurité du système.
Pour des informations détaillées sur l'option audit, reportez-vous au Chapitre 6. Pour ce scénario, nous utilisons la commande suivante du répertoire où le logiciel Solaris Security Toolkit a été installé sur le client.
Si la vérification de Solaris Security Toolkit rencontre des incohérences, celles-ci seront consignées. Un résumé des incohérences détectées est généré au terme de la vérification. La sortie complète de la vérification se trouve dans le répertoire JASS_REPOSITORY.
|
La vérification des applications et des services passe par la mise en oeuvre d'un plan de test et d'acceptation bien défini. Ce plan s'utilise pour tester les différents composants d'un système ou d'une application et s'assurer qu'ils sont disponibles et en bon état de marche. En l'absence d'un tel plan, testez raisonnablement le système en vous basant sur la manière dont il est utilisé. L'objectif est de s'assurer que le durcissement n'a pas altéré le fonctionnement des applications ou services.
1. En cas d'anomalie de fonctionnement d'une application ou d'un service après le durcissement du système, utilisez les techniques décrites dans le chapitre Chapitre 2 pour rechercher le problème.
Par exemple, utilisez la commande truss. Cette commande peut souvent être utilisée pour déterminer à quel point une application rencontre un problème. Une fois ceci déterminé, il est possible de cibler de problème et de remonter à la modification effectuée par le logiciel Solaris Security Toolkit.
Remarque - D'après l'expérience collective des personnes qui ont développé le Solaris Security Toolkit, la plupart des problèmes peuvent être évités en suivant la démarche expliquée dans cet ouvrage. |
2. De même, testez le logiciel Check PointFirewall-1 NG, remontez aux modifications du logiciel Solaris Security Toolkit et corrigez les problèmes.
3. Si la liste finale des packages doit être modifiée, modifiez le profil, réinstallez le système et recommencez le test.
Copyright © 2004, Sun Microsystems, Inc. Tous droits réservés.