Archives de juillet, 2018

Note : cette Big-Picture est disponible en téléchargement ici.

Introduction

Si vous êtes amenés à déployer et administrer des VM IaaS dans Azure, il est fortement déconseillé d’établir des connexions Directes RDP & SSH (à travers Internet) sur celles-ci : il s’agit d’une « Bad Practice » /cas courant dans les entreprises !

Les VMs Azure disposant d’une interface Public (@IP Public) sont exposées à Internet et donc à plusieurs Security Risks liés aux protocoles RDP et SSH.

Quels « Best Practices » ?

La « Best Practice » consiste à utiliser une connexion VPN Site-to-Site (entre le VNET Azure et votre réseau local : canal sécurisé IPSec /IKEv2) ou Point-to-Site (entre le VNET Azure et votre Machine d’Administration : canal sécurisé SSTP/IKEv2).

Avec cette architecture, vous réduisez la surface d’attaque en supprimant l’interface Publique de vos VMs (utilisation d’une Private NIC Only).

L’objectif du présent post est de vous détailler (step-by-step) la procédure à suivre pour SetuPé et configurer une connexion VPN Point-to-Site entre votre environnement Azure et votre ou vos machines d’administration distantes.

Let’s do it 🙂

 

# OS Client supporté pour la connexion VPN Point-to-Site

Les Operating System (OS) suivants sont pris en charge pour la connexion VPN Point-to-Site :

  • Windows :
    • Windows Client : Windows 7, 8, 8.1 et 10
    • Windows Server : Windows Server 2008, 2008 R2, 2012, 2012 R2 et 2016
  • Mac OS X

 

#[Prérequis] Créez votre compte Azure

Pour mettre en pratique les différentes techniques expliquées dans le présent article, vous devez disposer d’un compte Azure. Vous pouvez en créer un gratuitement via ce lien.

Useful info : MS vous offre 200$ de crédit Azure pour tout nouveau compte créé. Cette offre est valable pendant 30 jours (Trial Mode).

 

#Utilisation de l’interface Azure CLI 2.0 vs Ouverture de Session Azure Cloud Shell

Les scripts/lignes de codes listées ci-dessous peuvent être exécutées depuis :

  • Interface Azure CLI 2.0 (mode local)
  • Azure Cloud Shell  (mode web)

Si vous souhaitez exécuter les lignes de codes ci-dessous localement depuis votre machine d’administration, je vous invite à installer l’interface Azure CLI 2.0 en suivant les instructions détaillées dans cet article.

Sinon, vous pouvez simplement vous connecter sur le site shell.azure.com, ouvrir directement une session Azure Cloud Shell exécutez les scripts décrits ci-dessous.

Console Azure Cloud Shell Web

Note : Azure Cloud Shell représente votre machine d’administration hébergée dans le Cloud Azure. Elle est accessible depuis n’importe ou et via n’importe quel device. Le Cloud Shell Azure est accessible depuis le Portail Azure (portal.azure.com), il peut également être accédé directement depuis l’URL shell.azure.com

 

#Créez votre connexion VPN Azure Point-to-Site

Pour créer une connexion VPN Point-to-Site (P2S), vous devez créer et configurer plusieurs objets/services Azure : Passerelle VPN Azure, Public @IP de la Gateway, Certificat pour l’authentification de vos clients VPN distants

Voici les étapes à suivre pour créer et configurer correctement votre connexion VPN P2S.

  1. Créer un nouveau groupe de ressource qui regroupera toutes les ressources Azure qui seront créées
  2. Créer un nouveau VNET Azure
  3. Créer/Déclarer le Gateway Subnet du VNET Azure créé
  4. Créer une Nouvelle Passerelle VPN P2S (Point-to-Site)
  5. Créer une nouvelle @IP Public pour la nouvelle Passerelle VPN
  6. Créer/Générer un nouveau certificat Self-Signed (Auto-signé) pour authentifier les clients VPN Distants
  7. Déclarer le contenu de la clé Public du Certificat Root sur la configuration VPN Point-to-Site

 

Note #1 : les étapes 1, 2 et 3 peuvent être by-passées si vous souhaitez configurer une connexion VPN P2S sur un VNET existant. Vous devriez dans ce cas changer les valeurs décrites ci-dessous par celles correspondant aux objets Azure existants (nom groupe de ressource, nom VNET, IP Address Prefix/CIDR…Etc)

Note #2 : si vous disposez d’une PKI sur le réseau local ou dans le Cloud, vous pouvez générer un certificat SSL signé/validé par votre CA et l’importer dans Azure. Dans notre cas, nous allons simplement utiliser un certificat Auto-Signé :).

 

Pour créer votre connexion VPN Azure P2S, exécutez les lignes de codes listées ci-dessous.

Notez que chaque bloc de code correspond à une des étapes décrite ci-haut.

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

