Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles Ă  la une

DirectAccess : DĂ©ploiement de l’authentification forte

Introduction

DirectAccess a grandement Ă©voluĂ© depuis sa premiĂšre version sous Windows 2008 R2. Microsoft a simplifiĂ© le dĂ©ploiement ce rĂŽle tout en ajoutant des fonctionnalitĂ©s supplĂ©mentaires. Ainsi, depuis Windows Server 2012, DirectAccess supporte l’authentification forte via une SmartCard ou un OTP (One Time Password). C’est le sujet de cet article oĂč nous allons aborder plusieurs aspects de cette fonctionnalitĂ©. Tout d’abord, nous verrons le fonctionnement et les contraintes imposĂ©es sur ce type de dĂ©ploiement, avant d’en rĂ©aliser un dĂ©ploiement. L’usage de la Smartcard et de l’OTP sera dĂ©taillĂ©.

La plateforme utilisĂ©e sera Windows 2012 R2. La partie OTP est composĂ© d’un serveur multiOTP et d’un serveur radius Tekradius qui sont tous les deux gratuits et permettent de rĂ©aliser un environnement de test simplement. Nous partirons du principe que DirectAccess est dĂ©jĂ  dĂ©ployĂ© et fonctionnel. Seuls le dĂ©ploiement du service OTP et l’ajout du support de l’authentification forte dans l’infrastructure DirectAccess seront dĂ©taillĂ©s. Enfin, une infrastructure de PKI est nĂ©cessaire pour rĂ©aliser ce type de dĂ©ploiement. Dans cet article, cette derniĂšre est implĂ©mentĂ©e sur Windows 2012 R2.

Fonctionnement

Généralités

Lorsque l’utilisateur se connecte sur son ordinateur, DirectAccess tente de savoir s’il est sur le rĂ©seau interne comme dans un fonctionnement classique. Lorsque le tunnel infrastructure est montĂ©, l’utilisateur est invitĂ© Ă  entrer des informations d’authentification supplĂ©mentaires. Cela peut ĂȘtre une smartcard ou un code Ă  usage unique (OTP). Si la fonctionnalitĂ© OTP est activĂ©e, cela active aussi obligatoirement l’authentification par smartcard (l’inverse n’Ă©tant pas rĂ©ciproque). Il existe ensuite deux possibilitĂ©s. S’il s’agit d’une authentification par carte Ă  puce alors l’authentification est rĂ©alisĂ© directement avec le certificat utilisateur.

Dans le cadre d’une authentification par OTP, les paramĂštres d’authentification entrĂ©s sont transmis en SSL au serveur DirectAccess avec une demande de certificat par carte Ă  puce. En effet, cette fonctionnalitĂ© se base sur une authentification par certificat de type carte Ă  puce (mĂȘme avec un OTP). Le certificat gĂ©nĂ©rĂ© possĂšde une durĂ©e de vie trĂšs courte. Comme dans une demande de certificat par carte Ă  puce classique, celle-ci sera signĂ©e par une entitĂ© possĂ©dant un certificat d’enrollment, c’est-Ă -dire donnant la possibilitĂ© de signer des demandes de certificats de carte Ă  puce au nom d’un autre utilisateur. Dans le cadre de DirectAccess, ce seront les serveurs DirectAccess qui possĂ©deront ces certificats d’enrollment et pourront dont signer les demandes de certificats des clients DirectAccess. Le serveur DirectAccess vĂ©rifie le code Ă  usage unique auprĂšs du serveur OTP. Ce dernier doit fonctionnĂ© avec un serveur radius. Le serveur DirectAccess s’adresse au serveur radius pour effectuer la vĂ©rification de l’authentification. Si le code Ă  usage unique est correct, il signe la demande de certificat et la transmet au client DirectAccess. Le client transmet cette demande signĂ©e Ă  l’autoritĂ© de certification et stocke le certificat associĂ©. Le client se comporte dĂ©sormais comme un client authentifiĂ© via carte Ă  puce.

Voici un schĂ©ma rĂ©capitulatif de la cinĂ©matique de connexion pour l’OTP :

image

1 et 2/ Connexion à l’annuaire Active Directory via le tunnel infrastructure.

3/ Des paramĂštres d’authentification supplĂ©mentaires sont demandĂ©s pour monter le tunnel utilisateur

4/ Envoie du code Ă  usage unique rĂ©cupĂ©rĂ© sur un pĂ©riphĂ©rique (smartphone par exemple) et d’une demande de certificat de logon OTP via une connexion SSL avec le serveur DirectAccess.

