3.4 Système d'exploitation avec SELinux

Si votre système d'exploitation est protégé par le sous-système SELinux, en cas de tentative de lancer le scan pour analyser le système à la recherche des virus (ainsi que lors de la tentative de démarrage automatique de Daemon-Scanner), vous pouvez recevoir un message informant sur une erreur de démarrage :

Voici un exemple de message affiché en cas de tentative de lancer le scan via Panneau de commande:

Fig. 2. Erreur de Scanner

Lorsque le SELinux fontionne, pour que les composants Dr.Web Console Scanner, Dr.Web Daemon et Dr.Web SpIDer Guard puissent fonctionner correctement, il faut compiler des politiques pour les modules respectifs drweb-scanner, drweb-daemon et drweb-spider ou il faut que la valeur de la variable allow_execheap soit égale à 1.

 

Merci de faire attention à ce que lors de la compilation des modules de politiques, les templates différents sont utilisés, dont la plupart varient en fonction des distributions Linux, leurs versions, le jeu de politiques SELinux et des paramètres utilisateur.

Pour en savoir plus sur la compilation des modules de politiques, veuillez consulter la documentation relative à votre distribution Linux.

Pour exécuter toutes les commandes relatives à la gestion des politiques de sécurité SELinux, les doirts de super utilisateur sont requis (utilisez sudo ou su).

 

Pour créer des politiques nécessaires :

1.Créer un nouveau fichier contenant le code source de la politique SELinux (fichier .te). Ce fichier détermine des restrictions relatives au module en question. Le fichier source de la politique peut être créé :
Avec l'utilitaire policygentool.
Pour cela, spécifiez comme paramètre le nom du module à paramétrer et le chemin complet vers son fichier exécutable.

 

Prenez en compte que l'utilitaire policygentool inclus dans le package selinux-policy dans Red Hat Enterprise Linux et CentOS Linux, peut fonctionner incorrectement. Dans ce cas, utilisez audit2allow.

 

Exemple :

pour le Dr.Web Console Scanner:

# policygentool drweb-scanner /opt/drweb/drweb.real

pour le Dr.Web Daemon:

# policygentool drweb-daemon /opt/drweb/drwebd.real

pour le Dr.Web SpIDer Guard:

# policygentool drweb-spider /opt/drweb/drweb-spider.real

Vous serez invité à spécifier plusieurs caractéristiques communes du domaine et ensuite les trois fichiers suivants seront créés pour chaque module :

o<module_name>.te
o<module_name>.fc
o<module_name>.if
Avec l'utilitaire audit2allow.
Cet utilitaire crée des règles autorisantes conformément au message sur un accès refusé dans les fichiers de journaux système. Il est possible de configurer une recherche automatique des messages dans les fichiers de journaux ou de spécifier le chemin vers le fichier du journal de manière manuelle.

 

Dans le cas général, si dans le système, vous utilisez le daemon audit, le fichier de journal se trouve dans /var/log/audit/audit.log. Dans la cas contraire, les messages sur l'opération interdite sont journalisés dans le fichier de log /var/log/messages.

L'utilitaire audit2allow fait partie du paquet policycoreutils-python (pour RedHat Enterprise Linux, CentOS, Fedora) ou du paquet python-sepolgen (pour Debian, Ubuntu).

 

Exemple :

# audit2allow -M -i /var/log/audit/audit.log drweb

Dans cet exemple, audit2allow réalise une recherche des messages sur un accès refusé au fichier audit.log.

Exemple :

# audit2allow -a -M drweb

Dans l'exemple, audit2allow recherche les messages sur un accès refusé dans les fichiers de log de manière automatique.

Dans les deux cas, à la suite du fonctionnement de l'utilitaire, les deux fichiers sont créés : le fichier source de la politique drweb.te et le module de politique prêt à être installé drweb.pp. Si vous souhaitez apporter des modifications dans les permissions relatives aux composants de l'Antivirus Dr.Web pour Linux, éditez le fichier drweb.te comme vous le souhaitez et passez à l'étape 2. S'il n y a pas de modifications à apporter, passez directement à l'étape 4 pour installer le module de politique drweb.pp.

2.En utilisant l'utilitaire checkmodule, créez une version binaire (fichier .mod) du fichier source de la politique locale.

 

Faites attention à ce que la commande nécessite l'installation du package checkpolicy

 

Exemple :

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

3.Créez un module de politique à installer (fichier .pp) avec l'utilitaire semodule_package.

Exemple :

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

4. Pour installer le module de politique que vous avez créé, utilisez l'utilitaire semodule.

Exemple :

# semodule -i drweb.pp

Pour autoriser le fonctionnement des composants Dr.Web Console Scanner, Dr.Web Daemon et Dr.Web SpIDer Guard, il est également possible mais pas recommandé d'attribuer la valeur 1 à la variable d'environnement allow_execheap. La variable d'environnement allow_execheap autorise ou interdit l'exécution des tas de données (memory heap) pour toutes les application lancées sans un domaine non limité (unconfined). Pour paramétrer la variable allow_execheap, exécutez dans la ligne de commande :

# setsebool -P allow_execheap=1