#Etape1 :  Creation du ressource groupe
az group create -n hkdemorg -l WestEurope

#Etape2 : Creation du VNET
az network vnet create –name hkdemovnet –resource-group hkdemorg -l WestEurope –address-prefixes 10.110.0.0/16 –subnet-name hkdemosubbe –subnet-prefix 10.110.1.0/24 –ddos-protection false

#Etape3 : Creation du sous-reseau de la Passerell ‘Subnet Gateway’
az network vnet subnet create –address-prefix 10.110.254.0/24 –name GatewaySubnet –resource-group hkdemorg –vnet-name hkdemovnet

#Etape4 : Creation de l’adresse IP Public de la Gateway VPN
az network public-ip create –name hkdemovpngtwpip –allocation-method Dynamic –location westeurope –resource-group hkdemorg –sku Basic

#Etape5 : Creation de la Gateway VPN P2S
az network vnet-gateway create –name hkdemovpngtw -g hkdemorg –vnet hkdemovnet –public-ip-addresses hkdemovpngtwpip –location westeurope –gateway-type Vpn –sku VpnGw1 –vpn-type RouteBased –address-prefixes 172.116.1.0/24 –client-protocol SSTP

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Plusieurs résultats vous sont retournés à la fin de l’exécution de chaque commande, cela vous permet de vérifier si les services Azure ont été créés correctement (ou pas : retour d’un ou plusieurs Error Messages).

Nous allons maintenant vérifier si tous les services Azure créés précédemment apparaissent depuis le Portail Azure.

Pour ce faire, connectez-vous sur Portal.azure.com et cliquez sur « Groupes de Ressources » ou « Resource Groups » si votre interface Web est en « Anglais ».

Notre Groupe de Ressource (hkdemorg) créé en « Etape 1 » doit apparaître sous « Groupe de ressources » :

Cliquez cette fois-ci sur le Groupe de Ressource hkdemorg pour visualiser toutes les ressources créées (VNET,  Passerelle VPN et son Adresse IP Publique associée) :

 

#Création du certificat Auto-Signé pour l’authentification des clients distants

Les Certificats sont utilisés par Azure pour authentifier les clients distants se connectant sur votre VNET Azure à travers la connexion VPN Point à Site.

Dès que vous aurez obtenu votre certificat (obtenu via votre PKI Enterprise ou un auto-signé), vous devez renseigner les informations relatives à sa clé Public au niveau de la configuration Point-to-Site Azure. Ce Certificat sera donc considéré comme étant « Trusted » pour toute connexion VPN P2S à votre VNET.

En outre, vous devez générer le certificat client à partir du Certificat Root de Confiance, vous l’installez ensuite sur chaque poste client devant s’authentifier/se connecter à travers le canal VPN P2S.

Maintenant que nous avons découvert à quoi servent les certificats dans une configuration VPN Azure, nous passerons à l’étape 6 qui consiste à créer/générer un certificat auto-signé Root pour l’authentification de nos postes clients VPN.

Pour générer ce certificat Auto-Signé, deux options s’offrent à vous :

  • Utilisation de l’outil MakeCert.exe
  • Utilisation de la Cmd-Let New-SelfSignedCertificate 

 

Note importante : l’outil MakeCert est considéré comme « Obsolète » et n’est plus recommandé par l’éditeur. Voir cet article pour en savoir plus

Nous allons donc utiliser la Cmd-let New-SelfSignedCertificate pour générer notre certificat

Commencez par ouvrir une Session Windows sur un Poste Windows 10, lancez ensuite PowerShell ISE en tant qu’Administrateur et exécutez les commandes suivantes :

#Etape6-Part1 : Creation du Certificat Auto-signe « Root »
$hkcert = New-SelfSignedCertificate -Type Custom -KeySpec Signature -Subject "CN=HKP2SRootCert" -KeyExportPolicy Exportable
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation « Cert:\CurrentUser\My » -KeyUsageProperty Sign -KeyUsage CertSign

#Etape6-Part2 :  Generation du certificat client
New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature -Subject "CN=HKP2SChildCert" -KeyExportPolicy Exportable
-HashAlgorithm sha256 -KeyLength 2048 -CertStoreLocation "Cert:\CurrentUser\My"
-Signer $hkcert -TextExtension @(« 2.5.29.37={text}1.3.6.1.5.5.7.3.2 »)

Après exécution des commandes PowerShell ci-dessus, deux certificats sont générés au et stockés dans votre Magasin de certificats local (Certificats – Utilisateur Local):

  • HKP2SRootCert : certificat Root (dont la clé Public doit être déclarée sur Azure)
  • HKP2SChilfCert : certificat client (à installer sur chaque poste/client VPN).

Suivez les instructions suivantes pour exporter les deux certificats (Root & Child).

