Configuration des politiques de sécurité SELinux

Dans cette section

Problèmes d’installation du paquet universel

Problèmes de fonctionnement de Dr.Web Security Space

Si la distribution utilisée de GNU/Linux inclut le sous-système de sécurité SELinux (Security-Enhanced Linux - Linux avec la sécurité améliorée), vous devrez probablement configurer les politiques de sécurité de SELinux pour assurer le fonctionnement correct des composants de service de Dr.Web Security Space (par exemple, du moteur de scan) après l’installation des composants.

Problèmes d’installation du paquet universel

Si SELinux est activé l’installation de Dr.Web Security Space sous forme d’un paquet universel, depuis le fichier d’installation (.run) peut échouer parce que la tentative de création dans le système de l’utilisateur drweb, sous lequel les composants de Dr.Web Security Space fonctionnent, peut être bloquée.

Si la tentative d’installer Dr.Web Security Space depuis le fichier d’installation (.run) a échoué suite à l’impossibilité de créer l’utilisateur drweb, vérifiez le mode de fonctionnement de SELinux. Pour ce faire, exécutez la commande getenforce. Cette commande affiche sur l’écran le mode actuel de la protection :

Enforcing : la protection est active et la 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 ;

Permissive : la protection est active mais la 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 ;

Disabled : SELinux est installé mais non activé.

Si SELinux opère en mode Enforcing, passez temporairement (pour le délai d’installation de Dr.Web Security Space) en mode Permissive. Pour cela, exécutez la commande suivante :

# setenforce 0

La commande indiquée met SELinux temporairement (jusqu’au prochain redémarrage) en mode Permissive.

Quel que soit le mode de protection spécifié via la commande setenforce, le redémarrage du système d’exploitation replace SELinux dans le mode de protection indiqué dans les paramètres (le fichier des paramètres de SELinux se trouve généralement dans le répertoire /etc/selinux).

Après l’installation réussie de Dr.Web Security Space depuis le fichier d’installation, activez de nouveau le mode Enforcing avant de lancer et activer le produit. Pour ce faire, exécutez la commande :

# setenforce 1

Problèmes de fonctionnement de Dr.Web Security Space

Dans certains cas, lorsque SELinux est activé, certains modules auxiliaires de Dr.Web Security Space (par exemple drweb-se et drweb-filecheck) ne peuvent pas démarrer. Si c’est le cas, le scan des objets et la surveillance du système de fichiers deviennent indisponibles. Lorsque ces composants échouent à démarrer. Les messages sur les erreurs 119 et 120 s’affichent dans la fenêtre principale de Dr.Web Security Space et dans le journal système syslog (d’habitude placé dans le répertoire /var/log/).

En cas de déclenchement du système de sécurité SELinux, les informations sur les échecs sont enregistrées également dans le journal système d’audit. En général, lorsque le démon audit est utilisé dans le système, le journal d’audit se trouve dans le fichier /var/log/audit/audit.log. Sinon, les messages sur les opérations bloquées sont enregistrés dans le fichier de journal général /var/log/messages ou /var/log/syslog.

S’il est déterminé que les composants de scan ne fonctionnent pas car ils sont bloqués par SELinux, compilez pour eux des politiques de sécurité spéciales.

Les utilitaires mentionnés ci-dessous peuvent ne pas être installés dans certaines distributions de GNU/Linux. Si c’est le cas, vous devrez probablement les installer manuellement.

Pour configurer les politiques de sécurité SELinux

1.Créez un nouveau fichier avec le code source de la politique SELinux (fichier avec l’extension .te). Ce fichier spécifie les limitations appliquées au module. Le fichier source de la politique peut être créé de deux façons :

1)En utilisant l’utilitaire audit2allow qui est la méthode la plus simple. L’utilitaire génère les règles d’autorisation depuis les messages de déni d’accès dans les fichiers de journaux système. Vous pouvez spécifier une recherche de messages automatique dans les fichiers de journaux ou indiquer manuellement le chemin d’accès au fichier du journal.

Vous pouvez utiliser cette méthode uniquement si les composants de Dr.Web Security Space 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 Security Space ou forcez la création des politiques d’autorisation en utilisant l’utilitaire policygentool (voir ci-dessous).

 

L’utilitaire audit2allow réside dans le paquet policycoreutils-python ou policycoreutils-devel (pour les OS Red Hat Enterprise Linux, CentOS, Fedora en fonction de la version) ou dans le paquet python-sepolgen (pour les OS Debian, Ubuntu).

Exemple d’utilisation audit2allow :

# 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 /var/log/audit/audit.log pour trouver les messages de déni d’accès pour le composant 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 reçu de la politique drweb-se.pp.

Par défaut, l’utilitaire audit2allow affiche l’appel à la commande semodule en tant que résultat de son fonctionnement. En le copiant dans la ligne de commande et en l’exécutant, vous effectuez l’étape 4. Allez à l’étape 2 seulement si vous souhaitez modifier les politiques qui ont été automatiquement générées pour les composants de Dr.Web Security Space.

2)En utilisant l’utilitaire policygentool. Pour cela, indiquez le nom du composant avec lequel vous souhaitez effectuer la configuration et le chemin complet vers le fichier exécutable.

L’utilitaire policygentool, inclus au paquet selinux-policy pour les OS Red Hat Enterprise Linux et CentOS peut ne pas fonctionner correctement. Si c’est le cas, utilisez l’utilitaire audit2allow.

Exemple de création de politiques via policygentool :

pour le composant drweb-se :

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

pour le composant drweb-filecheck :

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

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

<module_name>.te, <module_name>.fc et <module_name>.if.

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

Notez que pour le fonctionnement réussi de la commande, le paquet 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 à installer (fichier avec l’extension .pp) avec 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 GNU/Linux utilisée.