« LINUX:Wazuh-API » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(9 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 25 : | Ligne 25 : | ||
Dans un autre article, nous installerons l'interface utilisateur Web (WUI) sur la même machine que celle où Wazuh Manager s'exécute. Et donc, par sécurité, nous allons limiter l'écoute réseau à la machine locale. Pour cette raison, nous allons ajouter, en début du fichier de configuration, la ligne suivante: | Dans un autre article, nous installerons l'interface utilisateur Web (WUI) sur la même machine que celle où Wazuh Manager s'exécute. Et donc, par sécurité, nous allons limiter l'écoute réseau à la machine locale. Pour cette raison, nous allons ajouter, en début du fichier de configuration, la ligne suivante: | ||
---- | ---- | ||
host: 127.0.0.1 | host: ['127.0.0.1'] | ||
---- | ---- | ||
Après redémarrage du service | ''Attention:'' La syntaxe a changé en octobre 2024; il faut maintenant l'encadrer de crochets, une écriture de type matrice (array) sinon le service Wazuh-manager ne démarre pas. | ||
Après redémarrage du service wazuh-manager.service, la commande émise ci-dessus: | |||
netstat -ntl | netstat -ntl | ||
donne maintenant: | donne maintenant: | ||
Ligne 39 : | Ligne 41 : | ||
=Noms des utilisateurs d'accès à Wazuh= | =Noms des utilisateurs d'accès à Wazuh= | ||
A l'installation de Wazuh Manager, l'utilisateur "wazuh" est créé avec comme mot de passe "wazuh". Ce mot de passe est loin d'être sécurisé. Par la suite, nous verrons comment changer ce mot de passe. | |||
Avec l'interface utilisateur Web, le paquet "wazuh-dashboard" utilise l'API et dans ce cadre, un utilisateur nommé "wazuh-wui" est créé avec le mot de passe "wazuh-wui". Ce mot de passe devra aussi subir le même sort. | Avec l'interface utilisateur Web, le paquet "wazuh-dashboard" utilise l'API et dans ce cadre, un utilisateur nommé "wazuh-wui" est créé avec le mot de passe "wazuh-wui". Ce mot de passe devra aussi subir le même sort. | ||
Ligne 51 : | Ligne 53 : | ||
Pour interagir avec cet interface de type HTTP, nous utiliserons l'utilitaire "curl". S'il n'est pas installé, utilisez la commande suivante: | Pour interagir avec cet interface de type HTTP, nous utiliserons l'utilitaire "curl". S'il n'est pas installé, utilisez la commande suivante: | ||
dnf install curl | dnf install curl | ||
==Jeton== | ==Jeton== | ||
Ligne 58 : | Ligne 61 : | ||
---- | ---- | ||
#!/bin/bash | #!/bin/bash | ||
TOKEN=$(curl -u wazuh:wazuh -k -X GET <nowiki>"https://localhost:55000/security/user/authenticate?raw=true"</nowiki>) | TOKEN=$(curl --silent -u wazuh:wazuh -k -X GET <nowiki>"https://localhost:55000/security/user/authenticate?raw=true"</nowiki>) | ||
---- | ---- | ||
L'option "-u" est suivie du nom d'utilisateur puis du mot de passe séparés par un double point. | L'option "-u" est suivie du nom d'utilisateur puis du mot de passe séparés par un double point. | ||
Ligne 71 : | Ligne 74 : | ||
---- | ---- | ||
#!/bin/bash | #!/bin/bash | ||
TOKEN=$(curl -u wazuh:wazuh -k -X GET <nowiki>"https://localhost:55000/security/user/authenticate?raw=true"</nowiki>) | TOKEN=$(curl --silent -u wazuh:wazuh -k -X GET <nowiki>"https://localhost:55000/security/user/authenticate?raw=true"</nowiki>) | ||
curl -k -X GET <nowiki>"https://localhost:55000/security/users" -H "Authorization: Bearer $TOKEN"</nowiki> | python -m json.tool | curl -k -X GET <nowiki>"https://localhost:55000/security/users" -H "Authorization: Bearer $TOKEN"</nowiki> | python -m json.tool | ||
---- | ---- | ||
Ligne 105 : | Ligne 108 : | ||
---- | ---- | ||
On y retrouve les deux noms d'utilisateurs cités plus haut. | On y retrouve les deux noms d'utilisateurs cités plus haut. | ||
Chaque utilisateur est lié à un "id" qui nous servira ensuite: | |||
* l'utilisateur "wazuh" a l'id 1 | |||
* l'utilisateur "wazuh-wui" a l'id 2 | |||
=Changement du mot de passe de l'utilisateur= | |||
==Utilisation de l'API== | |||
Nous allons créer un second script pour changer le mot de passe de l'utilisateur "wazuh-wui" ayant l'id 2. | |||
Le mot de passe mis est "Pw-Bidon-pour-Wazuh-Wui". | |||
Voici le script: | |||
---- | |||
#!/bin/bash | |||
TOKEN=$(curl --silent -u wazuh:wazuh -k -X GET <nowiki>"https://localhost:55000/security/user/authenticate?raw=true"</nowiki>) | |||
curl --silent -k -X PUT <nowiki>"https://localhost:55000/security/users/2" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d "{\"password\": \"Pw-Bidon-pour-Wazuh-Wui\"}"</nowiki> | python -m json.tool | |||
---- | |||
On fait de même pour l'autre utilisateur. | |||
==Utilisation d'un outil spécifique== | |||
Wazuh dispose d'un utilitaire pour effectuer cette tâche. | |||
On peut le télécharger sur le site du concepteur grâce à cette commande: | |||
curl -so wazuh-passwords-tool.sh <nowiki>https://packages.wazuh.com/4.3/wazuh-passwords-tool.sh</nowiki> | |||
Actuellement on est à la version 4.3 de Wazuh. | |||
On le rend exécutable: | |||
chmod 700 wazuh-passwords-tool.sh | |||
Si on a installé le paquet "wazuh-indexer", il se trouve dans le répertoire "/usr/share/wazuh-indexer/plugins/opensearch-security/tools". | |||
Cet utilitaire vérifie l'OS. Dans notre cas, pour les distributions sous l'égide de Red Had, c'est l'utilitaire d'installation "yum" dont la présence est testée. Or sous Fedora, depuis quelques versions, c'est l'utilitaire "dnf" qui est préféré; l'utilitaire "yum" n'est plus installé par défaut. Par conséquence, cet utilitaire est inutilisable. | |||
Pour pouvoir l'utiliser soit vous installez l'utilitaire "yum": | |||
dnf install yum | |||
soit vous changez toutes les occurrences du mot "yum" par le mot "dnf" à l'aide d'un éditeur de texte. | |||
En correspondance avec le script utilisant l'API, la commande utilisant cet utilitaire devient: | |||
./wazuh-passwords-tool.sh -A -au wazuh -ap wazuh -u wazuh -p "Pw-Bidon-pour-Wazuh-Wui" | |||
Les options: | |||
* -au suivi du nom d'utilisateur d'accès à l'API pour authentification | |||
* -ap suivi du mot de passe d'accès à l'API pour authentification | |||
* -u suivi du nom de l'utilisateur dont on veut changer le mot de passe | |||
* -p suivi du nouveau mot de passe | |||
=Configuration de Wazuh Dashboard= | |||
Il est a noter que l'application "wazuh-dashboard" que nous verrons plus tard utilise l'API via l'utilisateur "wazuh-wui". Le mot de passe de cet utilisateur est écrit dans le fichier de configuration "/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml". | |||
Au bas de ce fichier, dans la section "hosts", on adapte le mot de passe: | |||
---- | |||
hosts: | |||
- default: | |||
url: <nowiki>https://localhost</nowiki> | |||
port: 55000 | |||
username: wazuh-wui | |||
# password: wazuh-wui | |||
'''password: Pw-Bidon-pour-Wazuh-Wui''' | |||
run_as: false | |||
---- | |||
On y remarque les informations de la machine à contacter et le port de connexion pour accéder à l'API de Wazuh ainsi que le nom de l'utilisateur utilisé. | |||