EV Observe - Configurer les prérequis de supervision WinRM

Modifié le 11/08/2022 19:13

WinRM (Windows Remote Management) est le protocole de gestion à distance des serveurs Windows

  • Il permet de se connecter sur les machines et d’exécuter des commandes PowerShell.
  • Il est nativement supporté par tous les équipements Windows.
     

L'utilisation des modèles de service basés sur le protocole WinRM nécessite au préalable de remplir certains prérequis.

  • Les prérequis sont à configurer une seule fois.
  • Ils s'effectuent en 2 étapes :
    • Activation du protocole WinRM pour recevoir les commandes à distance sur le serveur Windows à superviser
    • Configuration de la Box pour réaliser une authentification Kerberos lors de la connexion au serveur Windows via WinRM

Remarques

  • Le service WinRM est démarré par défaut sur les versions Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019.
  • Le protocole WinRM est également utilisé par le module Recensement sur les équipements Windows.

Bonnes pratiques

  • Utilisez le protocole WinRM plutôt que le service Winexe. À la différence de ce dernier, WinRM ne nécessite aucune installation sur les serveurs à superviser, et il n’est pas bloqué par les antivirus.

Procédure : Comment configurer les prérequis de supervision WinRM

Étape 1 : Activation du service WinRM pour recevoir les commandes à distance sur le serveur Windows à superviser

1. Connectez-vous au serveur Windows à superviser.

2. Vérifiez l'état du service WinRM, via la commande PowerShell ci-dessous.

Get-Service WinRM

Le statut Running indique que le service est actif. Le statut Stopped indique qu'il est arrêté.

3. Démarrez le service WinRM s'il est arrêté (statut Stopped).

  • Exécutez la commande PowerShell ci-dessous.
    Note : Vous devez être en mode Administrateur.

Enable-PSRemoting

  • Vérifiez que les règles de pare-feu Gestion à distance de Windows (HTTP-Entrée) sont activées sur le serveur Windows.
            Windows remote management rules configuration.png
     

Étape 2 : Configuration de la Box pour réaliser une authentification Kerberos lors de la connexion au serveur Windows via WinRM

Pour se connecter à la machine cible, la Box réalise une demande de ticket Kerberos à l’Active Directory, puis l’utilise pour se connecter sur le serveur à superviser. Pour que la demande de ticket fonctionne, le fichier krb5.conf doit être configuré sur la Box.

1. Ouvrez le fichier de configuration krb5.conf, en exécutant la commande ci-dessous.

vim /etc/krb5.conf

2. Renseignez les informations, en remplaçant les valeurs encadrées comme indiqué ci-dessous.

  • Valeurs en rouge : Indiquez le domaine complet du client, en majuscules.
  • Valeurs en vert : Indiquez le nom DNS du serveur Active Directory, en majuscules.
  • Valeurs en bleu : Indiquez le domaine complet du client, en minuscules. Attention : Le nom de domaine doit être précédé d'un point.
            krb5 file configuration.png

3. Enregistrez les modifications.
 

Étape 3 : Test du bon fonctionnement de WinRM depuis la Box 

Étape 3.a : Demande de ticket Kerberos à l’Active Directory

1. Effectuez une demande de ticket Kerberos à l’Active Directory, via kinit.

  • Exécutez la commande ci-dessous, en remplaçant <CLIENT.DOMAIN.EN> par le domaine complet du client, tel que renseigné dans le fichier de configuration krb5.conf.

kinit <user>@<CLIENT.DOMAIN.EN>

  • Saisissez le mot de passe de l’utilisateur.

Le ticket Kerberos est obtenu.

2. Vérifiez la validité du ticket Kerberos, en exécutant la commande ci-dessous.

klist

La date d’obtention du ticket, sa date d’expiration et le domaine pour lequel il est valide sont affichés.

3. Corrigez les erreurs si la demande de ticket Kerberos ne fonctionne pas, puis relancez la commande kinit.

