Topic: SSL et agent

Bonjour,

Je suis en train de m'arracher les cheveux depuis plusieurs jours.

Pour commencer et si j'ai bien compris, la valeur "no-ssl-check" permet simplement de vérifier que le serveur avec lequel l'agent discute est le bon ? Ou bien est ce obligatoire pour forcer les inventaires à être envoyés de manière sécurisée ?

Je dois installer l'agent sur 50 sites, qui n'ont aucun lien avec mon site principal. Les requêtes seront donc envoyées sur une adresse publique, avec un serveur en DMZ.

J'ai un serveur GLPI en version 9.1.7 couplé à fusioninventory en 9.1+1, installé sur un Linux.
L'url d'accès au serveur se fait en ht*ps et les requêtes ht*p sont redirigées sur le ht*ps également.

J'ai récupéré toute la chaîne de certificats au format .pem et .crt via Firefox et les ai enregistré dans un dossier sur mon pc.

Lorsque dans le navigateur, je tape ht*ps://monserveur/plugins/fusioninventory/, j'accède bien au serveur GLPI avec l'erreur "Vous n'avez pas les droits requis pour réaliser cette action." (logique)

Quand j'installe un client sur un poste :

- Si je mets le no-ssl-check à 1, la remontée de l'inventaire se fait sans problème.
- Si je mets le no-ssl-check à 0 et sans rien indiquer dans ca-cert-file ou ca-cert-dir, ça fonctionne.
- Si je mets le no-ssl-check à 0 et en indiquant le chemin dans ca-cert-file ou ca-cert-dir, ça ne fonctionne pas.

Voici l'erreur générée par le client Windows

[Wed Feb 28 13:37:41 2018][debug] Configuration directory: C:\Program Files\FusionInventory-Agent\etc
[Wed Feb 28 13:37:41 2018][debug] Data directory: C:\Program Files\FusionInventory-Agent/share
[Wed Feb 28 13:37:41 2018][debug] Storage directory: C:\Program Files\FusionInventory-Agent/var
[Wed Feb 28 13:37:41 2018][debug] Lib directory: C:\Program Files\FusionInventory-Agent/perl/agent
[Wed Feb 28 13:37:41 2018][debug] [target server0] Next server contact planned for Wed Feb 28 14:27:16 2018
[Wed Feb 28 13:37:41 2018][debug2] getAvailableTasks() : add of task Inventory version 1.4
[Wed Feb 28 13:37:41 2018][debug2] getAvailableTasks() : add of task WMI version 0.3
[Wed Feb 28 13:37:41 2018][debug2] isParamArrayAndFilled('tasks') : false
[Wed Feb 28 13:37:41 2018][debug] Available tasks:
[Wed Feb 28 13:37:41 2018][debug] - WMI: 0.3
[Wed Feb 28 13:37:41 2018][debug] - Inventory: 1.4
[Wed Feb 28 13:37:41 2018][debug] Planned tasks:
[Wed Feb 28 13:37:41 2018][debug] - WMI: 0.3
[Wed Feb 28 13:37:41 2018][debug] - Inventory: 1.4
[Wed Feb 28 13:37:41 2018][debug] Provided by Fusioninventory
[Wed Feb 28 13:37:41 2018][debug] Installer built with Appveyor on Fri Dec 29 13:28:19 UTC 2017
[Wed Feb 28 13:37:42 2018][debug] Running in foreground mode
[Wed Feb 28 13:37:42 2018][debug] [ht*p client] Using Compress::Zlib for compression
[Wed Feb 28 13:37:42 2018][info] sending prolog request to server server0
[Wed Feb 28 13:37:42 2018][debug2] [ht*p client] sending message:
 <?xml version="1.0" encoding="UTF-8" ?>
<REQUEST>
  <DEVICEID>TAB01-2018-02-27-15-47-11</DEVICEID>
  <QUERY>PROLOG</QUERY>
  <TOKEN>12345678</TOKEN>