Export du Certificat Root, Pourquoi ?

Cette opération est importante car elle nous permettra de récupérer les informations sur la clé Public du Certificat Root pour les déclarer au niveau d’Azure (Config P2S) :

  1. Saisissez CertMgr.msc depuis le Menu Démarrer et lancez l’outil retourné dans les résultats de recherche
  2. La console « Certificats » apparaît. Développez « Personnel » > « Certificats« 
  3. Faites un Clic-droit sur HKP2SRootCert > Toutes les Tâches > Exporter…
  4. L’assistant suivant apparaît, cochez « Non, ne pas exporter la clé privée » et cliquez sur « Suivant » :

  1. Cochez « X.509 encodé en base 64 (*.cer) » et cliquez sur « Suivant » pour continuer :

  1. Cliquez sur « Parcourir… » et sélectionnez un emplacement dans lequel le certificat (.cer) sera placé (D:) dans l’exemple suivant) :

  1. Enfin, cliquez sur « Terminer » pour fermer l’assistant:

 

Export du Certifica Child (Client), Pourquoi ?

Le certificat client doit être installé sur chaque machine cliente devant se connecter (via le VPN P2S) sur votre VNET Azure. La procédure décrite ci-dessous vous permettra de générer un fichier PFX (avec son mot de passe associé).

  1. Saisissez CertMgr.msc depuis le Menu Démarrer et lancez l’outil retourné dans les résultats de recherche
  2. La console « Certificats » apparaît. Développez « Personnel » > « Certificats« 
  3. Faites un Clic-droit sur HKP2SChildCert > Toutes les Tâches > Exporter…
  4. L’assistant suivant apparaît, cochez « Oui, exporter la clé privée » et cliquez sur « Suivant » :

  1. Cochez « Echange d’informations personnelles – PKCS #12 (.PFX) » et cliquez sur « Suivant » pour continuer :

  1. Cochez « Mot de passe« , spécifiez un mot de passe, sélectionnez AES256 comme algorithme de chiffrement et cliquez sur « Suivant » :

  1. Choisissez un emplacement pour stocker votre fichier .Pfx et cliquez sur « Suivant » :

  1. Enfin, cliquez sur « Terminer » pour fermer l’assistant :

Le fichier PFX doit être installé sur toutes les machines d’administration depuis lesquelles vous pouvez être amenés à vous connecter pour établir la connexion VPN P2S Azure.

 

#Déclarer le contenu de votre certificat Root sur Azure (Configuration Point-to-Site)

A l’aide de Notepad ou Notepad++, éditez le fichier .Cer (Certificat Root Exporté précédemment) et copiez le contenu de sa clé Public comme montré ci-dessous :

Ces informations doivent être déclarées côté Azure (Configuration Point-to-Site).

Pour ce faire, exécutez la commande Az CLI suivante :

Note importante : remplacez la valeur du paramètre « –public-cert-data » par le contenu du Cert Root que vous avez copié précédemment.

#Etape7 Declaration du Cert Root au niveau de la configuration Point-to-Site Azure
az network vnet-gateway root-cert create –resource-group hkdemorg –gateway-name hkdemovpngtw –name hkvpnp2scert –public-cert-data « MIIC6zCCAdOgAwIBAgIQN9CJJEC3KopF32cKXpvOLTANBgkqhkiG9w0BAQsFADAY
MRYwFAYDVQQDDA1IS1AyU1Jvb3RDZXJ0MB4XDTE4MDcyNzIwNDQyMFoXDTE5MDcy
NzIxMDQyMFowGDEWMBQGA1UEAwwNSEtQMlNSb290Q2VydDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAMHLP5DxRhA9nem2F2/nELeHLyjD+NSLl9NWjikO
I6fTF2gnl6+cmRfoFbuZmjl6ocS7h9g9bNatTDeN/AFQx1xyf7ZKp9nZryEM9VdC
HoaTGkMlmdiqmXmyHzxBH457s4spEvM4udCIrnCkczn8ocWX11ea96BF1ZaUJ6x7
t3o8V8FzvcVh/7zeoK8x+sQU/j8f6Qs20/prjFrrcZ7olI1C2R8eBZkBw1mEe1Nt
0txmd8lmkjWZJNi17V5C+SOxpWwuyZml/Hw186jNi4wvNXCg9nK3Wn0NLCfOkILN
oQIbvraz7yYWNBZLq/xKqSumGtF4aV0t9yL/0dRfENpkQD0CAwEAAaMxMC8wDgYD
VR0PAQH/BAQDAgIEMB0GA1UdDgQWBBQCR1tl1iycoP6oJDjKrWcRAh6+hTANBgkq
hkiG9w0BAQsFAAOCAQEABRpmIzysxcKEBrCm/EtgjOYoPaj5SlKD8wJhTk1BGXG0
OE9yLTeuIscmZygT1Wt20lAaWlJAqbRmuTkhXbbinttc+WOyWbqvWrAnsIbydVAP
DYqz0vOEfTIxROeAw+keorAc/jhmszBgLbkRAhJ9CDamutKtPGxNYq0lI9BAs46e
l109pxxz/6hDLGOJFNPXdZDWqceoxjtFhWnFNBMXj6Z/2NEIA3u474eI2hDoguRE
rz3NJ9qJyINrjf9ncg4Yc0/RlM3LaVhLjcLpCp31dkbfPXx1/3IqSusiiUUSFLHG
64XQ9jVxvozhkuUXqBbmKekCnOTfHPbIeHA5mcv9RA== »

