====Introduction==== Avec l'arrivée de nouveaux clients amenés à se connecter à vSphere pour gérer des VM et qui potentiellement peuvent voir accès à des serveurs autres que ceux qu'ils doivent gérer, ou en cas de vol d'identifiant, nous avons besoin d'une solution permettant de connaître quel sont les consoles des VM qui sont ouvertes et quels sont les utilisateurs ainsi que leur niveau de privilège sur Windows. ==== Problématique ==== Même si la gestion des droits est extrêmement fine sur vSphere, il est possible que des droits puissent être modifiés par une tierce personne sans forcément penser aux conséquences sur l'héritage ou sur la pertinence des accès. De plus, les accès pour le support 1er niveau ont généralement les droits stop/start/reset sur les machines mais également le droit de console, le plus souvent pour monter un ISO sur la VM. Dans tous ses cas, si une session utilisateur est ouverte sur le serveur, la personne qui ouvre la console obtient les privilèges de l'utilisateur connecté. ==== Solution ==== Plusieurs solutions peuvent être mises en place afin de minimiser le risque d'intrusion dans le réseau via la console: * Gérer finement les droits des utilisateurs afin de ne leur donner accès qu'a leurs ressources * Limiter à une seule console à la fois par VM * Verrouiller automatiquement la session utilisateur dans Windows au bout d'un certain temps Afin de permettre aux administrateurs des vCenter d'être au courant régulièrement des consoles ouvertes, le script ci-dessous permet, via les vmware tools installés dans les VM, d'interroger directement Windows et de lui demander quels sont les utilisateurs qui possèdent des sessions actives et avec quel privilège. ==== Le script ==== === Description=== Le script est composé d'une fonction principale checkOpenedConsole qui prend en paramètre : * clusterName : le nom du cluster vSphere a scanner * loginGuest : Le nom d'un utilisateur Windows ayant les droits administrateur sur la VM * pwdGuest : Le mot de passe associé Celui-ci va effectuer les actions/vérifications suivantes : * Se connecter aux VM Windows et relever les sessions "consoles" actives * Extraire les login * Regarder dans Active Directory si celui-ci appartient à un groupe d'administrateur * Si c'est le cas, il va directement envoyer un email à la personne concernée lui demandant de fermer sa session * Sinon il va lister toutes les sessions ouvertes et envoyer un email à l'email de notre choix Pour résumer, en sortie il envoi les emails suivants : * Si un utilisateur est administrateur du domaine et qu'il a une session console active sous Windows * Un listing aux administrateurs des serveurs avec la liste suivante: * Account : MYUSER * email : myuser.name@acme.corp * ConnectionType : console * DomainAdmin : 0 * ConnectionStatus : Active * VmName : MyVMName DomainAdmin peut-être 0 (non admin) ou 1 (admin) === Utilisation === - Renseigner la page wrapper.ps1 avec les variables adéquates et rappeler la fonction autant de fois qu'il y a de clusters à scanner - Appeler la page wrapper.ps1 via les tâches planifiées 1 fois par jour