C'est bien les SIEM, mais seulement, Splunk est payant…
Alors, voici, comment s'en passer avec de l'OpenSource : ELK (Elasticsearch, Logstash, Kibana). C'est un espèce de "couteau-suisse" de la sécurité informatique… Il peut faire beaucoup de choses…
• Téléchargez ELK :
https://www.elastic.co/downloads/
https://www.elastic.co/downloads/elasticsearch
https://www.elastic.co/downloads/logstash
https://www.elastic.co/downloads/kibana
Décompresser, pas sur C:\ , de préférence. Pour ce tuto, j'ai choisi le disque D:\
• Et java (jre):
https://www.oracle.com/java/technologie ... 25-windows
• Édite ton fichier "elasticsearch.yml" (dans D:\ELK\elasticsearch-9.0.3\config\) et ajoute :
Code : Tout sélectionner
# --- Cluster (un seul nœud) ---
cluster.name: elk-cluster
node.name: node-1
discovery.type: single-node
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: D:/ELK/elasticsearch-9.0.3/data
#
# Path to log files:
#
path.logs: D:/ELK/elasticsearch-9.0.3/logs
#
# --- Réseau ---
network.host: 0.0.0.0 # ou ton IP locale
http.port: 9200
# --- Sécurité ---
xpack.security.enabled: false # pour l'instant on désactive la sécurité TLS, on l'activera plus tard.
• Modifier la taille de la RAM dédiée à java :
• Ouvrir "D:\ELK\elasticsearch-9.0.3\config\jvm.options", et écrire à l'intérieur :
• Allez dans le dossier D:\ELK\elasticsearch-9.0.3\bin ,et exécutez, en ligne de commande (PowerShell ou Invite de Commande CMD):
○
• Attendez qu'elasticsearch se lance complètement (un peu long parfois…)
• Si tout s'est bien passé, il vous rend pas la main, il continue à tourner, il ne revient pas donc à l'interpréteur de commande "D:\" :
• Lances une nouvelle ligne de commandes PowerShell, puis saisissez "curl
http://localhost:9200 " ou "Invoke-RestMethod ttp://localhost:9200 " (pour PowerShelll 7+)
• Vous devez obtenir quelque chose comme ceci :

- 2.png (68.92 Kio) Vu 3447 fois
• Si tout est correct, tu peux installer Elasticsearch comme service Windows (via elasticsearch-service.bat install) afin qu’il démarre automatiquement au boot de Windows. (je le fais pas pour l'instant.)
• Occupons-nous maintenant de l'affichage. Il faut lancer (de la même manière) le module Kibana, qui est le module d'ELK qui permet d'afficher tous les logs récoltés par elasticsearch, et ce, dans une page web, dans votre explorateur internet.
• Allez dans le dossier D:\ELK\kibana-9.0.3\bin ,et exécutez, en ligne de commande (PowerShell ou Invite de Commande CMD):
○
• Attendez que kibana se lance complètement (un peu long parfois…)
• Idem, si tout s'est bien passé, il vous rend pas la main, il continue à tourner, il ne revient pas donc à l'interpréteur de commande "D:\" :
• Lancez un explorateur internet (Chrome, Edge, etc…), et saisissez à l'intérieur :
○
• La page suivante s'affiche :

- 1.png (52.99 Kio) Vu 3447 fois
1) Clique sur "Explore on my own"
• Rem :
○ Par défaut, si tu as désactivé la sécurité dans elasticsearch.yml (xpack.security.enabled: false), il ne te demandera pas de login.
○ Si la sécurité est activée, il faudra te connecter avec l’utilisateur elastic (on verra plus loin ceci).
• Justement, maintenant que elasticsearch et kibana fonctionnent correctement, revenons un peu en arrière, pour activer la sécurité (afin qu'on puisse s'authentifier sur la page web de kibana, pour que pas n'importe qui puisse s'y connecter)
• Désactivez les services elasticsearch et kibana ([ctrl]+[c] dans les deux fenêtres où ils sont lancés, puis "o")
• Depuis Elastic 8+, la sécurité est activée par défaut.
• D'abord, édite D:\ELK\elasticsearch-9.0.3\config\elasticsearch.yml, et ajoute/modifie ces lignes :
Code : Tout sélectionner
xpack.security.enabled: true
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false
○ Depuis D:\ELK\elasticsearch-9.0.3\bin, lancez elasticsearch :
§
○ Si tout est correct (vous n'obtenez pas d'erreur), vous pouvez générer les mots de passe. Ouvrez un autre PowerShell, puis, tapez dedans (dans le dossier D:\ELK\elasticsearch-9.0.3\bin) :
§
§ Suivez les instructions pour configurer les mots de passe, et notez-les bien tous, on en aura besoin (au moins "elastic" et "kibana_system").
○ Teste la connexion :
§
○ Remplacez "<TonMotDePasse>" par votre mot de passe de l'utilisateur elastic, et "<ton_IP_ELK>" par ton IP d'Elk. Vous devez obtenir quelque chose comme ça :