5 et 6/ Communication du serveur DirectAccess avec le serveur Radius

7/ Le serveur radius contacte le serveur OTP pour vérifier le code à usage unique.

8 et 9/ Le serveur radius remonte le succĂšs ou l’échec de l’authentification auprĂšs du serveur DirectAccess

10/ Si l’authentification a rĂ©ussi, le serveur DirectAccess signe la demande de certificat de logon OTP avec son certificat d’enrollment et l’envoie au client DirectAccess.

11 et 12/ Le client DirectAccess envoie la demande de certificat signĂ©e Ă  l’autoritĂ© de certification au travers du serveur DirectAccess. L’autoritĂ© de certification renvoie le certificat de logon OTP associĂ©.

13/ Le client DirectAccess récupÚre le certificat, le stocke et réalise une authentification Kerberos (non représentée ici) via carte à puce pour monter le tunnel utilisateur.

Si l’authentification par carte Ă  puce est rĂ©alisĂ©e alors le schĂ©ma s’arrĂȘte Ă  l’étape 4 et cette derniĂšre se dĂ©roule au travers du tunnel infrastructure.

Contraintes

Comme vu dans son fonctionnement, ce type de dĂ©ploiement nĂ©cessite forcĂ©ment une infrastructure de PKI. L’option force tunneling (non activĂ©e par dĂ©faut) ne peut pas ĂȘtre activĂ©e dans un dĂ©ploiement avec l’OTP car ce type d’authentification nĂ©cessite une connexion SSL en dehors du tunnel IPSec pour que le client puisse transmettre ces paramĂštres d’authentification supplĂ©mentaires. De plus, lors d’un dĂ©ploiement utilisant IPHTTPS avec des Ă©quipements rĂ©seaux se trouvant entre le client et le(s) serveur(s) DirectAccess (comme un load balancer), ceux-ci ne doivent pas dĂ©crypter le flux SSL (fonctionnement en mode path through).

Client Windows 8

Pour les clients utilisant cette version de Windows, l’activation de l’authentification OTP ne permet plus d’utiliser le “null encryption” sur les connexions IPHTTPS. Pour rappel, cela permet d’Ă©viter une double encryption (IPSec et flux IPHTTPS). Cela peut donc affecter les performances des connexions utilisateurs.

Clients Windows 7

