unistra / python-glpi-api

Python module for interacting with GLPI using the API.
GNU General Public License v3.0
18 stars 10 forks source link

Mauvaise adresse IP #16

Closed judzk closed 1 year ago

judzk commented 1 year ago

Hello, j'ai un petit soucis, lorsque je suis en VPN. Nous avons autorisé les adresses IP en 10.3.X.X sur l'API de GLPI.

import socket
hostname = socket. gethostname()
IPAddr=socket.gethostbyname(hostname)

Me retourne bien l'IP en 10.3, par contre lorsque je veux m'authentifier, j'ai un message d'erreur : (ERROR_NOT_ALLOWED_IP) Il n'y a aucun client de l'API dans la configuration qui vérifie votre adresse IP (193.X.X.X.X)

193.X.X.X étant l'adresse de mon VPN. Est il possible de forcer l'utilisation de l'IP de la machine? Cordialement

fmenabe commented 1 year ago

C'est le principe du VPN, (tout) le traffic est tunnelé et passe par le serveur VPN. Ça se fait au niveau de système par le client VPN de manière transparent donc côté Python, c'est normal de voir l'IP en 10.3.X.X mais que le traffic arrive à GLPI par l'IP du VPN. Du côté de cette lib, je ne pense pas qu'il soit possible de faire quoi que ce soit!

Une recherche (très) rapide par rapport à ce problème me remonte le terme split tunneling. En fonction du client VPN, il est peut-être possible de faire de la configuration pour n'envoyer que certains traffic (réseaux) par le VPN . Ou avec un peu de chance, comme au final c'est qu'une histoire de route sur le système, il est peut-être juste possible d'ajouter une route spécifique avec quelque chose comme ça (sous Linux, sans garantie):

ip route add <GLPI_ADDR> via <LOCAL_GATEWAY> (ex: ip route add 172.16.1.33/32 via 10.3.0.1172.16.1.33/32 correspond à l'addresse IP du serveur GLPI et 10.3.0.1 à la passerelle locale)

En Python, je suis tombé sur vpn-slice mais ça semble utilisable seulement avec des clients VPN (openconnect et vpnc), donc pas sur que ce soit incorporable dans un programme utilisant ensuite l'API GLPI.

judzk commented 1 year ago

Merci de cette réponse complète et rapide. Mais je pense qu'au final le soucis est peut être de notre coté. Nous étions en GLPI 9.5.4, et j'arrivais à attaquer l'API en VPN via powershell sans aucun soucis. J'ai testé cette lib python hier, APRES le passage à GLPI 9.5.11 et j'ai l'erreur sur python, mais aussi sur powershell maintenant. Je continue a investiguer ;) Désolé du temps perdu