#Téléchargez le Package « VPN Client »

Avant de télécharger le client VPN (Fichier .Exe), commencez par vérifier que la clé Public de votre certificat Root a bien été déclarée au niveau de la configuration Point-à-Site Azure.

Enfin, cliquez sur « Télécharger le client VPN » pour générer le client VPN à installer sur votre machine d’administration : il s’agit d’un .Exe qui configure automatiquement la connexion VPN avec toutes les informations que vous avez configurées tout au long de ce post.

Une fois téléchargé, Dé-zippez le fichier et exécutez le Setup File correspondant à la version de votre OS Client.
Dans mon cas, j’utilise une machine Windows 10 64-bit. Le fichier WIndowsAmd64\VpnClientSetupAmd64.exe a donc été exécuté :

Le Setup VPN Client installe et configure automatiquement la connexion VPN Suivante :

Cliquez sur le nom de la connexion (hkdemovnet) pour faire apparaître la boite de dialogue suivante :

Cliquez sur « Se connecter« , et ensuite sur « Connecter » pour établir la connexion VPN P2S :

Une fois connecté, le statut de la connexion passe à « Connecté« , vous pouvez également vérifier l’adresse IP qui vous a été attribuée depuis l’invite de commande > IPConfig /All et la comparer à celle qui apparaît depuis le volet « Configuration Point-à-Site »  :

Et voilà le tour est joué :).

N’hésitez pas à me laisser un commentaire si vous avez des questions.
A bientôt Dear Readers.

#HK

AD Guys, Hello again 🙂

Si vous souhaitez connaître la date d’expiration des password de vos comptes users AD, eh bien pouvez simplement exécuter le code PS suivant :

Requirements
  • Lancez Windows PowerShell en tant qu’Admin
  • Exécutez les lignes de codes ci-dessous depuis un DC (not recommended) ou une machine d’administration ayant les outils RSAT installés et notamment le module PowerShell « ActiveDirectory » (recommended :)).

 

HowTo : connaitre la date d’expiration des mots de passes de vos comptes users AD

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties « DisplayName », « msDS-UserPasswordExpiryTimeComputed » | Select-Object -Property « Displayname »,@{Name= »ExpiryDate »;Expression={[datetime]::FromFileTime($_. »msDS-UserPasswordExpiryTimeComputed »)}}

Tip : si vous souhaitez trier les informations retournées par « Date la plus récente », exécutez la commande suivante :

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties « DisplayName », « msDS-UserPasswordExpiryTimeComputed » | Select-Object -Property « Displayname »,@{Name= »ExpiryDate »;Expression={[datetime]::FromFileTime($_. »msDS-UserPasswordExpiryTimeComputed »)}} | Sort ExpiryDate -Descending

Le résultat retourné par cette commande est affiché dans la screenshot ci-dessous :

 

Hi Folks,

Une very Powerful « Security » feature a été introduite/intégrée à Azure Active Directory (Azure AD).

Il s’agit d’Azure AD Password Protection, disponible en « Public Preview » au moment de la rédaction de cet article, cette fonctionnalité vous permet de définir une liste de mots de passe à bannir (Banned passwords) pour réduire tout risque lié à l’utilisation de « Weak Password », tels que MonPrenom2018$, MaSociete2018! ou encore Password2018$.

Azure AD Password Protection vous permet de :

  1. Protéger les comptes utilisateurs hébergés au niveau de votre tenant Azure AD mais aussi dans votre infrastructure Active Directory (Locale/OnPrem) en empêchant les utilisateurs de sélectionner des mots de passe à partir d’une liste prédéfinie contenant plus de 500 mots de passes connus/communs proposés par MS.
  2. Configurer et appliquer votre stratégie de Protection de mots de passe Azure AD pour votre tenant Azure AD ainsi que votre infra AD locale depuis une seule interface d’Admin : Portail Azure > Azure AD Blade
  3. Personnaliser et configurer vos options de verrouillage de comptes utilisateurs : Smart Lockout
  4. Spécifier une Liste de mots de passe « Personnalisés » à interdire : mot s de passe spécifiques à votre organisation.

 

