Introduction
Cet article explique comment identifier quand les modules noyau précompilés requis pour la surveillance du système de fichiers et du réseau du connecteur Cisco Secure Endpoint Linux ne sont pas disponibles pour le noyau du système en cours d'exécution, et la procédure de compilation manuelle des modules noyau pour que la surveillance du système de fichiers et du réseau soit opérationnelle.
Pour les besoins de cet article, un « noyau non supporté » est une version du noyau qui est supportée par le connecteur Linux, mais les modules de noyau précompilés spécifiques requis pour la version du noyau ne sont pas inclus dans le paquet d'installation du connecteur et doivent donc être compilés manuellement. Cela peut être le cas pour une version donnée d'un connecteur Linux s'exécutant sur un système d'exploitation qui utilise une mise à jour de version roulante, telle qu'Amazon Linux 2.
Toutes les distributions Linux et les versions du noyau ne supportent pas les modules du noyau compilés. Cet article vous aidera à identifier quand compiler manuellement les modules du noyau peut être utilisé.
Conditions préalables
Exigences
- Pour les systèmes basés sur RHEL, gcc fourni par la distribution installé ; kernel-devel installé pour le noyau en cours d'exécution.
- Pour les systèmes utilisant un Unbreakable Enterprise Kernel (UEK), gcc fourni par la distribution installé ; kernel-uek-devel installé pour le noyau en cours d'exécution.
Applicabilité
Système d'exploitation
- RHEL/CentOS 7
- Noyau compatible Oracle Linux 7 Red Hat (RHCK)
- Oracle Linux 7 UEK 5 et versions antérieures
- Amazon Linux 2
Versions du noyau
- Le module de noyau de surveillance du réseau peut être compilé pour les versions 2.6 à 4.14 inclusivement du noyau.
- Le module noyau de surveillance du système de fichiers peut être compilé pour les versions 3.10 à 4.14 inclusivement du noyau.
REMARQUES :
- Sur les versions 2.6 jusqu'à la version 3.10 du noyau, le connecteur utilise les redirections (un module de noyau hors de l'arborescence) pour la surveillance du système de fichiers, ce qui n'est pas applicable à la compilation personnalisée.
- Les versions de noyau comprises entre 4.14 et 4.19 ne sont pas compatibles avec le connecteur et ne sont pas applicables à la compilation personnalisée.
- Pour les versions 4.19 et ultérieures du noyau, le connecteur utilise des modules eBPF pour la surveillance du système de fichiers et du réseau. Référez-vous à l'article Linux Kernel-Devel Fault pour plus de détails sur la résolution de cette erreur sur ces versions du noyau.
Versions des connecteurs
- 1.16.0 et versions ultérieures
- 1.18.0 et versions ultérieures pour la création de modules de noyau UEK personnalisés
Diagnostic d'un noyau non pris en charge
Lorsque le connecteur est exécuté sur un ordinateur avec un noyau non pris en charge, les défaillances 8 (échec du démarrage du moniteur de système de fichiers en temps réel) et 9 (échec du démarrage du moniteur de réseau en temps réel) sont déclenchées et le connecteur fonctionne dans un état dégradé sans surveillance du système de fichiers ou du réseau.
Les étapes suivantes peuvent être effectuées à partir d'une fenêtre de terminal afin d'identifier si le connecteur est exécuté sur un noyau non pris en charge :
- Vérifiez que la défaillance 8 et/ou la défaillance 9 du connecteur sont déclenchées :
$ /opt/cisco/amp/bin/ampcli status
[logger] Set minimum reported log level to notice
Trying to connect...
Connected.
Status: Connected
Mode: Degraded
Scan: Ready for scan
Last Scan: none
Policy: unsupported kernel example (#7607)
Command-line: Enabled
Faults: 2 Critical
Fault IDs: 8, 9
ID 8 - Critical: Realtime filesystem monitor failed to start.
ID 9 - Critical: Realtime network monitor failed to start.
- Vérifiez que le noyau en cours d'exécution est compris entre 2.6 et 4.14, inclus, et qu'il ne correspond à aucune des versions de module de noyau précompilées.
La commande suivante affiche la version courante du noyau :
$ uname -r
4.14.97-90.72.amzn2.x86_64
Les versions précompilées du module noyau fournies avec le connecteur sont répertoriées à l'aide de la commande suivante :
$ ls /opt/cisco/amp/bin/modules/
4.14.186-146.268.amzn2.x86_64 4.14.198-152.320.amzn2.x86_64 4.14.209-160.335.amzn2.x86_64 4.14.219-161.340.amzn2.x86_64 4.14.225-169.362.amzn2.x86_64
4.14.192-147.314.amzn2.x86_64 4.14.200-155.322.amzn2.x86_64 4.14.209-160.339.amzn2.x86_64 4.14.219-164.354.amzn2.x86_64 4.14.231-173.360.amzn2.x86_64
4.14.193-149.317.amzn2.x86_64 4.14.203-156.332.amzn2.x86_64 4.14.214-160.339.amzn2.x86_64 4.14.225-168.357.amzn2.x86_64 4.14.231-173.361.amzn2.x86_64
Dans l'exemple ci-dessus, la version 4.14.97-90.72.amzn2.x86_64 du noyau n'est pas incluse dans la liste des modules disponibles.
Le connecteur Linux est approprié pour compiler des modules de noyau personnalisés si tous les éléments suivants sont vrais :
- Le ou les défauts 8 et/ou 9 sont surélevés sur le connecteur.
- La version actuelle du noyau est comprise entre 2.6 et 4.14, inclus.
- La version actuelle du noyau n'est pas incluse dans la liste des modules de noyau précompilés
/opt/cisco/amp/bin/modules
Résolution
Si un connecteur Linux est exécuté sur un noyau non pris en charge, la procédure suivante peut être utilisée pour compiler des modules de noyau personnalisés pour le système :
- Installer les dépendances système requises :
$ yum install gcc
gcc
est nécessaire pour compiler les modules du noyau avec des options spécifiques.
- Sur les systèmes utilisant un noyau basé sur RHEL, utilisez la commande suivante pour installer le package de noyau requis :
$ yum install kernel-devel-$(uname -r)
-
Sur les systèmes utilisant UEK, utilisez la commande suivante pour installer le package de noyau requis :
$ yum install kernel-uek-devel-$(uname -r)
Selon votre système, kernel-devel-$(uname -r) ou kernel-uek-devel-$(uname -r)
est nécessaire pour compiler les modules du noyau pour le noyau en cours d'exécution.
-
Exécutez le script compile_kmods.sh avec les privilèges racine :
$ sudo /opt/cisco/amp/bin/compile_kmods.sh
Le script compile_kmods.sh tentera de compiler les modules du noyau de surveillance du système de fichiers et du réseau pour la version courante du noyau. Les modules de noyau personnalisés seront créés dans le répertoire /opt/cisco/amp/extras/modules
. À la fin de l'exécution, le script redémarre automatiquement le connecteur afin que les modules du noyau nouvellement compilés puissent être chargés sur le système.
- Vérifiez que les erreurs 8 et 9 ont été supprimées :
$ /opt/cisco/amp/bin/ampcli status
[logger] Set minimum reported log level to notice
Trying to connect...
Connected.
Status: Connected
Mode: Normal
Scan: Ready for scan
Last Scan: 2021-06-14 05:53 PM
Policy: unsupported kernel example (#7607)
Command-line: Enabled
Faults: None
Autres commandes
L'exécutable compile_kmods.sh est disponible dans les versions 1.16.0 et ultérieures du connecteur Secure Endpoint Linux, et il est installé automatiquement sur les distributions de système d'exploitation compatibles. L'exécutable compile_kmods.sh a été amélioré dans le connecteur Secure Endpoint Linux version 1.18.0 et plus récente pour prendre en charge la compilation personnalisée des UEK.
La compilation personnalisée des modules du noyau pour la surveillance du réseau est prise en charge sur les versions du noyau 2.6 à 4.14, tandis que la compilation personnalisée des modules du noyau pour la surveillance du système de fichiers est prise en charge sur les versions du noyau 3.10 à 4.14.
Commandes disponibles
NOTE: l'exécutable compile_kmods.sh doit être exécuté avec les privilèges racine.
Dépannage
Si les défaillances 8 et/ou 9 sont toujours soulevées après que les étapes de résolution sont suivies, alors les étapes suivantes peuvent être effectuées pour examiner plus en détail le problème :