Les clients Windows 7 doivent obligatoirement possĂ©der le DirectAccess Connectivity Assistant v2.0 (http://www.microsoft.com/en-us/download/details.aspx?id=29039). Un popup permettant d’insĂ©rer des paramĂštres d’authentification supplĂ©mentaires apparait lorsque cela est nĂ©cessaire. Sa configuration est dĂ©taillĂ© dans l’article suivant : http://blog.piservices.fr/post/DirectAccess-Conseils-et-Astuces.aspx.

Déploiement

Généralités

Si vous ne souhaitez configurer que l’authentification par Smartcard alors vous pouvez vous rendre directement sur le chapitre nommĂ© “Configuration de DirectAccess”. Les autres chapitres sont dĂ©diĂ©s au dĂ©ploiement de l’authentification par OTP.

Installation et configuration de multiOTP

Tout d’abord, il faut commencer par rĂ©cupĂ©rer les binaires de multiOTP sur le site suivant : http://www.multiotp.net/. Une fois l’archive extraite, la configuration peut ĂȘtre rĂ©alisĂ©e via une invite de commande. Celle-ci va nous permettre de rĂ©aliser une synchronisation des comptes utilisateurs Active Directory afin qu’ils soient prĂ©sent dans multiOTP. Ci-dessous, vous trouverez les commandes Ă  exĂ©cuter commentĂ©es :

Nous pouvons ensuite lancer une synchronisation via la commande suivante :

 

Cette derniĂšre affichera les utilisateurs créés ainsi que les Ă©ventuelles erreurs de synchronisation. Cette commande est Ă  insĂ©rer dans une tĂąche planifiĂ©e pour exĂ©cuter une synchronisation Ă  intervalle rĂ©gulier. Pour chaque utilisateur, un fichier est créé dans le sous dossiers “Users” de multiOTP.

Dans ce dĂ©ploiement les utilisateurs rĂ©cupĂšre le code Ă  usage unique via Google Authenticator (qui peut s’installer sur tous les tĂ©lĂ©phones mobiles android, windows phone et iOS). Pour configurer le client Google Authenticator, il est nĂ©cessaire de gĂ©nĂ©rer un QR Code pour chaque utilisateur que ce dernier scannera avec son tĂ©lĂ©phone. Pour se faire, il faut exĂ©cuter la commande ci-dessous :

 

NB : Pensez Ă  remplacer NOM_USER par le nom de l’utilisateur pour lequel vous gĂ©nĂ©rer le QR Code et NOM_FICHIER par le nom du fichier image. Le fichier peut ĂȘtre envoyĂ© Ă  l’utilisateur afin qu’il puisse ajouter son compte dans Google Authenticator. L’OTP est normalement opĂ©rationnelle. Vous pouvez effectuer des tests de connexion avec la commande suivante :

 

NB : Pensez Ă  remplacer NOM_USER par le nom de l’utilisateur et CODE par le le code Ă  usage unique fourni par Google Authenticator.

Si l’opĂ©ration rĂ©ussi, vous obtenez un rĂ©sultat similaire Ă  l’image ci-dessous :

02

Astuce : Si vous vous trompez souvent de code (6 Ă©checs) alors votre compte peut ĂȘtre bloquĂ© ou votre authentification retardĂ©e de 300 secondes (3 Ă©checs). Pour dĂ©bloquer un compte il faut lancer la commande suivante :

 

Vous pouvez modifier le comportement de multiOTP (nombre de fois avant que le compte ne soit bloquĂ© ou que l’authentification soit retardĂ©e ainsi que le dĂ©lai avant la prochaine tentative de connexion) via les commandes ci-dessous :

Installation et configuration de TekRadius

Cette Ă©tape consiste Ă  configurer un serveur radius avec lequel DirectAcces va communiquer. Ce dernier doit pouvoir s’intĂ©grer avec multiOTP et est donc installĂ© sur le mĂȘme serveur que celui-ci. Pour rappel, c’est par lui que transite la vĂ©rification du code Ă  usage unique. Les deux serveurs recommandĂ©s avec multiOTP sont FreeRadius et TekRadius LT. J’ai choisi le second qui est supportĂ© nativement sur Windows (FreeRadius est un portage linux) et qui bĂ©nĂ©ficie d’une interface graphique permettant de la configurer simplement. Les binaires peuvent ĂȘtre rĂ©cupĂ©rĂ©s sur http://www.kaplansoft.com/download.html.

Il faut ensuite exĂ©cuter le fichier setupe.exe afin d’installer l’outil.

01

La configuration principale se fait dans l’onglet “user” de l’interface qui s’ouvre en cliquant sur “TekRadius LT Manager”. Il faut crĂ©er un utilisateur par dĂ©faut (que l’on doit nommĂ© “default”) puis ajouter le lancement d’un programme externe lorsqu’une requĂȘte sera effectuĂ©e par le serveur DirectAccess. Le programme lancĂ© sera multiOTP. Dans la section “Attribute”, il faut sĂ©lectionner l’option “Check”, puis dĂ©finir l’action effectuĂ©e Ă  “External-Executable” et enfin insĂ©rez la commande exĂ©cutĂ©e par TekRadius comme suit : C:\multiotp\multiotp.exe %ietf|1% %ietf|2% (il est supposĂ© ici que multiOTP est dĂ©ployĂ© dans “C:\multiOTP\”).

02

Dans l’onglet client, il faut ajouter notre server DirectAcces afin que ce dernier soit autorisĂ© Ă  communiquer avec TekRadius. Il faut insĂ©rer l’IP du serveur DirectAccess puis le secret (code utilisĂ© pour communiquer) et enfin cliquez sur le bouton “Add/Update”.

03

Enfin dans la section “Service Parameters” de l’onglet “Settings” , on peut changer le port utilisĂ© par TekRadius (par dĂ©faut 1812 UDP&TCP) ainsi que le niveau de trace gĂ©nĂ©rĂ© par l’outil (je vous conseille de le dĂ©finir Ă  Debug dans un premier temps afin de valider la configuration, cela permet d’identifier clairement les Ă©ventuelles erreurs de configuration). On termine la configuration en cliquant sur le bouton “Save Settings” et en lançant le service via le bouton Ă  gauche de ce dernier.

04

Le serveur TekRadius est à présent opérationnel.

Configuration des modĂšles de certificats

Certificat d’enrollment (signature des demandes de certificat OTP) :

Lancer la console de gestion des modùles de certificat. Choisir le modùle “Computer” puis dupliquer le (clic droit “Duplicate template”).

01

Dans l’onglet “Compatibility”, dĂ©finissez Ă  Windows 2012 R2 la valeur du champ “Certification Authority” et Ă  Windows 8.1 / Windows Server 2012 R2 celle du champ “Certificat Recipient”. Cette valeur est Ă  adapter selon le systĂšme d’exploitation utilisĂ© sur votre autoritĂ© de certification et vos serveurs DirectAccess.

02

Dans l’onglet “General”, dĂ©finissez un nom ainsi que la durĂ©e de vie du certificat et la pĂ©riode avant son expiration durant laquelle le serveur DirectAccess pour renouveler son certificat.

03

Dans l’onglet “Security”, ajouter vos serveurs DirectAccess (via le bouton “Add”) et donner leurs les permissions de lecteur (“Read”), d’enrollement (“Enroll”) et d’autoenrollement (“Autoenroll”).

04

Pour les utilisateurs authentifiĂ©s (“Authenticated Users”), laissez uniquement la permission de lecture.05

 

Supprimez la permission d’enrollement (“Enroll”) sur le groupe des ordinateurs du domaine (“Domain computers”).

06

Enfin, pour les groupes administrateurs du domaine (“Domain Admins”) et administrateur de l’entreprise, dĂ©finissez la permission Ă  contrĂŽle total (“Full Control”).

0807

Dans l’onglet “Subject Name”, sĂ©lectionner l’option “DNS name” dans la liste dĂ©roulante “Subject Name format” et cocher la case “DNS name” sous “Include this information in alternate subject name” afin d’ajouter le nom DNS de l’ordinateur trouvĂ© dans l’annuaire Active Directory en tant que sujet du certificat mais aussi comme SAN (subject alternative name).

09

Enfin, dans “Extensions”, il faut sĂ©lectionner le champ “Application Policies” et supprimer toutes les entrĂ©es existantes. Il est ensuite nĂ©cessaire de cliquer sur “Add” puis “New” et d’ajouter un nom ainsi que la valeur “1.3.6.1.4.1.311.81.1.1” dans le champ “Object Identifier”. La crĂ©ation de ce modĂšle est terminĂ©e.

101112

Certificat OTP :

Dans la console de gestion des modùles de certificat. Choisir le modùle “Smartcard Logon” puis dupliquer le (clic droit “Duplicate template”).

Dans l’onglet “Compatibility”, dĂ©finissez Ă  Windows 2012 R2 la valeur du champ “Certification Authority” et Ă  Windows 7 / Windows Server 2008 R2 celle du champ “Certificat Recipient”. Cela correspond Ă  la version du systĂšme d’exploitation minimale pour nos clients DirectAccess. Si vous n’utiliser pas de client sous Windows 7, vous pouvez changer cette valeur Ă  Windows 8 ou Windows 8.1 en fonction de vos besoins.

13

Dans l’onglet “General”, dĂ©finissez un nom ainsi que la durĂ©e de vie du certificat. La pĂ©riode de renouvellement doit ĂȘtre nulle.

14

Dans l’onglet “Security”, il faut dĂ©finir les permissions du groupe des utilisateurs authentifiĂ©s (“Authenticated Users”) Ă  “Read” et “Enroll”.

15

Il est aussi nĂ©cessaire de donner les permissions de contrĂŽle total (“Full Control”) aux groupes administrateurs du domaine et administrateurs de l’entreprise.

1617

Dans l’onglet “Subject Name”, sĂ©lectionnez l’option “Full Distinguished Name” dans la liste dĂ©roulante “Subject Name format” et cocher la case “User principal name (UPN)” sous “Include this information in alternate subject name”.

18

Dans l’onglet “Server”, cocher la case “Do not store certificates and requests in the CA database” afin de ne pas polluer la base de donnĂ©e de l’infrastructure PKI lors des connexions des clients DirectAccess.

19

Dans l’onglet “Issuance Requirements”, vĂ©rifier que la case “This number of authorized signatures » est cochĂ©e et insĂ©rez la valeur 1. VĂ©rifiez que le champ “Policy type required in signature” possĂšde la valeur “Application Policy” et choisissez le modĂšle créé prĂ©cĂ©demment (DirectAccess OTP RA) pour le champ “Application Policy”. Cela permet de dĂ©finir le certificat ayant le droit de signer des requĂȘtes de certificat.

20

Enfin, dans “Extensions”, il faut sĂ©lectionner le champ “Application Policies” et supprimer toutes les entrĂ©es existantes sauf “Smart Card Logon”. La crĂ©ation de ce second modĂšle est terminĂ©e.

20post

Ajout des modĂšles Ă  l’infrastructure PKI :

Dans la console de gestion de l’autoritĂ© de certification (“Certificate Authority”), il est nĂ©cessaire de publier les modĂšles qui viennent d’ĂȘtre créé. Cette opĂ©ration se rĂ©alise dans l’onglet “Certificate Templates”. Il suffit de faire un clic droit et de choisir l’option “Certificate Template to Issue”. Il faut sĂ©lectionner les deux modĂšles créés prĂ©cĂ©demment et valider avec le bouton “OK”.

21

Enfin, afin d’autoriser la PKI Ă  ne pas stocker certaines demandes de certificat ou certains certificat, il faut exĂ©cuter la commande ci-dessous :

Il vous sera ensuite demandé de redémarrer le service Active Directory Certificate Services pour que le changement soit pris en compte.

22

Configuration de DirectAccess

Nous pouvons maintenant configurer DirectAccess afin qu’elle fonctionne avec l’authentification forte (Smartcard ou OTP).

Pour rĂ©aliser cette Ă©tape, il faut se rendre dans la console “Remote Access Management” permettant de configurer son infrastructure DirectAccess. Dans la section “Configuration”, il faut Ă©diter l’Ă©tape 2 nommĂ©e “Remote Access Server” (Bouton “Edit”).

01

Lorsque l’assistant s’ouvre, il faut ajouter des paramĂštres sur l’onglet nommĂ© “Authentication”. Par dĂ©faut, la case “Active Directory Credential” est sĂ©lectionnĂ©e dans “User Authentication”. Pour activer uniquement l’authentification par carte Ă  puce, il suffit de sĂ©lectionner la case “Two-factor authentication” et la configuration est terminĂ©e. Si vous souhaitez Ă©galement activer l’authentification par OTP, il faut cocher la case “Use OTP”. Cela activera des onglets de configuration supplĂ©mentaires.

02

Dans la section “OTP Radius Server”, il faut indiquer le nom DNS ou l’IP du serveur TekRadius que nous avons installĂ© prĂ©cĂ©demment ainsi que le secret (via le bouton “Change”) que nous avons dĂ©fini dans la section client de l’outil et enfin le port s’il ne s’agit pas de celui par dĂ©faut (1812).

03

04

Dans l’onglet “OTP CA Servers”, il convient de renseigner l’autoritĂ© de certification dĂ©livrant les certificats dont nous avons créé les modĂšles (l’ajout se fait via le bouton “Add”).

05

NB : Vous pouvez rencontrez une erreur indiquant qu’aucune autoritĂ© de certification n’a pu ĂȘtre dĂ©tectĂ©e. Il s’agit d’un bug de l’assistant graphique corrigĂ© par un hotfix disponible en suivant ce lien : https://support.microsoft.com/fr-fr/kb/3047733 (Toutefois, il reste possible de rĂ©aliser la configuration via Powershell sans le hotfix).

image

Dans l’onglet “OTP Certificate Templates”, il faut indiquer le modĂšle utilisĂ© pour l’authentification par OTP puis le modĂšle permettant de signer les requĂȘtes de certificat OTP.

06

Par dĂ©faut, tous les utilisateurs doivent s’authentifier via carte Ă  puce ou OTP. Cependant, vous pouvez spĂ©cifier un groupe d’utilisateurs pouvant s’authentifier uniquement grĂące Ă  l’authentification intĂ©grĂ© dans la section “OTP Exemptions”. Vous pouvez ensuite valider cet assistant.

07

Dans l’Ă©tape 3 de la configuration de DirectAccess, il est nĂ©cessaire d’effectuer une modification lorsque l’on configure l’OTP. Il faut autoriser les clients DirectAccess Ă  contacter l’autoritĂ© de certification dĂ©livrant les certificats pour l’authentification par OTP avant qu’il n’est accĂšs aux ressources internes de l’entreprise. Cela leur permet d’obtenir le certificat pour monter le tunnel utilisateur. Dans la section “Management” de l’assistant, il convient d’indiquer le nom DNS de l’autoritĂ© de certification sur laquelle nous avons ajoutĂ© les modĂšles prĂ©cĂ©demment créés.

08pre

Il est ensuite nĂ©cessaire d’appliquer le changement de configuration (ce bouton apparait en dessous de la vue globale de configuration de DirectAccess).

08

Pour vĂ©rifier que le service est fonctionnel, nous pouvons nous rendre dans l’onglet “Operations Status” de la console de gestion d’accĂšs Ă  distance.

09

Il est aussi possible de vĂ©rifier qu’un site IIS a Ă©tĂ© créé sur le serveur. Ce dernier est nommĂ© “DAOtpSite”.

10

Enfin, en ouvrant un navigateur sur le serveur, on peut vĂ©rifier que ce site est fonctionnel via l’url : https://localhost/DAOtpauth.dll

11

Vous pouvez maintenant mettre Ă  jour les stratĂ©gies de groupes de vos postes clients (gpupdate /force) et tester l’authentification en vous connectant Ă  distance.

test win 7

Si vous rencontrez des erreurs sur l’OTP, n’hĂ©sitez pas Ă  regarder le journal d’Ă©vĂšnements “OTPCredentialProvider” (dans “Applications and Services Logs”) de votre poste client ainsi que les traces gĂ©nĂ©rĂ©s par TekRadius sur le serveur radius (prĂ©sent dans le rĂ©pertoire Logs du dossier d’installation de TekRadius). Nous pouvons d’ailleurs remarquĂ© qu’un utilisateur nommĂ© DAProbeUser tente de s’authentifier Ă  intervalle rĂ©gulier. Comme ce dernier n’existe pas dans multiOTP, une erreur est remontĂ©e. Ce comportement est tout Ă  fait normal. Il s’agit simplement du sonde DirectAccess permettant de tester la disponibilitĂ© de l’OTP.

01

NB : Vous pouvez rencontrez l’erreur 0x80040001 sur votre client lorsque vous tentez de vous authentifier via OTP. Il s’agit d’un bug qui se corrige en installant la KB suivante :

  • Windows 8 : https://support.microsoft.com/en-us/kb/2973071

  • Windows 7 : https://support.microsoft.com/en-us/kb/2939489

    event viewer win 7

Nested Hyper-V sous NanoServer Technical Preview 4

 

La Technical Preview 4 de Windows Server 2016 est désormais disponible. https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview

 

De nouveaux Packages Nano sont désormais disponible.

Vous pouvez construire vos VM nanos avec l’outil NanoServerBuild_x64.

 

Disponible ici : https://onedrive.live.com/?cid=b370cc46ea3ab572&id=B370CC46EA3AB572%21137&authkey=%21ANkLug_PPC-kh-8

 

Présentation ici :  http://blog.piservices.fr/post/Provisionner-des-VHDs-et-VM-Nano-Server.aspx

 

 

Exemple de nouveaux Packages disponible sous TP4

 

clip_image001

 

 

Un package SCVMM même 😀

 

clip_image002

 

 

Cocher la case New-VM.

 

Pour activer le Nested sur le/les VMs créées, cocher la case Nested.

Celle-ci autorisera la virtualisation imbriquée.

 

Attention : Pour que le Nested soit fonctionnel, vous devez être sous une build de l’OS Hyperviseur root supportant la fonctionnalité Nested (Exemple : Windows 10 Build 10586)

 

clip_image003

 

 

Cliquer sur Let’s Go pour démarrer les opérations.

(Des fichiers logs sont générés là ou vos VHDs sont créés).

 

clip_image004

 

 

image

 

 

Une fois les opérations finies, votre / vos VM(s) sont créées.

 

 

Démarrer votre VM

clip_image006

 

 

Authentifier vous

clip_image008

 

 

Nous sommes bien en TP4.

clip_image010

 

 

Création d’un VM imbriquée

 

Nous allons maintenant essayer de créer une VM dans notre Nano Server lui-même virtualisé.

 

Enter-PSSession -VMName NanoTP4 -Credential administrator

New-VHD -Path c:\Base.vhdx -SizeBytes 1GB

New-VM -Name « new 3 » -MemoryStartupBytes 32MB -VHDPath c:\Base.vhdx

Get-vm | Start-VM

 

On remarque que la VM démarre correctement. Cela signifie que le Nested est fonctionnel.

 

clip_image012

 

En TP3, le démarrage de la VM ne fonctionnait pas.

image

 

 

Vous pouvez désormais créés des labos avec SCVMM en prime avec tout un tas de clusters 🙂 (y)

 

Have Fun !

SCOM – Moniteur de performance multi-instances

Lors de la crĂ©ation d’un moniteur de performance, il peut arriver qu’il soit nĂ©cessaire de superviser plusieurs instances du compteur et d’alerter lorsque n’importe laquelle de ces instances dĂ©passe le seuil paramĂ©trĂ©.

La solution qui vient alors immĂ©diatement Ă  l’esprit est alors d’utiliser les wildcard (jokers) dans le nom de l’instance :

clip_image002

Malheureusement, voici ce qui se produit dans ce cas :

clip_image004

clip_image006

Le moniteur dĂ©tecte bien que l’instance w3wp dĂ©passe le seuil paramĂ©trĂ© et passe donc en Critical, mais instantanĂ©ment aprĂšs le moniteur dĂ©tecte que l’instance w3wp#10 est elle toujours sous le seuil et il repasse donc en Healthy : la vĂ©rification se fait pour chaque instance du compteur l’une aprĂšs l’autre, et si un seul d’entre eux n’est pas en critical, le moniteur repasse en vert immĂ©diatement.

Et ce manÚge recommence à chaque exécution du moniteur


Une premiùre bonne solution consiste alors à utiliser une variable à la place d’un wildcard en tant qu’Instance.

Prenons l’exemple d’un moniteur de performance qui serait ciblĂ© sur la classe Logical Disk.

Cette classe dispose de propriétés, dont plusieurs correspondent au nom des instances de compteurs :

clip_image007

On peut alors rĂ©utiliser une de ces variable dans le champ Instance de l’assistant de crĂ©ation du moniteur, Ă  l’aide de la petite flĂšche situĂ©e Ă  sa droite :

clip_image008

On aura donc un moniteur pour chaque instance SCOM de la classe logical disk, ciblĂ© uniquement sur l’instance du compteur de performance qui lui correspond.

Il arrive cependant qu’aucune classe SCOM ne dispose de propriĂ©tĂ©s utilisables en tant que variable,  typiquement en reprenant le premier exemple du process w3wp.exe.

Dans ce cas, une autre solution existe : le module de dĂ©tection de condition (condition detection module) System.LogicalSet.ExpressionFilter introduit dans SCOM 2007 R2 permet de dĂ©terminer quand arrĂȘter le traitement des donnĂ©es provenant d’une datasource lorsque celle-ci renvoie plusieurs rĂ©sultats (ce qui est le cas quand un System.Performance.DataProvider est ciblĂ© sur plusieurs instances d’un compteur perfmon).

Autrement dit, en utilisant ce module, les valeurs de chaque instance du compteur sont analysĂ©es l’une aprĂšs l’autre. DĂšs qu’une de ces instances dĂ©passe le seuil dĂ©fini, le moniteur passe en Critical et s’arrĂȘte sans analyser les instances suivantes, empĂȘchant donc le moniteur de repasser en Healthy.

L’utilisation de ce module n’est toutefois pas possible directement depuis la console SCOM et nĂ©cessite de crĂ©er son propre MonitorType :

<TypeDefinitions>

<MonitorTypes>

<UnitMonitorType ID="MultipleInstance.Perf.MonitorType" Accessibility="Public">

<MonitorTypeStates>

<MonitorTypeState ID="AboveThreshold" NoDetection="false" />

<MonitorTypeState ID="BelowThreshold" NoDetection="false" />

</MonitorTypeStates>

<Configuration>

<xsd:element name="ComputerName" type="xsd:string" />

<xsd:element name="CounterName" type="xsd:string" />

<xsd:element name="ObjectName" type="xsd:string" />

<xsd:element name="InstanceName" type="xsd:string" />

<xsd:element name="AllInstances" type="xsd:boolean" />

<xsd:element name="Frequency" type="xsd:unsignedInt" />

<xsd:element name="Threshold" type="xsd:double" />

</Configuration>

<OverrideableParameters>

<OverrideableParameter ID="Frequency" Selector="$Config/Frequency$" ParameterType="int" />

<OverrideableParameter ID="Threshold" Selector="$Config/Threshold$" ParameterType="double" />

</OverrideableParameters>

<MonitorImplementation>

<MemberModules>

<DataSource ID="DS_PerfData" TypeID="Performance!System.Performance.DataProvider">

<ComputerName>$Config/ComputerName$</ComputerName>

<CounterName>$Config/CounterName$</CounterName>

<ObjectName>$Config/ObjectName$</ObjectName>

<InstanceName>$Config/InstanceName$</InstanceName>

<AllInstances>$Config/AllInstances$</AllInstances>

<Frequency>$Config/Frequency$</Frequency>

</DataSource>

<ConditionDetection ID="BelowThresholdDetection" TypeID="SystemLibrary7585010!System.LogicalSet.ExpressionFilter">

<Expression>

<SimpleExpression>

<ValueExpression>

<XPathQuery Type="Double">Value</XPathQuery>

</ValueExpression>

<Operator>LessEqual</Operator>

<ValueExpression>

<Value Type="Double">$Config/Threshold$</Value>

</ValueExpression>

</SimpleExpression>

</Expression>

<EmptySet>Passthrough</EmptySet>

<SetEvaluation>All</SetEvaluation>

</ConditionDetection>

<ConditionDetection ID="AboveThresholdDetection" TypeID="SystemLibrary7585010!System.LogicalSet.ExpressionFilter">

<Expression>

<SimpleExpression>

<ValueExpression>

<XPathQuery Type="Double">Value</XPathQuery>

</ValueExpression>

<Operator>Greater</Operator>

<ValueExpression>

<Value Type="Double">$Config/Threshold$</Value>

</ValueExpression>

</SimpleExpression>

</Expression>

<EmptySet>Block</EmptySet>

<SetEvaluation>Any</SetEvaluation>

</ConditionDetection>

</MemberModules>

<RegularDetections>

<RegularDetection MonitorTypeStateID="BelowThreshold">

<Node ID="BelowThresholdDetection">

<Node ID="DS_PerfData" />

</Node>

</RegularDetection>

<RegularDetection MonitorTypeStateID="AboveThreshold">

<Node ID="AboveThresholdDetection">

<Node ID="DS_PerfData" />

</Node>

</RegularDetection>

</RegularDetections>

</MonitorImplementation>

</UnitMonitorType>

</MonitorTypes>

</TypeDefinitions>

On constate que ce module se configure trùs simplement à l’aide de deux balises xml : EmptySet et SetEvaluation.

EmptySet indique le traitement Ă  appliquer : Passthrough (on continue le traitement des donnĂ©es vers les modules suivants dans le workflow, c’est le mode par dĂ©faut) ou Block (qui arrĂȘte le traitement du wokflow).

SetEvaluation indique si les données de chaque instance doivent correspondre (All), ou si une seule suffit (Any).

Dans l’exemple ci-dessus, on demande donc d’arrĂȘter le traitement (Block) dĂšs que n’importe quelle instance du compteur (Any) passe au dessus du seuil dĂ©fini.

Ne reste alors plus qu’à implĂ©menter le Moniteur Ă  proprement parler :

<UnitMonitor ID="w3wp.process.privatebytes.monitor" Accessibility="Public" Enabled="false" Target="SharePoint2!Microsoft.SharePoint.2013.SPServiceInstance.Excel" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="MultipleInstance.Perf.MonitorType" ConfirmDelivery="true">

<Category>PerformanceHealth</Category>

<AlertSettings AlertMessage="w3wp.process.privatebytes.monitor_AlertMessageResourceID">

<AlertOnState>Error</AlertOnState>

<AutoResolve>true</AutoResolve>

<AlertPriority>Normal</AlertPriority>

<AlertSeverity>Error</AlertSeverity>

</AlertSettings>

<OperationalStates>

<OperationalState ID="AboveThreshold" MonitorTypeStateID="AboveThreshold" HealthState="Error" />

<OperationalState ID="BelowThreshold" MonitorTypeStateID="BelowThreshold" HealthState="Success" />

</OperationalStates>

<Configuration>

<ComputerName>$Target/Host/Property[Type="MicrosoftWindowsLibrary7585010!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>

<CounterName>Private Bytes</CounterName>

<ObjectName>Process</ObjectName>

<InstanceName>w3wp*</InstanceName>

<AllInstances>false</AllInstances>

<Frequency>300</Frequency>

<Threshold>2000000000</Threshold>

</Configuration>

</UnitMonitor>

Et cette fois-ci le moniteur ne bagotte plus, tant que n’importe laquelle des instances du compteur sera au dessus du seuil, le moniteur restera en Critical :

clip_image009

Pour aller plus loin : https://msdn.microsoft.com/en-us/library/hh442318.aspx?f=255&MSPPError=-2147217396