Pourquoi auriez-vous besoin d’Azure AD Password Protection ?

Eh bien la réponse est simple : interdire l’utilisation de certains mots de passe !

En effet, plusieurs utilisateurs pensent utiliser des mots de passe « Forts » qui respectent la politique relative aux mots de passe (critères de complexité/longueur de mot de passe…), des mots de passe de type : P@$$w0rd, P@$$w0rd2018, ou encore P@$$W0RD2018!….etc,

Alors que c’est complètement faux !!

Les Hackers savent comment les utilisateurs réfléchissent voire devinent certains mots de passe, c’est la raison pour laquelle il faut toujours garder à l’esprit les trois règles suivantes :

Las Hackers :
  • Savent comment les utilisateurs construisent leurs mots de passe : utilisation des caractères spéciaux tels que « $ » (à la place du S)
  • Savent que si des règles de complexité de password sont mises en place, la plupart des utilisateurs vont construire leurs mots de passe de la même manière : PREMIERE LETTRE MAJUSCULE, utilisation d’un chiffre ou caractère spécial à la fin…etc
  • Enfin, Les Hackers savent que les utilisateurs doivent changer leurs mots de passe de manière périodique, par conséquent, la plupart des utilisateurs ont tendance à garder une partie du mot de passe et changer deux ou trois caractères à la fin. eg : Remplacement du « MyP@$$w0rd2017! » par « MyP@$$w0rd2018! »

 

Note importante : Microsoft a publié une liste de « Best Practices » quant à l’utilisation des mots de passe [Password Guideline]. Je vous recommande la consultation de ce document.

 

L’application d’une stratégie de protection de mots de passe basée sur une liste de « Mots de passe Interdits » permet de répondre à cette contrainte de sécurité.

La fonctionnalité « Azure AD Password Protection », peut vous aider à réduire ce risque en appliquant une Password Policy sur vos environnements Cloud (users Azure AD) mais aussi pour vos infrastructures OnPremise.

 

Configurez votre stratégie AAD Password Protection & Smart Lockout en « Trois Clicks » !

La configuration de l’option de protection de mots de passe Azure AD ainsi que le Smart Lockout se fait en trois clicks. Voyons comment ça marche 🙂

Note importante: il faut savoir que par défaut, toutes les opérations de définition/changement/réinitialition de mots de passe associés aux comptes utilisateurs Azure AD Premium sont configurées pour utiliser l’Azure AD Password Protection. Cette option de protection s’appuie sur une liste de « Banned passwords » définie par défaut et maintenue par l’équipe Azure AD.

La bonne nouvelle c’est que vous avez toujours la possibilité de configurer une liste personnalisée de mots de passe « Interdits » au niveau de votre stratégie Azure AD Password Protection.

Pour ce faire, suivez les instructions suivantes.

 

#Step1 : Configurer la stratégie de protection de password pour votre Tenant Azure Active Directory

Connectez-vous sur le (New) portail Azure : https://portal.azure.com

Une fois authentifié, allez directement à :

Azure Active Directory > Sécurité > Méthodes d’authentification

Vous êtes automatiquement redirigé vers le Blade « GERER » > « Protection par mot de passe (Preview)« .

Sous « Mots de passe interdits personnalisés« , activez l’option « Appliquer la liste personnalisée » en cochant « Oui » et définissez la liste des mots de passe que vous souhaitez interdire au sein de votre tenant Azure AD.

Dans l’exemple suivant, plusieurs dizaines de mots de passes personnalisés « interdits » ont été ajoutés :

eg : HICHAM, Hicham, hicham, h!cham, h!ch@m, PARIS, Paris, paris, P@ris, P@r!s, p@ris, PASSWORD, Password, P@$$w0rd…etc

Note : ces mots de passe sont données juste à titre d’exemple o_O !

Personnalisez donc votre liste de mots de passe et cliquez ensuite sur « Enregister » pour appliquer cette stratégie.

#Step2 : Configurer les options de vérrouillage (Smart Lockout)

Vous avez pu constater que depuis le même Blade, deux options relatives au Smart Lockout sont disponibles :

  • Seul de verrouillage : nombre de tentatives échouées aboutissant à un Lockout du compte utilisateur AAD
  • Durée du verrouillage en secondes : la durée pendant laquelle le compte reste verrouillé

Comme illustré dans la capture d’écran ci-dessous, mes best practices sont :

Seul de verrouillage : 5

Durée du verrouillage en secondes : 1800 (30 minutes)

Configurez ces options en fonction de vos standards/policies de sécurité et cliquez sur « Enregister » pour que ces modifications soient prises en comptes.

#Step3 : Etendre votre politique de protection de password à votre infrastructure Active Directory locale (OnPrem)

