Installation et configuration d'OpenSearch
Les conditions requises et l'installation en ligne (méthode recommandée) sont spécifiées dans le sujet « Installation de Pandora FMS » dans sa section correspondante.
Pour configurer Pandora FMS avec OpenSearch, consultez « Collecte et supervision des logs » et « Supervision SIEM ».
Installation manuelle et configuration avancée d'OpenSearch
Avant d'exécuter OpenSearch, la pagination de la mémoire et le swap doivent être désactivés sur l'hôte pour améliorer les performances et augmenter le nombre de mappages de mémoire disponibles pour OpenSearch. Consultez « Paramètres importants » pour plus d'informations :
# Disable memory paging and swapping. sudo swapoff -a # Edit the sysctl config file that defines the host's max map count. sudo vi /etc/sysctl.conf # Set max map count to the recommended value of 262144. vm.max_map_count=262144 # Reload the kernel parameters. sudo sysctl -p
Pour Rocky Linux 8, l'installation via le paquet RPM est recommandée. Une fois OpenSearch installé, l'accès à OpenSearch doit être vérifié depuis Pandora FMS. Avant d'effectuer ce test, chaque nœud ou cluster doit être configuré. Pour cette vérification de l'installation, exécutez :
curl -X GET https://< ip_opensearch >:< opensearch_port > -u 'admin:admin' --insecure
Vous devriez obtenir une réponse similaire à :
{
"name" : "hostname",
"cluster_name" : "opensearch",
"cluster_uuid" : "6XNc9m2gTUSIoKDqJit0PA",
"version" : {
"distribution" : "opensearch",
"number" : <version>,
"build_type" : <build-type>,
"build_hash" : <build-hash>,
"build_date" : <build-date>,
"build_snapshot" : false,
"lucene_version" : <lucene-version>,
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}
Par défaut, l'installation d'OpenSearch active le SSL, l'utilisateur et le mot de passe, ce qui est une bonne pratique ; il est également recommandé de changer l'utilisateur et le mot de passe par défaut.
Configuration du nœud
Le fichier de configuration /etc/opensearch/opensearch.yml doit d'abord être modifié, puis le service OpenSearch sera redémarré.
Ce fichier contient la configuration de tous les paramètres du service OpenSearch ; consultez la documentation officielle pour plus d'informations :
https://opensearch.org/docs/latest/install-and-configure/configuration/
Configurations minimales nécessaires pour démarrer le service et son utilisation avec Pandora FMS.
- Numéro de port.
# ---------------------------------- Network # Set the bind address to a specific IP (IPv4 or IPv6): network.host: 0.0.0.0 # Set a custom port for HTTP: http.port: 9200 # For more information, consult the network module documentation.
- Emplacement des données stockées et des logs :
# ----------------------------------- Paths # Path to directory where to store the data (separate multiple locations by comma): path.data: /var/lib/opensearch # Path to log files: path.logs: /var/log/opensearch
Il sera également nécessaire de décommenter et de définir les lignes suivantes :
cluster.name: pandorafms
node.name: ${HOSTNAME}
network.host: 0.0.0.0
cluster.name: Ce sera le nom attribué au groupe ou cluster.node.name: Pour nommer le nœud en utilisant la variable système${HOSTNAME}, celle-ci prendra automatiquement le nom de l'hôte.- Pour
network.host, la valeur0.0.0.0permet à OpenSearch d'« écouter » sur toutes les interfaces réseau (NIC) ; pour utiliser une NIC spécifique, placez une valeur correspondante spécifique.
Si vous travaillez avec un seul nœud, la ligne permettant le démarrage en single node doit être ajoutée au fichier de configuration :
discovery.type: single-node
En cas de travail avec un cluster, vous devez compléter le paramètre discovery.seed_hosts :
discover.seed_hosts : ["ip:port", "ip", "ip"]
Dans les versions les plus récentes d'OpenSearch, la gestion de la mémoire de la machine virtuelle Java® se fait automatiquement et il est recommandé de la laisser ainsi dans les environnements de production, il est donc inutile de modifier les valeurs de la JVM.
Pour démarrer OpenSearch, exécutez :
systemctl start opensearch.service
Pour redémarrer, utilisez restart, pour arrêter stop et status pour consulter l'état.
Si le service ne démarre pas, vérifiez les logs situés dans /var/log/opensearch/ (dans ce cas, le fichier pandorafms.log ou le nom donné au nœud).
N'oubliez pas que pour vérifier l'installation et le fonctionnement d'OpenSearch, vous pouvez exécuter :
curl -X GET https://<node-ip> -u 'admin:admin' --insecure
Configuration d'un cluster OpenSearch
Pour la configuration d'un cluster OpenSearch, il est recommandé de suivre la documentation officielle :
https://opensearch.org/blog/optimize-opensearch-index-shard-size/
Un guide de configuration pour Pandora FMS est également proposé.
Gestion des utilisateurs OpenSearch
Pour changer le mot de passe par défaut de admin, plusieurs étapes doivent être suivies. La première consiste à exporter la variable pour utiliser le JDK de Java® installé par OpenSearch afin d'utiliser n'importe lequel des outils :
export OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk
Ensuite, pour générer le mot de passe avec hash à placer dans le fichier de configuration d'OpenSearch, le script suivant est utilisé (remplacez < password > par le mot de passe à utiliser) :
/usr/share/opensearch/plugins/opensearch-security/tools/hash.sh -p <password>
Par exemple :
Ensuite, vous devez ouvrir le fichier /etc/opensearch/opensearch-security/internal_users.yml avec l'éditeur de texte vim ou nano pour modifier le mot de passe de l'utilisateur ou des utilisateurs requis.
Il est recommandé de ne laisser que l'utilisateur admin pour l'utilisation avec Pandora FMS ; il est inutile de conserver tout autre utilisateur.
Fichier d'exemple :
Pour que les changements prennent effet, exécutez :
cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/root-ca.pem -cert /etc/opensearch/kirk.pem -key /etc/opensearch/kirk-key.pem -icl -nhnv-t internalusers -icl -nhnv -cacert /etc/opensearch/root-ca.pem -cert /etc/opensearch/kirk.pem -key /etc/opensearch/kirk-key.pem
Un message final « Done with success » doit s'afficher ; pour vérifier le nouveau mot de passe (en suivant l'exemple précédent avec « pandora » utilisé) :
Pour plus d'informations sur la gestion des utilisateurs dans OpenSearch :
* https://opensearch.org/docs/latest/security/configuration/yaml/ * https://opensearch.org/docs/latest/security/access-control/users-roles/#create-users
Configuration de Pandora FMS avec OpenSearch
Pour configurer Pandora FMS avec OpenSearch, consultez le sujet « Collecte et supervision des logs ».
Modèles de données et modèles (templates)
Avant de mettre en production un environnement, qu'il s'agisse d'un seul nœud ou d'un cluster de données, il est recommandé d'appliquer les configurations correspondantes à ce nœud ou cluster en fonction de son utilisation. Dans le cas des index générés par Pandora FMS, le moyen le plus efficace de les créer est de définir un modèle (template) pour définir la configuration des champs et des données stockées.
Les templates sont des configurations qui ne s'appliquent qu'au moment de la création de l'index. Modifier un template n'aura aucun impact sur les index déjà existants.
Pour créer un template de base, il suffit de définir les champs suivants :
curl -X PUT -ku 'admin:admin' https://<node_ip>:9200/_index_template/pandorafms -H 'Content-Type: application/json' -d'
{
"index_patterns": [
"pandorafms*"
],
"template": {
"aliases": {
"pandorafms_logs": {}
},
"settings": {
"number_of_shards": 1,
"auto_expand_replicas" : "0-1",
"number_of_replicas": "0"
},
"mappings" : {
"properties" : {
"agent_id" : {
"type" : "long"
},
"group_id" : {
"type" : "long"
},
"group_name" : {
"type" : "text"
},
"logcontent" : {
"type" : "text"
},
"source_id" : {
"type" : "text"
},
"suid" : {
"type" : "text"
},
"type" : {
"type" : "text"
},
"utimestamp" : {
"type" : "long"
},
"@timestamp": {
"type": "date"
}
}
}
}
}
'
Via l'interface de Pandora FMS (menu), vous pourrez télécharger ledit template :
- PUT _template/<nom_du_template> : dans cet exemple
PUT _template/pandorafms.
Vous pourrez également consulter les templates via la même interface de Pandora FMS :
- GET _template/<nom_du_template> : dans cet exemple
GET _template/pandorafms.
Templates multi-nœuds
Pour définir un template multi-nœuds, vous devez tenir compte des informations suivantes :
- Lorsque vous effectuez la configuration du template (format JSON), vous devez configurer autant de shards que vous avez de nœuds ; cependant, pour configurer correctement les répliques, vous devez soustraire 1 au nombre de nœuds de l'environnement.
Par exemple, dans un environnement Pandora FMS avec 3 nœuds configurés, lorsque vous modifiez les champs number_of_shards et number_of_replicas, cela devrait se présenter comme suit :
{
"index_patterns": ["pandorafms*"],
"settings": {
"number_of_shards": 3,
"auto_expand_replicas" : "0-1",
"number_of_replicas" : "2"
},
Depuis la ligne de commande, vous pouvez lister les templates de l'environnement en exécutant :
curl -X GET "localhost:9200/_cat/templates/*?v=true&s=name&pretty"
Vous pouvez également voir les détails d'un template, par exemple celui créé pour pandorafms, en exécutant :
curl -X GET "localhost:9200/_template/pandorafms*?pretty"
lequel renverra la configuration définie au format JSON.
Vous pouvez effectuer ces opérations via l'interface de Pandora FMS :
- PUT _template/<nom_du_template> {json_data} : permet de saisir les données du template à créer.
- GET _template/><nom_du_template> : permet de visualiser le template créé.
Pour configurer Pandora FMS avec OpenSearch, consultez « Collecte et surveillance des logs ».
Conditions requises pour l'installation du SIEM
Pour pouvoir utiliser la fonctionnalité SIEM de Pandora FMS, les étapes supplémentaires suivantes sont requises :
- Il est nécessaire d'avoir au moins une base de données OpenSearch sur une instance (serveur) supplémentaire dédiée.
- Il est nécessaire d'avoir activé la collecte de logs.
- Au minimum, le serveur OpenSearch doit disposer de 4 cœurs, 8 Go de RAM et 100 Go de disque SSD haute vitesse.
- Recommandé pour de meilleures performances : Déployez une instance (serveur) dédiée pour le serveur SIEM events.
- Une licence avec la fonctionnalité SIEM activée.
De plus, le SIEM Events et le SIEM Server doivent être activés depuis la Console web.


