Traitement des incidents de connexion Hyper-V
Traitez et analysez les incidents de connexion entre Microsoft Hyper- V et BigFix Inventory. Analysez les solutions répertoriées pour résoudre les incidents de connexion.
Glossaire
La connexion entre BigFix Inventory et Hyper-V est établie via des requêtes WMI (Windows Management Instrumentation). Ces requêtes utilisent PowerShell avec le mécanisme DCé-RPC ou WinRM qui utilise SOAP ou XML sur HTTP. Le client BigFix Inventory communique avec l'hôte Hyper-V via l'interface du gestionnaire de machine virtuelle, VM Manager Tool. La liste suivante décrit les composants de base de l'environnement virtuel :- Serveur
- Hôte Hyper-V où se trouve le service WinRM.
- Client
- L'hôte BigFix Inventory peut être un système Windows ou Unix.
L'authentification de client sur les deux systèmes Windows et Unix utilise la même séquence d'authentification : authentification NTLM, NTLMV2, ou de base HTTP. Les membres de domaine Windows sont soumis à l'authentification réseau Kerberos lorsque vous utilisez PowerShell comme interface de communication.
Identification et résolution des problèmes liés à plusieurs connexions au gestionnaire de machine virtuelle Hyper-V
Lorsqu'il y a de nombreuses connexions au gestionnaire de machine virtuelle Hyper-V qui sont configurées avec l'interface WinRM, l'outil VM Manager Tool risque de ne pas pouvoir établir les connexions simultanément dans plusieurs unités d'exécution. Dans ce cas, vous devez affecter la valeur 1 au paramètre vmm_thread_pool_size pour réduire le nombre d'unités d'exécution de connexion. Vous pouvez également envisager d'ajouter des outils VM Manager Tool supplémentaires pour répartir la charge entre eux.
Traitement manuel des incidents liés à Hyper-V
hyperv_precheck.wsf n'est pas parvenu à diagnostiquer de manière satisfaisante les problèmes liés à Hyper-V, corrigez le problème manuellement.- Vérifiez si le service WinRm est en cours d'exécution. Exécutez la commande suivante à partir de l'invite de commande :
Les résultats de la requête doivent inclure les informations suivantes :sc query WinRMSERVICE_NAME: WinRM STATE : 4 RUNNINGRemarque : Le Contrôle de compte d'utilisateur (UAC) Windows peut affecter l'accès utilisateur au service WinRM. Si vous utilisez le schéma d'authentification Negotiate, seul le compte Administrateur peut accéder au service. Pour permettre à tous les comptes d'accéder au service, définissez la valeur de registre suivante :HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ LocalAccountTokenFilterPolicy to '1' - Vérifiez les propriétés de configuration WinRM à l'aide de l'invite de commande :
- Exécutez les commandes suivantes sur le serveur Hyper-V :
winrm get winrm/config/servicewinrm enumerate winrm/config/listener
- Exécutez les commandes suivantes sur le client :
winrm get winrm/config/client
Remarque : Si Hyper-V et BigFix Inventory sont installés sur le même hôte, vous pouvez utiliser une seule commande pour extraire les informations requises :winrm get winrm/config.
- Exécutez les commandes suivantes sur le serveur Hyper-V :
- Configurez un scénario de test simple en modifiant l'un des paramètres WinRM.
- Sur le serveur BigFix Inventory, ajoutez un astérisque à la liste Trustedhosts.
winrm set winrm/config/client @{TrustedHosts="*"}TrustedHosts="*"contraint le client à abandonner l'authentification de l'extrémité distante. Toutefois, l'extrémité distante requiert toujours l'authentification de client. En généralTrustedHostcorrespond au nom du serveur Hyper-V sur le client. - Autorisez l'authentification de base et le trafic non chiffré sur un serveur Hyper-V.
winrm set winrm/config/service/auth @{Basic="true"} winrm set winrm/config/service @{AllowUnencrypted="true"}Basic="true"active l'authentification de base HTTP à l'aide d'un ID utilisateur et d'un mot de passe en texte clair.AllowUnencrypted= truepermet de transférer les données déchiffrées via HTTP entre le serveur et le client. - Vérifiez la configuration WinRM..
Si la modification précédente'winrm get winrm/config/client': Client: NetworkDelayms = 5000 URLPrefix = wsman AllowUnencrypted = true Auth Basic = true Digest = true Kerberos = true Negotiate = true Certificate = true CredSSP = false DefaultPorts HTTP = 5985 HTTPS = 5986 TrustedHosts = * 'winrm get winrm/config/service' on the Hyper-V server: Service: RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;S-1-5-21-3273298017-2363932476 -3643925056-1633)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD) MaxConcurrentOperations = 4294967295 MaxConcurrentOperationsPerUser = 15 EnumerationTimeoutms = 600000 MaxConnections = 15 MaxPacketRetrievalTimeSeconds = 120 AllowUnencrypted = true Auth Basic = true Kerberos = true Negotiate = true Certificate = true CredSSP = false CbtHardeningLevel = Relaxed DefaultPorts HTTP = 5985 HTTPS = 5986 IPv4Filter = * IPv6Filter = * EnableCompatibilityHttpListener = true EnableCompatibilityHttpsListener = true CertificateThumbprintBasic = truea résolu le problème d'authentification, le client et le serveur ne peuvent pas négocier le protocole d'authentification. Il est déconseillé d'utiliser le schéma d'authentification de base sauf si WinRM est configuré avec HTTPS. Cette procédure pourrait représenter un risque lié à la sécurité en envoyant un nom d'utilisateur, un mot de passe et le corps du message sous la forme d'un texte en clair. Microsoft utilise trois protocoles lors de la procédure du schéma Negotiate : Kerberos, NTLMV2, et NTLM. Le client et le serveur choisissent généralement les mécanismes d'authentification qui leur conviennent le mieux. BigFix Inventory ne permet pas l'utilisation du protocole Kerberos. Pour vérifier si le client et le serveur autorisent le protocole NTLMV2 ou NTLM, utilisez la requête de registre suivante.
Les paramètres suivants situés sous cette clé de registre contrôlent le comportement du schéma d'authentification :reg query HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\LSA\MSV1_0- NtlmMinClientSec
- NtlmMinServerSec
- Sur le serveur BigFix Inventory, ajoutez un astérisque à la liste Trustedhosts.
- Pour identifier manuellement le mécanisme d'authentification approprié pour le service WinRM sur l'hôte distant, utilisez les commandes suivantes :
- Exécutez la commande à partir de Windows PowerShell.
Où :Test-WSMan -ComputerName http://<Hyper-V_server_name>:<port> -Auth <authentification_scheme> -Cred <user_id>- <Hyper-V_server_name>
- ést le nom d'hôte du serveur Hyper-V. Si vous utilisez HTTPS, le nom d'hôte doit correspondre au nom commun (CN) du certificat.
- <port>
- ést le numéro de port sur lequel le client Windows Remote Management pour le protocole HTTP ou HTTPS écoute.
- <authentification_scheme>
- Correspond au schéma d'authentification : Basic ou Negotiate
- <user_id>
- Correspond à l'ID utilisateur de Windows PowerShell.
- Exécutez la commande à partir de l'invite de commande.
Où :winrm identify -r:http://<Hyper-V_server_name>:<port> -auth <authentification_scheme> -u:<user_id> -p:<password> -
- <Hyper-V_server_name>
- ést le nom d'hôte du serveur Hyper-V. Si vous utilisez HTTPS, le nom d'hôte doit correspondre au nom commun (CN) du certificat.
- <port>
- ést le numéro de port sur lequel le client Windows Remote Management pour le protocole HTTP ou HTTPS écoute.
- <authentification_scheme>
- Correspond au schéma d'authentification : Basic ou Negotiate.
- <user_id>
- Correspond à l'ID utilisateur de WinRM PowerShell.
- <password>
- Correspond au mot de passe de WinRM.
- Exécutez la commande à partir de Windows PowerShell.
Fonction de suivi d'événements
Unknown user name or bad password. Vous ne pouvez pas déterminer que le problème réel est lié à des protocoles d'authentification non pris en charge. Le suivi d'événements Windows obtient les données de diagnostic des requêtes WMI et WinRM. - Pour lancer le suivi des événements sur le serveur Hyper-V, utilisez les commandes suivantes :
logman.exe start winrmtrace -p Microsoft-Windows-Winrm -o winrmtrace.etl -etslogman.exe start wmitrace -p Microsoft-Windows-WMI-Activity -o wmitrace.etl -ets
- Exécutez le test de connexion du gestionnaire de machine virtuelle.
vmman.bat -testconnection
vmman.sh -testconnection
<Task>User authentication </Task>
<Message>Sending HTTP 401 response to the client and disconnect the connection after
sending the response</Message> Le fichier contient également les requêtes SOAP ou XML qui sont envoyées par le client et qui fournissent des données vitales, particulièrement utiles pour traiter les incidents liés à Hyper-V.Traitement des incidents liés au statut de connexion avec Wireshark
Pour analyser le flux du trafic réseau sous Unix sans environnement graphique, utilisez tcpdump. Pour créer un cliché du trafic dans le fichier externe, utilisez tcpdump -vvv -XX -w tcpdump.out. Le fichier tcpdump.out peut être visualisé avec Wireshark.- Test de connexion réussi entre BigFix Inventory et Hyper-V avec l'interface PowerShell.
- Paramètres :
vmman.bat -testconnection
vmman.sh -testconnection
PowerShell utilise le protocole d'authentification NTLM.vmm_communication_interface=POWERSHELL
Il ne se connecte pas aux ports WinRM : à savoir 5985 et 80, mais utilise un mécanisme DCé-RPC pour se connecter au service Endpoint Mapper via le port 135.- Sélectionnez l'entrée
RemoteCreateInstance response. - Pour vérifier si l'authentification a abouti, développez les paramètres et vérifiez la valeur du paramètre
HResult. Si l'authentification a réussi,HResultest accompagné de la mentionS_OK.
Pour plus d'informations, voir : Comment activer l'authentification NTLM 2.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA\LMCompatibilityLevel - échec du test de connexion entre BigFix Inventory et Hyper-V avec l'interface NTLM.
- Paramètres :
-
vmm_communication_interface=NTLM -
vmm_url=http://.../wsman - Le port par défaut : 80

