6.5. Configuration de l'opérateur d'intégrité de fichier personnalisé
6.5.1. Visualisation des attributs de l'objet FileIntegrity
Comme pour toutes les ressources personnalisées (CR) de Kubernetes, vous pouvez exécuter oc explain fileintegrity
, puis examiner les attributs individuels à l'aide de :
$ oc explain fileintegrity.spec
$ oc explain fileintegrity.spec.config
6.5.2. Attributs importants
Attribut | Description |
---|---|
|
Une carte de paires clé-valeur qui doivent correspondre aux étiquettes du nœud pour que les pods AIDE puissent être planifiés sur ce nœud. L'utilisation typique est de définir une seule paire clé-valeur où |
|
Attribut booléen. S'il vaut |
| Spécifier les tolérances à planifier sur les nœuds avec des taches personnalisées. Si elle n'est pas spécifiée, une tolérance par défaut est appliquée, ce qui permet aux tolérances de s'exécuter sur les nœuds du plan de contrôle. |
|
Nombre de secondes de pause entre les contrôles d'intégrité AIDE. Les contrôles AIDE fréquents sur un nœud peuvent être gourmands en ressources, il peut donc être utile de spécifier un intervalle plus long. La valeur par défaut est |
|
Le nombre maximum de sauvegardes de la base de données et des journaux AIDE laissées par le processus |
| Nom d'un configMap contenant la configuration personnalisée de l'AIDE. En cas d'omission, une configuration par défaut est créée. |
| Espace de noms d'un configMap contenant la configuration personnalisée de l'AIDE. S'il n'est pas défini, l'interface génère une configuration par défaut adaptée aux systèmes RHCOS. |
|
Clé qui contient la configuration actuelle d'AIDE dans une carte de configuration spécifiée par |
| Le nombre de secondes à attendre avant de lancer le premier contrôle d'intégrité AIDE. La valeur par défaut est 0. Cet attribut est facultatif. |
6.5.3. Examiner la configuration par défaut
La configuration par défaut de l'opérateur d'intégrité des fichiers est stockée dans une carte de configuration portant le même nom que le CR FileIntegrity
.
Procédure
Pour examiner la configuration par défaut, exécutez :
$ oc describe cm/worker-fileintegrity
6.5.4. Comprendre la configuration par défaut de l'opérateur d'intégrité des fichiers
Voici un extrait de la clé aide.conf
de la carte de configuration :
@@define DBDIR /hostroot/etc/kubernetes @@define LOGDIR /hostroot/etc/kubernetes database=file:@@{DBDIR}/aide.db.gz database_out=file:@@{DBDIR}/aide.db.gz gzip_dbout=yes verbose=5 report_url=file:@@{LOGDIR}/aide.log report_url=stdout PERMS = p+u+g+acl+selinux+xattrs CONTENT_EX = sha512+ftype+p+u+g+n+acl+selinux+xattrs /hostroot/boot/ CONTENT_EX /hostroot/root/\..* PERMS /hostroot/root/ CONTENT_EX
La configuration par défaut d'une instance FileIntegrity
permet de couvrir les fichiers situés dans les répertoires suivants :
-
/root
-
/boot
-
/usr
-
/etc
Les répertoires suivants ne sont pas couverts :
-
/var
-
/opt
-
Quelques exclusions spécifiques à OpenShift Container Platform sous la rubrique
/etc/
6.5.5. Fournir une configuration AIDE personnalisée
Toutes les entrées qui configurent le comportement interne d'AIDE, telles que DBDIR
, LOGDIR
, database
et database_out
, sont écrasées par l'opérateur. L'opérateur ajouterait un préfixe à /hostroot/
avant tous les chemins à surveiller pour les changements d'intégrité. Cela facilite la réutilisation des configurations AIDE existantes qui peuvent souvent ne pas être adaptées à un environnement conteneurisé et commencer à partir du répertoire racine.
/hostroot
est le répertoire dans lequel les pods exécutant AIDE montent le système de fichiers de l'hôte. La modification de la configuration entraîne une réinitialisation de la base de données.
6.5.6. Définition d'une configuration personnalisée de l'opérateur d'intégrité des fichiers
Cet exemple se concentre sur la définition d'une configuration personnalisée pour un scanner qui s'exécute sur les nœuds du plan de contrôle, sur la base de la configuration par défaut fournie pour le CR worker-fileintegrity
. Ce flux de travail peut être utile si vous envisagez de déployer un logiciel personnalisé fonctionnant comme un ensemble de démons et stockant ses données sous /opt/mydaemon
sur les nœuds du plan de contrôle.
Procédure
- Faites une copie de la configuration par défaut.
- Modifiez la configuration par défaut en indiquant les fichiers qui doivent être surveillés ou exclus.
- Stocker le contenu modifié dans une nouvelle carte de configuration.
-
Pointer l'objet
FileIntegrity
vers la nouvelle carte de configuration par le biais des attributs despec.config
. Extraire la configuration par défaut :
$ oc extract cm/worker-fileintegrity --keys=aide.conf
Cela crée un fichier nommé
aide.conf
que vous pouvez modifier. Pour illustrer la façon dont l'opérateur traite les chemins d'accès, cet exemple ajoute un répertoire d'exclusion sans le préfixe :$ vim aide.conf
Exemple de sortie
/hostroot/etc/kubernetes/static-pod-resources !/hostroot/etc/kubernetes/aide.* !/hostroot/etc/kubernetes/manifests !/hostroot/etc/docker/certs.d !/hostroot/etc/selinux/targeted !/hostroot/etc/openvswitch/conf.db
Exclure un chemin spécifique aux nœuds du plan de contrôle :
!/opt/mydaemon/
Conservez les autres contenus sur
/etc
:/hostroot/etc/ CONTENT_EX
Créer une carte de configuration basée sur ce fichier :
$ oc create cm master-aide-conf --from-file=aide.conf
Définir un manifeste
FileIntegrity
CR qui fait référence à la carte de configuration :apiVersion: fileintegrity.openshift.io/v1alpha1 kind: FileIntegrity metadata: name: master-fileintegrity namespace: openshift-file-integrity spec: nodeSelector: node-role.kubernetes.io/master: "" config: name: master-aide-conf namespace: openshift-file-integrity
L'opérateur traite le fichier de carte de configuration fourni et stocke le résultat dans une carte de configuration portant le même nom que l'objet
FileIntegrity
:$ oc describe cm/master-fileintegrity | grep /opt/mydaemon
Exemple de sortie
!/hostroot/opt/mydaemon
6.5.7. Modification de la configuration personnalisée de l'intégrité des fichiers
Pour modifier la configuration de l'intégrité des fichiers, ne modifiez jamais la carte de configuration générée. Modifiez plutôt la carte de configuration liée à l'objet FileIntegrity
par l'intermédiaire des attributs spec.name
, namespace
et key
.