Configuration des politiques de sécurité SELinux |
Si la distribution utilisée de UNIX inclut le sous-systeme de sécurité SELinux (ecurity-Enhanced UNIX — UNIX avec la sécurité améliorée), vous devrez probablement configurer les politiques de sécurité de SELinux pour assurer un fonctionnement correct des composants de l’application (par exemple, du moteur de scan) après leur installation. 1. Problèmes d’installation du paquet universel Si SELinux est activé sous forme d’un paquet universel, l’installation depuis le fichier d’installation (.run) peut échouer parce que la tentative de création de l’utilisateur drweb, sous lequel les composants de Dr.Web pour Linux fonctionnent, peut être bloquée. Si la tentative d’installer Dr.Web pour Linux depuis le fichier exécutable (.run) a échoué suite à l’impossibilité de créer l’utilisateur drweb, vérifiez le mode de fonctionnement SELinux. Pour ce faire, exécutez la commande getenforce. Cette commande affiche sur l’écran le mode actuel de la protection : •Permissive : la protection est active mais une stratégie permissive est mise en place : les actions qui violent la politique de sécurité ne sont pas rejetées mais les informations sur ces actions sont journalisées. •Enforced : la protection est active et une stratégie restrictive est mise en place : les actions qui violent les politiques de sécurité sont bloquées et les informations sur ces actions sont journalisées. •Désactivé : SELinux est installé mais non actif. Si SELinux opère en mode Enforced, passez en mode Permissive pour le délai d’installation. Pour cela, exécutez la commande :
qui met SELinux temporairement (jusqu’au prochain redémarrage) en mode Permissive.
Après l’installation réussie de Dr.Web pour Linux depuis un fichier d’installation, activez de nouveau le mode Enforced avant de lancer et activer le produit. Pour ce faire, exécutez la commande :
2. Problèmes de fonctionnement de Dr.Web pour Linux Dans certains cas, lorsque SELinux est activé, certains modules auxiliaires de Dr.Web pour Linux (par exemple drweb-se et drweb-filecheck utilisés par le Scanner et SpIDer Guard) ne peuvent pas démarrer. Si c’est le cas, le scan des objets et la surveillance du système de fichiers deviennent indisponibles. Lorsqu’un module auxiliaire échoue à démarrer, la fenêtre principale de Dr.Web pour Linux affiche des messages sur les erreurs 119 et 120 et des informations sur ces erreurs sont également enregistrées dans le journal système syslog (d’habitude placé dans le répertoire /var/log/). Les messages de SELinux sont enregistrés dans le journal système d’audit. En général, lorsque le daemon audit est utilisé dans le système, le journal audit se trouve dans le fichier /var/log/audit/audit.log. Sinon, les messages sur les opérations bloquées sont sauvegardés dans le fichier journal général /var/log/messages ou /var/log/syslog. S’il est déterminé que les modules auxiliaires ne fonctionnent pas car ils sont bloqués par SELinux, compilez pour eux des politiques de sécurité spéciales.
Pour créer les politiques requises : 1.Créez un nouveau fichier avec le code source de la politique SELinux (fichier avec l’extension .te). Ce fichier définit les restrictions appliquées au module. Le code source de la politique peut être indiqué d’une des façons suivantes : 1)En utilisant l’utilitaire audit2allow qui est la méthode la plus simple. L’utilitaire génère des règles permissives depuis les messages de déni d’accès dans les fichiers de journaux système. Vous pouvez paramétrer de rechercher les messages automatiquement ou indiquer un chemin vers le fichier de journal manuellement. Notez que vous pouvez utiliser cette méthode uniquement si les composants de Dr.Web pour Linux ont violé les politiques de sécurité de SELinux et que ces événements sont enregistrés dans le fichier de journal d’audit. Si ce n’est pas le cas, attendez qu’un incident survienne lors du fonctionnement de Dr.Web pour Linux ou créez de force des politiques permissives en utilisant l’utilitaire policygentool (voir ci-dessous).
Exemple de l’utilisation de audit2allow :
Dans l’exemple donné, l’utilitaire audit2allow effectue une recherche dans le fichier audit.log pour trouver les messages de déni d’accès pour le module drweb-se. Les deux fichiers suivants sont créés : le fichier source de la politique drweb-se.te et le module de la politique drweb-se.pp prêt à l’installation. Si aucun incident de violation de la sécurité n’est trouvé dans le journal système, l’utilitaire remonte un message d’erreur. Dans la plupart des cas, vous n’avez pas besoin de modifier le fichier de la politique créé par l’utilitaire audit2allow. Par conséquent, il est recommandé d’aller à l’étape 4 pour installer le module de la politique drweb-se.pp. Notez que l’utilitaire audit2allow affiche l’appel à la commande semodule en tant que résultat de son fonctionnement. En copiant ce qui s’affiche en ligne de commande et en l’exécutant, vous terminez l’étape 4. Allez à l’étape 2 seulement si vous souhaitez modifier les politiques de sécurité qui ont été automatiquement générées pour les composants de Dr.Web pour Linux. 2)En utilisant l’utilitaire policygentool. Pour cela, indiquez le nom du module avec lequel vous souhaitez configurer et le chemin complet vers le fichier exécutable.
Exemple de création de politique via policygentool : •Pour drweb-se :
•Pour drweb-filecheck :
Vous serez invité à indiquer plusieurs caractéristiques du domaine commun. Ensuite, trois fichiers déterminant la politique seront créés pour chacun des modules : <module_name>.te, <module_name>.fc et <module_name>.if. 2.Si nécessaire, modifiez le fichier source de la politique généré <nom_de_module>.te puis utilisez l’utilitaire checkmodule pour créer un mappage binaire du fichier source de la politique locale (fichier .mod).
Exemple d’utilisation :
3.Créez un module de politique à installer (fichier avec l’extension .pp) avec l’utilitaire semodule_package. Exemple :
4.Pour installer le module de politique créé, utilisez l’utilitaire semodule. Exemple :
Pour en savoir plus sur le fonctionnement et la configuration de SELinux, consultez la documentation sur la distribution de UNIX utilisée. |