config_file.logcontient les messages d'erreur suivants :(...)com.ibm.license.mgmt.vmmanager.hyperv.net.HttpConnector::send:: An error occured while trying to send request to http://.../wsman
Bien que les erreurs des fichiers trace.log et(...)com.ibm.license.mgmt.vmmanager.hyperv.net.HttpConnector::send:java.net. ConnectException: Connection refused: connectconfig_file.logne fournissent pas suffisamment de détails, la capture de Wireshark démontre que le problème est lié à TCP. Utilisez la commande suivante pour rechercher le programme d'écoute sur le port 80.
Si aucun programme d'écoute n'est détecté, exécutez la commande suivante pour configurer des programmes d'écoute.winrm enumerate winrm/config/listenerwinrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}Remarque : La configuration des programmes d'écoute du port 80 peut être en conflit avec les autres services HTTP sur l'ordinateur. Pour éviter ces problèmes, indiquez un port WinRM dédié, comme 5985 ou 5986, sur la chaîne de connexionvmm_url. -
- échec du test de connexion entre BigFix Inventory et Hyper-V avec l'interface NTLM.
HTTP Error 401. -
- Le test de la connexion a échoué et le fichier
config_file.logcontient les messages d'erreur suivants.(...)com.ibm.license.mgmt.vmmanager.hyperv.net.HttpConnector::retrieve:: Response Code is: 401
La capture Wireshark suivante répertorie la négociation NTLM.(...)com.ibm.license.mgmt.vmmanager.hyperv.net.HttpConnector::retrieve:: The following response code was returned while connecting to VM Manager http://.../wsman: responseCode = 401
Les quatre premières lignes indiquent une négociation NTLM réussie. La quatrième ligne arrête l'établissement de liaison NTML à quatre voies. La dernière ligne détecteHTTP Error 401: Unauthorizedet aboutit à la réponse HTTP suivante.La réponse
WWW-Authenticate: Negotiateindique que le serveur est prêt à utiliser le schéma d'authentification de base HTTP, NTLM ou NTLMV2. Toutefois, le serveur a déjà correctement répondu à la séquence de négociation. Veillez à indiquer paramètre WinRM AllowUnencrypted = true.Remarque : Les gestionnaires de machine virtuelle n'effectuent pas le chiffrement du corps HTTP. WinRM accepte uniquement le corps HTTP chiffré avec le paramètre Negotiate ou le protocole Kerberos. - La capture de Wireshark indique l'échec de l'établissement de liaison pour la négociation NTLM.

