Le protocole Tentacle est utilisé par Pandora FMS pour la transmission d’informations. Il s’agit d’un protocole de transport de fichiers léger que Pandora FMS utilise principalement pour envoyer des informations depuis des agents et des serveurs satellites vers le serveur principal de Pandora. Il est polyvalent, sécurisé, multi-plateforme et facile à utiliser, conçu pour être utilisé en ligne de commande et sans avoir besoin de fichiers de configuration supplémentaires.
L’opération consiste en un système client-serveur, dans lequel le client est toujours celui qui initie la communication.
La communication peut être sécurisée par un mot de passe, des certificats SSL ou même les deux.
Voyons les différentes possibilités d’utilisation qu’offre Tentacle, et des exemples de tests manuels en ligne de commande.
Plus tard, nous expliquerons comment configurer le serveur avec les options que nous voulons automatiser son fonctionnement, et comment modifier ces paramètres du côté client pour que les agents de Pandora utilisent les options souhaitées lorsqu’ils utilisent le tentacle_client
pour envoyer des fichiers au serveur.
Utilisation de la ligne de commande
Nous supposons que nous avons les composants nécessaires installés, et les binaires dans /usr/bin
.
Pour des raisons de sécurité, tentacle_server
ne peut pas être exécuté avec l’utilisateur root, nous pouvons utiliser l’utilisateur pandora
ou en créer un pour effectuer les tests.
Nous commençons par lever tentacle_server
en indiquant le répertoire d’entrée où les fichiers reçus seront stockés. Il est important de prendre en compte les permissions sur le répertoire indiqué pour l’utilisateur qui exécute tentacle_server.
tentacle_server -s /tmp
Nous aurons déjà levé le serveur tentacule dans son port par défaut, 41121
. Nous pouvons le vérifier en lançant nmap -p 41121 127.0.0.1
pour voir que le port 41121
est à l’écoute.
Si nous devons modifier le port d’écoute du tentacule, par exemple pour récupérer plusieurs instances en même temps, nous pouvons utiliser le paramètre -p
.
Nous pouvons afficher l’aide de tentacle_server avec perldoc -F /usr/bin/tentacle_server
pour des informations détaillées sur son utilisation et ses paramètres.
tentacle_server -s /tmp -p 41122
Et une fois de plus, nous pouvons vérifier si cela fonctionne correctement en lançant nmap par rapport à l’IP adresse et au port souhaités, dans ce cas nmap -p 41122 127.0.0.1
“.
Une fois que tentacle_server
est en marche et à l’écoute, nous pouvons envoyer un fichier depuis le client. Pour ce faire, il suffit de lancer la commande suivante :
tentacle_client -a 192.168.1.10 -v /tmp/test.txt
Avec -a nous indiquons l’IP du serveur auquel nous allons envoyer le fichier, avec -v
nous activons la verbosité pour qu’elle nous montre les messages des étapes effectuées, et enfin nous indiquons le fichier à envoyer.
Nous pouvons afficher l’aide de tentacle_client avec perldoc -F /usr/bin/tentacle_client
pour obtenir des informations détaillées sur son utilisation et ses paramètres.
Éventuelles défaillances dans l’envoi :
tentacle_server
est sur un autre port. Vérifiez avec nmap, et utilisez l’option -p du client pour choisir le bon port.- Connectivité via les ports requis limitée par le pare-feu.
- Le fichier à envoyer se trouve déjà sur la machine du serveur.
- Le fichier à envoyer est trop lourd. Changez le poids maximum dans
tentacle_server
avec-m
.
Nous voyons ensuite les différentes options que tentacle présente pour son utilisation avec les options de sécurité, et des exemples d’utilisation.
- Utiliser tentacle comme proxy pour la transmission de fichiers. Options
-b
et-g
.
tentacle_server -b ip_server -g 41121
- Transfert simple d’un fichier limité à une taille maximale de 1 MByte et déposé sur
/tmp
.
tentacle_server -m 1048576 -s /tmp -v tentacle_client -a 192.168.1.1 -v /home/user/myfile.dat
- Transfert simple sur le port 65000 avec mode d’écrasement activé.
tentacle_server -o -p 65000 -s /tmp -v tentacle_client -a 192.168.1.1 -p 65000 -v /home/user/myfile.dat
- Transfert simple avec authentification par mot de passe
tentacle_server -x mot de passe -s /tmp -v tentacle_client -a 192.168.1.1 -x password -v /home/user/myfile.dat
- Transfert sécurisé, pas de certificat de client.
tentacle_server -e cert.pem -k key.pem -w -s /tmp -v tentacle_client -a 192.168.1.1 -c -v /home/user/myfile.dat
- Transfert sécurisé avec certificat du client.
tentacle_server -e cert.pem -k key.pem -f cacert.pem -w -s /tmp -v tentacle_client -a 192.168.1.1 -e cert.pem -k key.pem -v /home/user/myfile.dat
- Transfert sécurisé avec certificat du client et authentification par mot de passe supplémentaire.
tentacle_server -x mot de passe -e cert.pem -k clé.pem -f cacert.pem -w -s /tmp -v tentacle_client -a 192.168.1.1 -x password -e cert.pem -k key.pem -v /home/user/myfile.dat
Configuration du serveur
Une fois les tests de fonctionnement manuel réussis, nous pouvons automatiser les paramètres utilisés afin qu’ils démarrent automatiquement avec le service Tentacle
Ces modifications de configuration doivent être effectuées dans le script de démarrage du tentacle_serverd
, généralement situé dans /etc/init.d/tentacle_serverd
, et les paramètres importants sont
PANDORA_SERVER_PATH
, le répertoire d’entrée. Equivalent à l’option-s
.TENTACLE_PORT
, par défaut41121
, équivalent à l’option-p
. Très important si l’on veut faire monter plus d’une instance de tentacle_server, car il faudra indiquer un port différent de41121
s’il est déjà utilisé.TENTACLE_EXT_OPTS
, pour toutes les options supplémentaires que nous voulons utiliser. Les options de sécurité telles que le mot de passe, les certificats ou le poids maximum du fichier iront dans cette ligne.
Il est recommandé de faire des tests manuels avant d’apporter des modifications permanentes à la configuration du Tentacle pour voir si elles fonctionnent correctement. Par exemple, dans une configuration sécurisée avec des certificats et un agent proxy (notez que vous devez toujours écrire le chemin complet des certificats pour que cela fonctionne) :
- Le service est levé manuellement.
sudo -u user tentacle_server -x password -e /path/tentaclecert.pem -k /path/tentaclekey.pem -f cacert.pem -s /tmp -v
- Le mandataire est levé manuellement (cette étape n’est nécessaire que si l’on veut en utiliser un)
sudo -u user tentacle_server -b ip_server -g 41124
- Enfin,
tentacle_client
est lancé manuellement :
sudo -u utilisateur tentacle_client -a ip_proxy/ip_server -x mot de passe -e /chemin/tentaclecert.pem -k /chemin/tentaclekey.pem -v /bin/ls #(ou tout autre fichier que vous voulez)
Si le fichier est envoyé correctement, nous pouvons procéder à la configuration permanente du tentacle_server
et des clients.
Configuration du client
Pour automatiser la communication avec des options spécifiques du client, il est nécessaire d’effectuer les modifications dans le fichier de configuration des agents Pandora, pandora_agent.conf
. Nous devons localiser la ligne server_opts
, la décommenter et utiliser les paramètres nécessaires. Exemple :
server_opts -p 41122 -x mot de passe
Certains des paramètres seront utilisés automatiquement en fonction de la configuration de l’agent (spécifiée dans le fichier pandora_agent.conf). Il s’agit de l’adresse IP du serveur, équivalente à -a, ou du fichier à envoyer, qui sera le .data généré par l’agent avec les informations recueillies lors de la surveillance.
Lorsque notre configuration et utilisation de Tentacle avec Pandora FMS n’est pas celle par défaut, nous devons préalablement effectuer tous les tests manuels en ligne de commande pour nous assurer que nous faisons une utilisation correcte des options et écarter les éventuelles défaillances. De la même manière, si quelque chose échoue, nous devons faire des tests manuels pour voir où se trouve l’échec.
Voir aussi:
https://pandorafms.com/manual/fr/documentation/08_technical_reference/09_tentacle