Enfin, sachez que la nouvelle feature Azure AD Password Protection peut également être configurée sur votre infrastructure AD traditionnelle (environnement OnPrem ADDS).

Il suffit de cliquer sur « Oui » au niveau de l’option « Activer la protection par mot de passe sur Windows Server Active Directory »

Notez que deux modes existent lors de la rédaction du présent article :

Mode « Activée /Enforced » : la stratégique est appliquée et poussée sur vos W(ritable) Domain Controller

Mode « Surveillance /Audit Only » : la stratégie est configurée en mode « Audit Only ». Si des mots interdits faisant parti de la liste personnalisée des mots de passe interdits est utilisé, cette information est journalisée et remontera dans les logs AD, ce qui vous permettra de suivre et monitorer l’utilisation des mots de passe par vos network users.

Une fois activées, les mêmes options configurées précédemment sont donc poussées sur votre AD Local, ce qui vous permet d’appliquer les mêmes Security Policies aussi bien sur votre environnement Cloud (Tenant Azure AD) que sur votre infra AD locale.

Notez qu’il existe un certain nombre de prérequis et notamment le déploiement d’un agent sur chaque (Writable) Domain Controller de votre domaine AD local (ou chaque DC de chaque Domaine AD si vous en avez plusieurs).

Cet agent est disponible en téléchargement gratuit ici.

Si l’extension de l’option « Azure AD Password Protection » sur votre environnement AD locale vous intéresse, je vous invite à consulter cet article pour en savoir plus.

 

Comme vous le savez, Microsoft propose un module PS qui vous  permet de créer, gérer et administrer l’annuaire Active Directory (rôle ADDS) via Windows PowerShell : Il s’agit du module « ActiveDirectory « .

Pour obtenir la liste complète des Cmd-lets fournies avec ce module, exécutez la commande suivante :

Get-Command -Module ActiveDirectory

Pour connaître le nombre exact de Cmd-lets fournies avec le module ActiveDirectory, exécutez la commande suivante :

(Get-Command -Module ActiveDirectory).Count

Comme montré ci-dessus, 147 Cmd-lets au total (au moment de l’écriture de cet article) sont disponibles avec le module ActiveDirectory.

Aujourd’hui, nous allons uniquement nous intéresser à la Cmd-Let « Get-ADUser« .

Celle-ci sera utilisée pour :

Connaître la date de changement de mot de passe des utilisateurs de notre annuaire AD

Lister tous les comptes utilisateurs ayant un mot de passe qui n’expire jamais !

 

Introduction à la Cmd-let « Get-ADUser »

La Cmd-let « Get-ADUser » vous permet de lister un ou plusieurs (Objets) utilisateurs Active Directory.

A l’aide de certains paramètres Get-ADUser, vous pouvez réaliser des requêtes/opérations avancées sur des objets « Utilisateurs » ainsi que leurs propriétés.

Quelques exemples d’utilisation :

  • Lister tous les utilisateurs qui ne sont pas connectés depuis 180 jours
  • Lister tous les utilisateurs qui font parti du département « Marketing »
  • Lister tous les utilisateurs qui ont un mot de passe qui n’expire « Jamais »
  • Lister tous les comptes utilisateurs dont le mot de passe expire dans une semaine
  • ..

Vous pouvez consulter cet article pour en savoir plus sur la Cmd-let Get-ADUser.

Paramètres associés avec la Cmd-Let « Get-ADUser »

Pour lister tous les paramètres et options disponibles avec la Cmd-Let Get-ADUser, je vous invite à exécuter la commande suivante :

help Get-ADUser

 

HowTo : connaitre la date de modification/changement du mot de passe de vos utilisateurs AD

Pour connaitre la date à laquelle un mot de passe a été changé/modifié, nous allons d’abord récupérer le nom de la propriété qui stocke cette information.

Pour ce faire, je vais dans l’exemple suivant exécuter la commande Get-ADUser -identity hicham.kadiri -properties * pour afficher toutes les propriétés de la Cmd-Let Get-ADUser (ou hicham.kadiri est le nom d’utilisateur de mon compte AD).

Comme illustré dans la capture d’écran précédente, la propriété qui stocke la date de changement du mot de passe est « PasswordLastSet« .

Dans l’exemple suivant, nous allons afficher la date à laquelle le mot de passe du compte utilisateur « hicham.kadiri » a été changé, seules les propriétés « Name » et « PasswordLastSet » sont sélectionnées :

Get-ADUser -identity hicham.kadiri  -Properties Name, PasswordLastSet | Select Name, PasswordLastSet

Pour obtenir la même information mais au niveau de votre domaine AD (tous les comptes utilisateurs du domaine), la commande suivante est exécutée :

Get-ADUser -Filter * -Properties Name, PasswordLastSet | Select Name, PasswordLastSet