L'établissement de liaison NTLM se termine en générant une erreur 401. Cette erreur est généralement due à des droits d'accès insuffisants. Pour vérifier si les comptes affectés au groupe Administrateurs sont autorisés à accéder à WinRM, configurez l'entrée de registre Windows suivante :HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\ System\LocalAccountTokenFilterPolicy
- Le test de la connexion a échoué et le fichier
- échec du test de connexion entre BigFix Inventory et Hyper-V en raison du bogue lié à l'interprétation du préfixe de domaine
vmm_login. - Lorsque vous ajoutez un gestionnaire de machine virtuelle à BigFix Inventory, veillez à fournir le nom d'administrateur dans l'un des formats suivants :
- user_name@domain, par exemple :
test@cluster.com - user_name\domain, par exemple :
test\cluster.com
Si vous ne respectez pas ce modèle et que le format du nom d'utilisateur indiqué est incorrect, une erreur est générée lors de l'authentification du gestionnaire de machine virtuelle.
A partir de la mise à jour de l'application 9.2.16, vous pouvez également indiquer le nom d'administrateur dans l'un des formats suivants :- domain@user_name, par exemple :
cluster.com@test - domain\user_name, par exemple :
cluster.com\test
Remarque : Veillez à mettre à niveau VM Manager Tool vers la version 9.2.16, et pas uniquement le serveur .
Lorsque l'erreur se produit, le nom d'utilisateur est affecté à une zone incorrecte. - user_name@domain, par exemple :