kinit: Preauthentication failed while getting initial credentials

  • Cause : Problème d’authentification (utilisateur ou mot de passe) lors de l’obtention du ticket Kerberos.
  • Résolution : Vérifiez le login, le domaine et le mot de passe utilisés.
     

kinit: Cannot find KDC for realm « DOMAIN » while getting initial credentials

  • Cause : Erreur du nom de domaine du client.
  • Résolution :
    • Vérifiez le nom du domaine saisi dans la commande kinit.
    • Vérifiez les noms de domaine renseignés dans le fichier krb5.conf :
      • domaine complet du client en majuscules (valeur indiquée en rouge) ;
      • domaine complet du client en minuscules (valeur indiquée en bleu).
         

kinit: Cannot contact any KDC for realm ‘user@DOMAIN’ while getting initial credentials

  • Cause : Erreur du nom de serveur Active Directory.
  • Résolution : Vérifiez les valeurs kdc et admin_server renseignés dans le fichier krb5.conf, correspondant au nom DNS du serveur Active Directory en majuscules (valeur indiquée en vert).

Étape 3.b : Test de la connexion sur un serveur Windows, via WinRM

1. Testez depuis la Box la connexion sur un serveur Windows, via WinRM.

  • Connectez-vous à la Box.
  • Exécutez la commande ci-dessous, en remplaçant CLIENT.DOMAIN.EN> par le domaine complet du client, tel que renseigné dans le fichier de configuration krb5.conf.

/usr/local/nagios/libexec/winrm_command.py -H '@IP_cible' -l '<CLIENT.DOMAIN.EN>/user' -x 'password' -c 'ipconfig' -t 'cmd' -a 'krb'

         Test WinRM connection command.png

  • La connexion sur le serveur cible fonctionne et renvoie le résultat de la commande ipconfig.
  • Tous les services unitaires basés sur le protocole WinRM peuvent s’exécuter.

2. Corrigez les erreurs si la connexion sur le serveur cible ne fonctionne pas, puis relancez le test.

Failed to establish a new connection: [Errno 111] Connection refused

  • Cause : WinRM n’est pas activé sur le serveur cible ou le port WinRM n’est pas ouvert entre la Box et le serveur cible.
  • Résolution :
    • Activez WinRM sur le serveur cible.
    • Vérifiez que le port TCP/5985 est ouvert entre la Box et le serveur cible.
       

Connection to <IPaddress> timed out

  • Cause : Le test de connexion ne fonctionne pas alors que WinRM est bien activé sur le serveur cible.
  • Résolution : Vérifiez que les règles de pare-feu Gestion à distance de Windows (HTTP-Entrée) sont activées sur le serveur.
     

Server not found in Kerberos database

  • Cause : Problème d’enregistrement DNS. Kerberos se base sur le protocole DNS. La machine cible doit posséder un enregistrement A et un enregistrment PTR.
  • Résolution : Vérifiez que les tests nslookup fonctionnent depuis la Box.
    • erreur server can’t find myServer: SERVFAIL : L’enregistrement DNS n’est pas correct.
    • erreur server can’t find 5.15168.192.in-addr.arpa: NXDOMAIN : L’enregistrement DNS PTR n’est pas correct.
       

Droits d’utilisation WinRM insuffisants

  • Cause : La connexion à distance à la machine cible via WinRM nécessite de faire partie du groupe Administrators (ou Remote Management Users pour Windows 2012 et supérieur), soit en étant connecté directement avec le bon compte (ex. : utilisateur administrateur du domaine), soit en s’authentifiant en tant qu’administrateur via le paramètre Credential.
  • Résolution : Sur Windows 2012 et supérieur, ajoutez une clé de registre sur l’ordinateur distant pour que les groupes Administrators et Remote Management Users aient le droit de se connecter via Remote Powershell.
    • Allez sur le noeud HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciessystem.
    • Ajoutez la clé DWord : LocalAccountTokenFilterPolicy avec la valeur 1.

    Open url.png voir Plus d'informations sur le site Microsoft

Tags :
Powered by XWiki © EasyVista 2022