Comme vous pouvez le conster, les informations (dates & heures) retournées au niveau de la colonne « PasswordLastSet » ne sont pas triées.

Si vous souhaitez trier ces données (du plus récent au plus ancien dans l’exemple suivant), la commande suivante est utilisée :

Get-ADUser -Filter * -Properties Name, PasswordLastSet | Select Name, PasswordLastSet | Sort PasswordLastSet -Descending

Tip : lister tous les comptes utilisateurs qui ont un mot de passe qui n’expire jamais peut également être utile car si vous avez défini une nouvelle stratégie de mot de passe (au niveau du domaine ou OU via une PSO/FGPP), celle-ci ne s’appliquera jamais sur les comptes utilisateurs ayant l’option « Le mot de passe n’expire jamais » cochée.

Nous allons dans l’exemple suivant lister tous les comptes utilisateurs dont le mot de passe n’expire jamais, et afficher uniquement les trois propriétés suivantes : Nom, PasswordLastSet et PasswordNeverExpires :

Get-ADUser -Filter * -Properties Name, PasswordLastSet, PasswordNeverExpires | Select Name, PasswordLastSet, PasswordNeverExpires | Sort PasswordLastSet -Descending

Enfin, si vous souhaitez exporter ces informations vers un fichier CSV pour les traiter/présenter plus tard, exécutez la commande suivante :

Get-ADUser -Filter * -Properties Name, PasswordLastSet, PasswordNeverExpires | Select Name, PasswordLastSet, PasswordNeverExpires | Sort PasswordLastSet -Descending | Export-csv C:\AuditAD.csv

Hello World,

Microsoft propose sur son site en-US un « Free eBook » assez intéressant sur Microsoft Azure.

les items/sujets suivant sont étudiés/détaillés dans cet eBook  :

  • Modèles de conception, Principes de Design et bonnes pratiques liés à l’utilisation de Microsoft Azure
  • Conception d’environnements Cloud Azure Hautement disponible, performant et scalable
  • IoT
  • Serverless
  • DevOps
  • Gestion des coûts sous Azure
  • Monitoring et Security avec Azure
  • Eh bien plus encore.

L’eBook est disponible en free Download ici.

Il suffit de remplir le formulaire pour pouvoir le télécharger.

Enjoy !

#HK

 

Introduction

Une séquence de tâche dans MDT contient l’ensemble des actions qui vont être effectuées sur le poste durant le déploiement.

Plusieurs modèles sont disponibles dès l’installation de MDT :

  • Standard Client Task Sequence: Séquence de tâche généralement utilisée pour le déploiement de poste de travail.
  • Standard Client Replace Task Sequence: Permet d’effectuer la capture des données d’un poste à l’aide de USMT.
  • Custom Task Sequence : Ce modèle ne contient par défaut qu’une action (l’installation d’application). Suite à la création de la séquence de tâche, il est possible de procéder à l’ajout d’autres actions.
  • Sysprep and Capture: Permet la génération d’une image de référence. La séquence de tâche effectue un sysprep puis une capture du poste.
  • Standard Client Upgrade Task Sequence: Séquence de tâche nécessaire pour effectuer une mise à niveau d’un poste de travail Windows 7, Windows 8, Windows 8.1
  • Litetouch OEM Task Sequence: Nécessaire pour précharger des images d’un système d’exploitation. Ce modèle est généralement utilisé par les fabricants d’ordinateur.
  • Standard Server Task Sequence: Séquence de tâche généralement utilisée pour le déploiement de système d’exploitation Windows Server. Impossible d’utiliser USMT (User State Migration Tools) avec ce type de séquence de tâche. L’outil USMT n’étant pas compatible avec les systèmes d’exploitation serveur.
  • POST OS Installation Task Sequence: Séquence de tâche permettant d’effectuer des actions suite aux déploiements d’un OS. Très pratique pour des systèmes d’exploitation serveur, ils sont rarement utilisés avec des systèmes clients.
  • Deploy to VHD Client Task Sequence: Séquence de tâche identique au modèle Standard Client Task Sequence. Néanmoins le déploiement est fait dans un VHD et non sur un disque physique. La création du fichier VHD est effectuée par la séquence de tâches.

 

Il est possible néanmoins de créer ses propres modèles. Notez que sans la création d’une séquence de tâches, aucun déploiement n’est possible. Suite à sa création, deux fichiers xml (ts.xml et unattend.xml) sont créés et stockés dans le dossier Control. Le premier contient toutes les opérations qui vont être opérées sur le poste ainsi que les valeurs. Concernant le second, il permet d’effectuer une installation du système d’exploitation de manière silencieuse. Les deux fichiers peuvent être modifiés depuis la MDT.

HowTo : Créer votre séquence de tâches

Depuis la console MDT, effectuez un clic droit sur Task Sequences.  Dans le menu contextuel, sélectionnez New Task Sequence.

