Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Centre de ressourcesBlog
Sécurisez la communication à distance PowerShell en utilisant des points de terminaison contraints

Sécurisez la communication à distance PowerShell en utilisant des points de terminaison contraints

Feb 11, 2015

PowerShell Remoting est activé par défaut dans Windows Server 2012 (et versions ultérieures), et bien que de nombreux services informatiques considèrent cela comme un risque de sécurité potentiel, PowerShell est en fait l'une des méthodes les plus sécurisées pour administrer des serveurs si les meilleures pratiques sont suivies. Dans cet article, je vais vous montrer comment configurer Windows Server 2012 R2 pour accepter les connexions PowerShell à distance d'un groupe spécifique d'utilisateurs, et comment restreindre les cmdlets qui peuvent être exécutées.

Quels sont les points de terminaison contraints ?

Les points de terminaison distants déterminent les utilisateurs qui peuvent se connecter à un appareil avec PowerShell Remoting, ainsi que ce qu'ils peuvent faire une fois authentifiés. Le point de terminaison PowerShell par défaut permet aux utilisateurs qui sont membres du groupe intégré Administrators et Remote Management Users de se connecter à distance et expose toutes les cmdlets et fonctions disponibles sur l'appareil.

La bonne nouvelle est que vous pouvez créer vos propres points de terminaison constrained et restreindre ce que les utilisateurs peuvent faire, vous permettant ainsi de minimiser les risques liés à l'autorisation de la remoting PowerShell à des fins d'administration.

Créez des points de terminaison contraints dans Windows Server 2012 R2

Créons notre propre point de terminaison contraint dans Windows Server 2012 R2. Connectez-vous avec les privilèges d'administrateur local et cliquez sur l'icône bleue PowerShell dans la barre des tâches du bureau.

  • Pour voir les points de terminaison existants sur le serveur, tapez Get-PSSessionConfiguration dans l'invite de PowerShell et appuyez sur ENTRÉE.
  • Dans la console PowerShell, vous devriez voir les quatre points de terminaison par défaut.

Pour restreindre les cmdlets et les fonctions qu'un utilisateur peut exécuter lorsqu'il se connecte au point de terminaison contraint, nous devons créer un fichier de configuration. Dans la console PowerShell, tapez le cmdlet ci-dessous et appuyez sur ENTRÉE. New-PSSessionConfigurationFile crée un nouveau fichier de configuration appelé PrintAdmin.pssc et définit des restrictions incluant la limitation des utilisateurs distants aux fonctions qui font partie du module PowerShell PrintManagement.

      New-PSSessionConfigurationFile – Path PrintAdmin.pssc – SessionType RestrictedRemoteServer -LanguageMode NoLanguage – ExecutionPolicy Restricted – ModulesToImport PrintManagement -VisibleFunctions Get-Printer
      

NoLanguage limite les utilisateurs à exécuter uniquement des cmdlets et des fonctions, c'est-à-dire qu'aucun bloc de scripts, variables ou opérateurs ne peut être utilisé. La valeur –SessionType RestrictedRemoteServer limite les utilisateurs aux fonctions proxy suivantes : Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Default, et Select-Object. La valeur Restricted pour le paramètre –ExecutionPolicy empêche également l'exécution de scripts. Notez qu'il existe également un paramètre –VisibleCmdlets qui peut être utilisé si les modules que vous souhaitez importer contiennent des cmdlets.

Maintenant que nous avons un fichier de configuration, nous pouvons enregistrer un nouveau point de terminaison appelé Helpdesk:

      Register-PSSessionConfiguration -Name Helpdesk -Path PrintAdmin.pssc –ShowSecurityDescriptorUI
      
Image

On vous demandera de confirmer que vous souhaitez configurer le nouvel endpoint, redémarrer le service WinRM et configurer les permissions d'accès à l'endpoint. Dans cet exemple, je vais donner à un groupe appelé Helpdesk la permission 'Exécuter (Invoke)' sur le nouvel endpoint. N'oubliez pas de donner au groupe Helpdesk la permission de gérer les imprimantes sur l'appareil distant, sinon get-printer échouera.

Si vous exécutez Get-PSSessionConfiguration à nouveau, vous pourrez voir le nouvel endpoint listé.

Connectez-vous à un Endpoint contraint

Maintenant, connectez-vous à l'endpoint depuis une machine distante. Connectez-vous à Windows 8 avec un utilisateur qui est membre du groupe Helpdesk ou du groupe auquel vous avez attribué des permissions sur l'endpoint. Ouvrez une invite PowerShell et exécutez la commande ci-dessous, en remplaçant contososrv1 par le nom du serveur distant :

      Enter-PSSession -ComputerName contososrv1 -ConfigurationName Helpdesk
      
Image

Une fois connecté au serveur distant, l'invite de commande changera en conséquence pour indiquer que vous travaillez avec un appareil distant. Tapez get-command et appuyez sur ENTRÉE, et vous verrez que la liste des fonctions et cmdlets disponibles est restreinte par le point de terminaison. Dans cet exemple, il ne vous reste que les 7 fonctions proxy autorisées par le type de session RestrictedRemoteServer et la fonction get-printer spécifiée dans le fichier de configuration du point de terminaison.

Partager sur

En savoir plus

À propos de l'auteur

Asset Not Found

Russell Smith

Consultant en TI

Consultant en TI et auteur spécialisé dans les technologies de gestion et de sécurité. Russell possède plus de 15 ans d'expérience dans le domaine des TI, il a écrit un livre sur la sécurité Windows et a coécrit un texte pour la série de cours académiques officiels de Microsoft (MOAC).