- 6.png (151.56 Kio) Vu 3447 fois
• Config kibana maintenant :
○ Editez/modifiez le fichier "D:\ELK\kibana-9.0.3\config\kibana.yml", comme suit :
Code : Tout sélectionner
# ==============================
# Kibana basic settings
# ==============================
server.host: "0.0.0.0"
server.port: 5601
# ==============================
# Elasticsearch connection
# ==============================
elasticsearch.hosts: ["http://<ton_IP_ELK>:9200"]
# Utilisateur dédié Kibana (créé automatiquement par Elastic)
elasticsearch.username: "kibana_system"
elasticsearch.password: "<TonMotDePasseIciKibana>"
i18n.locale: "fr-FR"
# ==============================
# Optional (logs)
# ==============================
logging:
appenders:
file:
type: file
fileName: D:/ELK/kibana-9.0.3/logs/kibana.log
layout:
type: json
root:
appenders: [default, file]
○ Oublie pas de modifier, en mettant tes données, dans <ton_IP_ELK> et <TonMotDePasseIciKibana>
○ REM : Si vous avez un problème de mot de passe ici, vous pouvez le réinitialiser. Tapez (dans D:\ELK\elasticsearch-9.0.3\bin) :
§
• Lance Kibana
Depuis D:\ELK\kibana-9.0.3\bin\ :
• Accède à Kibana
Ouvre ton navigateur sur
Identifie-toi avec :
• user : elastic
• mot de passe : celui défini avec elasticsearch-setup-passwords.bat
• Mettons en place le TLS :
• Générons maintenant le certificat TLS :
○ Depuis D:\ELK\elasticsearch-9.0.3\bin, lance :
§
□ Définir un mot de passe "<TonNouveauMotDePasseCA>",
□ ça te fabrique le fichier "elastic-stack-ca.p12".
□ Copie ce fichier dans D:\ELK\elasticsearch-9.0.3\config\certs\. Si ce répertoire n'est pas créé, créez le. Rem : le fichier "elastic-stack-ca.p12" se trouve un niveau plus bas, donc, dans D:\ELK\elasticsearch-9.0.3\
§ Créé le dossier D:\ELK\elasticsearch-9.0.3\temp
§ Puis :
□ Crée un fichier "instance.yml" dans D:\ELK\elasticsearch-9.0.3\temp avec ce contenu :
Code : Tout sélectionner
instances:
- name: 'node-1'
ip: ['<TonIpElastic>', '<TonIpSuricata>']
- name: 'node-2'
dns: ['node1.elastic.test.com']
§ Enregistre et ferme (REM : dans les fichers .yml, comme ce dernier, il est IMPERATIF de respecter le même nombre d'espaces donnés au début de chaque ligne).
§ puis saisis, dans D:\ELK\elasticsearch-9.0.3\bin :
□
Code : Tout sélectionner
.\elasticsearch-certutil.bat cert --ca config\certs\elastic-stack-ca.p12 --ca-pass "<TonMotDePasseCA>" --in temp\instance.yml --out temp\certs.zip --pass "<TonMotDePasseNode-1>"
□ Ça génère les certificats dans l'archive D:\ELK\elasticsearch-9.0.3\temp\certs.zip.
□ Décompresse certs.zip
□ Copie le dossier certs, avec son contenu dans D:\ELK\elasticsearch-9.0.3\config\
□ Navigue dans le dossier D:\ELK\elasticsearch-9.0.3\config\certs\node-1\ , puis tape :
®
§ Vérifier si le certificat node-1.p12 est correct :
□
Code : Tout sélectionner
D:\ELK\elasticsearch-9.0.3\jdk\bin\keytool.exe -list -v -keystore D:\ELK\elasticsearch-9.0.3\config\certs\node-1.p12 -storetype PKCS12
® À la demande, saisis <TonMotDePasseNode-1>
® Cette commande, doit retourner une description du certificat. Si elle ne retourne pas d'erreur, c'est que le certificat est bon.
® Ballade-toi alors dans le résultat, pour trouver si <TonIpElastic> et <TonIpSuricata> figurent bien dans le certificat.
® Regardez dans :
#3: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
• Pour convertir des certificats *.p12 en crt / pem (on s'en servira pour Kibana) :
○ REM : pour se servir facilement d'openssl, j'ai installé l'application "Git Bash" :
https://git-scm.com/download/win . Pour la suite, "D:\ELK\elasticsearch-9.0.3\bin" devient "/D/ELK/elasticsearch-9.0.3/bin", dans Git Bash.
1. Extraire le certificat de la CA (au format .crt)
Code : Tout sélectionner
openssl pkcs12 -in /d/ELK/elasticsearch-9.0.3/config/certs/elastic-stack-ca.p12 -clcerts -nokeys -out /d/ELK/elasticsearch-9.0.3/config/certs/elastic-stack-ca.crt
§ Saisissez le mdp du ca
2. Extraire la clé privée
Code : Tout sélectionner
openssl pkcs12 -in /d/ELK/elasticsearch-9.0.3/config/certs/node-1.p12 -nocerts -nodes -out /d/ELK/elasticsearch-9.0.3/config/certs/node-1.key
§ Saisissez le mdp node-1
3. Extraire le certificat du nœud
Code : Tout sélectionner
openssl pkcs12 -in /d/ELK/elasticsearch-9.0.3/config/certs/node-1.p12 -clcerts -nokeys -out /d/ELK/elasticsearch-9.0.3/config/certs/node-1.crt
§ Saisissez le mdp node-1
• Passons maintenant à la sécurité maximale (HTTPS://)
○ Ouvre à nouveau D:\ELK\elasticsearch-9.0.3\config\elasticsearch.yml, et ajoute/modifie ces lignes, à la fin du fichier :
Code : Tout sélectionner
# --- Security ---
xpack.security.enabled: true
# TLS pour transport (entre nœuds)
xpack.security.transport.ssl.enabled: true
xpack.security.enrollment.enabled: true
#xpack.security.enrollment.enabled: true
# --- Monitoring (optionnel) ---
# xpack.monitoring.collection.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/node-1.p12
xpack.security.transport.ssl.keystore.password: "<TonMotDePasseNode-1>"
xpack.security.transport.ssl.truststore.path: certs/node-1.p12
xpack.security.transport.ssl.truststore.password: "<TonMotDePasseNode-1>"
# TLS pour HTTP (clients comme Kibana)
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/node-1.p12
xpack.security.http.ssl.keystore.password: "<TonMotDePasseNode-1>"
xpack.security.http.ssl.truststore.path: certs/node-1.p12
xpack.security.http.ssl.truststore.password: "<TonMotDePasseNode-1>"
• Enregistrez et quittez.
• Lancez .\elasticsearch.bat
• Tout doit être correct, pour l'instant.
Configurons maintenant Kibana :
• Dans le répertoire D:\ELK\kibana-9.0.3\bin , saisissez :
○
○ Copiez les 3 clés donnés, en dessous de "Settings:" (c'est tout à la fin). :

- 5.png (17.63 Kio) Vu 3447 fois
○ Et collez les dans le fichier D:\ELK\kibana-9.0.3\config\kibana.yml (au milieu du fichier). Recherchez le texte "# =================== System: Logging ===================" et placez les juste avant.
• Ajoutez/modifier également ces lignes, à D:\ELK\kibana-9.0.3\config\kibana.yml :
Code : Tout sélectionner
# =================== System: Kibana Server (Optional) ===================
# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
#server.ssl.enabled: false
#server.ssl.certificate: /path/to/your/server.crt
#server.ssl.key: /path/to/your/server.key
server.ssl.enabled: true
server.ssl.certificate: D:/ELK/elasticsearch-9.0.3/config/certs/node-1.crt
server.ssl.key: D:/ELK/elasticsearch-9.0.3/config/certs/node-1.key
# =================== System: Elasticsearch ===================
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["https://<TonIpElastic>:9200"]
# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
elasticsearch.username: "kibana_system"
elasticsearch.password: "<TonMotDePasseKibana_system>"
…
# =================== System: Elasticsearch (Optional) ===================
# These files are used to verify the identity of Kibana to Elasticsearch and are required when
# xpack.security.http.ssl.client_authentication in Elasticsearch is set to required.
elasticsearch.ssl.certificate: D:/ELK/elasticsearch-9.0.3/config/certs/node-1.crt
elasticsearch.ssl.key: D:/ELK/elasticsearch-9.0.3/config/certs/node-1.key
# Enables you to specify a path to the PEM file for the certificate
# authority for your Elasticsearch instance.
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]
elasticsearch.ssl.certificateAuthorities: ["D:/ELK/elasticsearch-9.0.3/config/certs/elastic-stack-ca.crt"]
• Sauvegardez en fermez le.
• Maintenant, lancez kibana (dans le dossier D:\ELK\kibana-9.0.3\bin) :
○
• Attendez qu'il se lance complètement, puis ouvrez un borowzer internet (Google Chrome, Edge, Firefox, etc… )
• Saisissez l'adresse dedans :
○
○ ou :
○
○ (ne vous inquiétez si le certificat n'est pas valide, il l'est, c'est juste que votre browzer internet ne connait pas le CA)
• Vous devez obtenir ceci :

- 4.png (10.95 Kio) Vu 3447 fois
• Authentifiez-vous avec le compte "elastic" et le mot de passe que vous avez définis.

- 3.png (19.06 Kio) Vu 3447 fois
Voilà, fini pour ce tuto, je trouve qu'il y a beaucoup de choses à faire déjà, alors, la suite dans un autre tuto.
Sources : ChatGPT et
https://www.ibm.com/docs/fr/datacap/9.1 ... -elk-stack