Un assistant se lance, saisissez un ID unique ainsi que le nom de la séquence de tâches. Concernant le nom, ce dernier s’affichera dans l’assistant de déploiement lors du déploiement d’un poste de travail.

A l’aide de la liste déroulante, sélectionnez Standard Client Task Sequence puis cliquez sur Next.

Il est nécessaire de sélectionnez le système d’exploitation qui va être déployé. Depuis la fenêtre Select OS, sélectionnez l’image Windows 10 puis cliquez sur Next.

Saisissez une Clé si vous souhaitez activer Windows 10 à l’aide d’une clé MAK. Dans le cas d’une licence KMS ou d’une version d’évaluation, laissez la valeur par défaut.

Saisissez les informations nécessaires dans la fenêtre OS Settings (Organisation, page de démarrage IE, Nom complet).

Le mot de passe de l’administrateur local doit être configuré. Ce dernier sera configuré lors du déploiement du poste de travail. Ce mot de passe sera stocké de manière crypter dans le fichier unattend.xml.

Validez les fenêtres suivantes à l’aide du bouton Next afin de procéder à la création de la séquence de tâches. Cette dernière est maintenant présente dans la console MDT.

Les deux fichiers XML utilisés sont présents dans le dossier Control.

 

Cet article vous a plu ?

Il s’agit d’un extrait de l’eBook « MDT 8450 – Déploiement et Configuration en Entreprise [Volume 1] », disponible sur BecomeITExpert.com, cliquez sur l’image ci-dessous pour en savoir plus :

 

J’ai récemment réalisé un audit de plusieurs infrastructures Windows Server « Core ».

J’ai constaté que la Corbeille ($RecycleBin) de plusieurs dizaines de serveurs Windows Server Core (de 2008 à 2016) occupait + de 5 GB d’espace disque.

Il s’agit ici de Disque physique : matériel non supporté > pas d’extension de volume possible !

Pour vider la corbeille et libérer cet espace disque, il fallait exécuter la commande suivante :

Note importante : La commande suivante doit être exécutée depuis une CMD.exe lancée en tant qu’Admin, si vous établissez une connexion Remote Shell Windows (WinRS), vérifiez que le compte utilisé est bien local Admin sur les machines distantes.

rmdir /s %systemdrive%\$Recycle.bin

Confirmez la suppression en cliquant sur Y(es) et voilà le tour est joué :).

J’espère que cette p’tite commande pourra vous être utile ^_^.

A bientôt

#HK

 

MVP

J’ai l’immense honneur de vous annoncer le renouvellement de mon titre Microsoft « Most Valuable Professional » pour l’année 2018/2019.

Je fais désormais partie des 16 MVP Français « Cloud and Datacenter Management ».

WTF

Un « Big Thanks » à Microsoft, Martine THIPHAINE et toute l’équipe MS pour le temps consacré à l’étude du renouvellement de mon titre.

Très honoré de faire partie de la « Biggest IT Community in the World » :).

What Next ?

Plusieurs contributions à venir, à commencer par :

Plusieurs séries d’articles autour de Microsoft Azure {Azure CLI 2.0 – Azure VM – Azure Batch – Azure Automation – Azure Monitor – Azure Networking – Azure Active Directory – ASR/Migration de Datacenter vers MS Azure – Azure KeyVault – Azure Backup, Azure Watcher – Azure SQL…)

Plusieurs séries d’articles autour de technologies Microsoft orientées « Infra & Virtu » : RDS {2012 R2 /2016 : Design, Deployment, Security, Tuning & Migration} – Windows Server 2016 {HowTo : OS Hardening, IIS, Bitlocker /AppLocker, Security, Group Policy Objects, DFS/R, BranchCach, ADFS …} – VBS /BATCH /PS Scripting (avec des advanced scenarios)

Plusieurs eBooks sur différentes technos Microsoft orientés Infrastructure.

Plusieurs scripts (.Bat /PS) de déploiement /automation sur différentes technos Microsoft orientées Infrastructure.

Mes projets d’écritures en cours :

Concevoir et déployer son infrastructure RDS 2016 sur Azure (Full RDS Cloud Platform)

Azure Backup – Concevoir et implémenter sa politique de Sauvegarde dans le Cloud

Azure KeyVault – Concevoir et implémenter sa solution de Key/Secret Management dans le Cloud

Azure Active Directory – Etendre son annuaire AD local vers le Cloud

Azure Security – Guide du Consultant Cloud/Sécurité

…Eh bien plus encore

 

J’en profite de ce post pour remercier tous les followers (LinkedIn, Twitter, Blog …) ainsi que les personnes qui votent et partagent mes articles & actus.

A bientôt pour de nouvelles aventures.

Keep in touch :).

Hicham KADIRI