</REQUEST>
[Wed Feb 28 13:37:50 2018][error] [ht*p client] communication error: 500 Can't connect to monserveur:443
[Wed Feb 28 13:37:50 2018][error] No answer from server at ht*ps://monserveur/plugins/fusioninventory/

Ce topic ci : ht*p://forum.fusioninventory.org/viewtopic.php?id=3257 semble rejoindre mon problème. Si je comprends bien la solution proposée en anglais, il faut que je fasse une redirection dans mon serveur apache des requêtes "monserveur/plugins/fusioninventory" vers "ht*ps://monserveur/plugins/fusioninventory" ?

Les logs sur le serveur ne me remontent rien. Et je n'ai pas de pare-feux actif sur ce serveur.

Re: SSL et agent

Salut C.G.

l'option "no-ssl-check" sert à désactiver les contrôles SSL dans le cas où tu utilises un certificat signé par une autorité non public (genre certificat auto-signé ou certif fourni par une PKI privée d'entreprise).

Si tu es en mesure d'installer le certificat autorité avec l'agent, tu n'as pas besoin de l'option et c'est ainsi plus sûr.

N'utilise que l'une des 2 options ca-cert-file ou ca-cert-dir et quand tu as un seul certificat autorité, utilise simplement l'option ca-cert-file car la ca-cert-dir impose que tu donnes un nom spécifique au certificat.

Remarque, si le certificat de ton serveur est signé par une autorité publique (comme nous le suggère le fait que ça semble fonctionner avec no-ssl-check à zéro sans les autres options), tu n'as tout simplement pas besoin de configurer ca-cert-file ou ca-cert-dir...

3 (edited by C.G. 2018-03-01 17:59:13)

Re: SSL et agent

Bonsoir Gbougard,

Merci pour la réponse rapide. smile

Oui, j'ai noté que l'on ne pouvait mettre qu'une des deux options ca-cert-file ou ca-cert-dir, en exécutant le .bat de l'agent avec un pause derrière. D'ailleurs, au début, je mettais les deux options et je ne comprenais pas pourquoi mon agent, lors de l'inventaire forcé, refusait de me créer même le tout petit log. Ca m'a fait tilt ensuite en essayant l'une et l'autre options séparément, après avoir tâtonné.

Remarque, si le certificat de ton serveur est signé par une autorité publique (comme nous le suggère le fait que ça semble fonctionner avec no-ssl-check à zéro sans les autres options), tu n'as tout simplement pas besoin de configurer ca-cert-file ou ca-cert-dir...

Merci pour la confirmation, je m'en suis doutée au moment où j'écrivais mon post décrivant mon problème mais je voulais en être sûre. Effectivement, le certificat vient de KOMODO RSA Certification Authority. smile

Du coup c'est cool, je vais pouvoir lancer mon test grandeur nature sur un premier site avant de déployer les autres. wink

Par contre, autre question, comment sait-on si l'agent communique de manière sécurisée ou non dans les logs ? C'est systématique ? Désolée si la question paraît bête, mais c'est encore un chouilla nébuleux pour moi ^^.

Bonne soirée.

Re: SSL et agent

Si ton URL configurée au niveau de l'agent est en https, l'agent fera ses requêtes en SSL, et ne tentera jamais de basculer sur du non-SSL de lui même.

Il y a un seul cas à ma connaissance où l'agent pourrait revenir par la suite sur du http non sécurisé. C'est si côté serveur tu as configuré une URL différente pour FusionInventory dans la configuration d'une entité ou sous-entité spécifique. Dans ce cas, le premier accès pourrait être en SSL et les requêtes suivantes qui viennent pour chaque tâche à exécuter pourraient être faite avec une URL différente et peut dans ce cas ne pas être en SSL. Pour faire çà, il faut tout de même bien savoir ce qu'on fait.

Si tu actives le debug de niveau 2 côté agent, tu verras aussi des informations de débogage de la couche OpenSSL. Dans ce cas, tu peux valider avec certitude que tous les échanges sont bien faits en SSL.

Re: SSL et agent

Super, merci !