Réglage des Politiques SELinux

Si la distribution utilisée de Linux inclut SELinux (Linux sécurisé), vous devrez peut-être configurer les politiques de sécurité de SELinux pour permettre un fonctionnement correct des composants (par exemple, le fonctionnement du moteur de scan) après leur installation.

1. Problèmes d’installation du package universel

Si SELinux est autorisé, 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.

En cas d’échec, vérifiez le mode opératoire de SELinux via la commande getenforce. La commande affiche un des modes suivants:

Permissif – 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.

Restrictif – 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 Restrictif, passez en mode Permissif pour la durée d’installation du produit. Pour cela, utilisez la commande setenforce 0 qui autorise temporairement (jusqu’au prochain redémarrage) le mode Permissif pour SELinux.

Notez que quel que soit le mode opératoire autorisé via la commande setenforce, le redémarrage du système d’exploitation replace SELinux dans le mode opératoire indiqué dans les paramètres de SELinux (le fichier des paramètres de SELinux réside généralement dans le répertoire /etc/selinux).

Après l’installation réussie du produit, activez de nouveau le mode Restrictif pour SELinux avant de lancer le produit. Pour cela, utilisez la commande setenforce1.

2. Problèmes de fonctionnement

Dans certains cas, lorsque SELinux est autorisé, certains modules auxiliaires de Dr.Web pour Linux (par exemple drweb-se et drweb-filecheck utilisés par le Scanner) 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 par syslog (le log est généralement placé dans le répertoire /var/log/).

Les messages sur les erreurs 119 et 120 peuvent également désigner une tentative de démarrer Dr.Web pour Linux dans une version 64-bits du système d’exploitation si la bibliothèque de support de l’application 32-bits est manquante (voir Pré-requis système).

Les messages de SELinux sont enregistrés dans les logs du système. En général, lorsque le daemon audit est utilisé dans le système, le fichier de log audit est /var/log/audit/audit.log. Sinon, les messages sur les opérations bloquées sont sauvegardés dans le fichier de log général dans /var/log/messages.

Notez que certaines distributions de Linux ne fournissent pas les utilitaires mentionnés ci-dessous. Si c’est le cas, vous pouvez avoir besoin de packages supplémentaires pour ces utilitaires.

Pour créer les politiques requises

1.Créez un nouveau fichier avec le code source de la politique SELinux (.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 log du système. Vous pouvez paramétrer de rechercher les messages automatiquement ou indiquer un chemin vers le fichier de log manuellement.

Notez que vous pouvez utiliser cette méthode uniquement si Dr.Web pour Linux a violé les politiques de sécurité de SELinux et que ces événements sont enregistrés dans le fichier de log audit. Si ce n’est pas le cas, attendez qu’un incident survienne ou créez de force des politiques permissives en utilisant l’utilitaire policygentool (voir ci-dessous).

L’utilitaire audit2allow réside dans le package policycoreutils-python ou policycoreutils-devel (pour les systèmes d’exploitation RedHat Enterprise Linux, CentOS, Fedora en fonction de la version) ou dans le package python-sepolgen (pour les OS Debian, Ubuntu ).

Veuillez noter que pour la version 20 de Fedora, il est requis d’installer en plus le package checkpolicy, sinon l’utilitaire audit2allow remonte une erreur.

Exemple d’Utilisation :

# grep drweb-se.real /var/log/audit/audit.log | audit2allow -M drweb-se

Dans l’exemple donné, l’utilitaire audit2allow effectue une recherche dans le fichier audit.logpour 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 log audit du 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. 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 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)Utiliser l’utilitaire policygentool. Pour cela, indiquez le nom du module avec lequel vous souhaitez configurer et le chemin complet vers le fichier exécutable.

Notez que l’utilitaire policygentool, inclus au package selinux-policy pour les OS RedHat Enterprise Linux et CentOS Linux, peut ne pas fonctionner correctement. Si c’est le cas, utilisez l’utilitaire audit2allow.

Exemple de création de politique via policygentool:

opour drweb-se (utilisé par le moteur antivirus):

# policygentool drweb-se /opt/drweb.com/bin/drweb-se.real

opour drweb-filecheck (utilisé par le Scanner):

# policygentool drweb-filecheck /opt/drweb.com/bin/drweb-filecheck.real

Vous serez invité à indiquer plusieurs caractéristiques de domaine commun. Ensuite, trois fichiers déterminant la politique seront créés pour chacun des modules:

<nom_du_module>.te, <nom_du_module>.fc and <nom_du_module>.if.

2.Si nécessaire, modifiez le fichier source de la politique généré <nom_du_module>.te puis utilisez l’utilitaire checkmodule pour créer un mappage binaire du fichier source de la politique locale (fichier .mod).

Notez que pour garantir le succès de la commande, le package checkpolicy doit être installé dans le système.

Exemple d’Utilisation

# checkmodule -M -m -o drweb-se.mod drweb-se.te

3.Créez un module de politique installé (fichier .pp) grâce à l’utilitaire semodule_package.

Exemple

# semodule_package -o drweb-se.pp -m drweb-se.mod

4.Pour installer le module de politique créé, utilisez l’utilitaire semodule.

Exemple

# semodule -i drweb-se.pp

Pour en savoir plus sur le fonctionnement et la configuration de SELinux, consultez la documentation sur la distribution de Linux utilisée.