Gérer les listes de contrôle d’accès des ports dans VMM
Dans System Center Virtual Machine Manager (VMM), vous pouvez configurer et gérer de manière centralisée les listes de contrôle d’accès aux ports Hyper-V (ACL). Les listes de contrôle d’accès de port peuvent être configurées pour une infrastructure gérée par le contrôleur de réseau et pour les réseaux qui ne sont pas gérés par le contrôleur de réseau.
- Une liste de contrôle d’accès de port est un ensemble de règles qui filtrent le trafic au niveau du port de couche 2. Dans VMM, une liste de contrôle d'accès filtre l’accès à un objet VMM particulier. Un objet réseau ne peut avoir plus d’une liste de contrôle d’accès de port attachée.
- Une liste de contrôle d’accès contient des règles et peut être attachée à n’importe quel nombre d’objets réseau. Vous pouvez créer une liste de contrôle d’accès sans règles, puis ajouter des règles ultérieurement. Chaque règle de liste de contrôle d’accès correspond à une seule ACL de port.
- Si une liste de contrôle d’accès a plusieurs règles, elles sont appliquées en fonction de la priorité. Une fois qu’une règle correspond à des critères et qu’elle est appliquée, aucune autre règle n’est traitée.
- Une liste de contrôle d’accès des ports de paramètres globaux est appliquée à toutes les cartes réseau virtuelles de machine virtuelle dans une infrastructure. Il n’existe aucun type d’objet distinct pour les paramètres globaux. Au lieu de cela, l’ACL du port des paramètres globaux est attaché au serveur d’administration VMM.
- Les paramètres de liste de contrôle d’accès du port sont exposés uniquement par le biais d’applets de commande PowerShell dans VMM et ne peuvent pas être configurés dans la console VMM.
- Les listes de contrôle d’accès des ports peuvent être appliquées à :
- Sous-réseaux virtuels et cartes dans un déploiement de contrôleur de réseau.
- Sous-réseaux virtuels, cartes réseau, réseaux de machines virtuelles et serveur d’administration VMM dans les réseaux qui ne sont pas gérés par le contrôleur de réseau.
Avant de commencer
- Pour appliquer une liste de contrôle d’accès aux objets gérés par le contrôleur de réseau, vous utilisez l’indicateur ManagedByNC et définissez-le sur True. S’il n’est pas défini sur True, la liste de contrôle d’accès s’applique uniquement aux objets réseau qui ne sont pas gérés par le contrôleur de réseau.
- Les types ACL ne sont pas interchangeables. Vous ne pouvez pas appliquer une liste de contrôle d’accès avec ManagedByNC définie sur false, aux objets gérés par le contrôleur de réseau et inversement.
- La principale différence entre ces deux types de listes de contrôle d’accès est que vous devez corriger chaque carte réseau après l’application de la liste de contrôle d’accès sur les objets qui ne sont pas gérés par le contrôleur de réseau.
- Il existe également une différence dans les plages de priorité :
- ACL de port Hyper-V (non gérées par le contrôleur de réseau) : 1 - 65535
- ACL de port SDN (gérées par le contrôleur de réseau) : 1 - 64500
- Vous avez besoin d’autorisations d’administrateur VMM complètes pour attacher une liste de contrôle d’accès de port aux paramètres globaux. Pour attacher la liste de contrôle d’accès aux objets VMM (réseaux de machines virtuelles, sous-réseaux, cartes réseau virtuelles), vous devez être administrateur VMM ou administrateur client ou utilisateur libre-service.
Scénarios non pris en charge
Voici une liste de scénarios non pris en charge :
- Gérez des règles individuelles pour une seule instance lorsque la liste de contrôle d’accès est partagée avec plusieurs instances. Toutes les règles sont gérées de manière centralisée au sein de leurs listes de contrôle d’accès parentes et s’appliquent partout où la liste de contrôle d’accès est attachée.
- Attachez plusieurs ACL à une entité.
- Appliquez des ACL de port aux cartes réseau virtuelles dans la partition parente Hyper-V (système d’exploitation de gestion).
- Créez des règles de liste de contrôle d’accès de port dans VMM qui incluent des protocoles au niveau IP (autres que TCP ou UDP). D’autres protocoles sont toujours pris en charge en mode natif par Hyper-V.
- Appliquez des ACL de port à des réseaux logiques, des sites réseau (définitions de réseau logique), des réseaux locaux virtuels de sous-réseau et d’autres objets réseau VMM qui ne sont pas mentionnés comme pris en charge.
Étapes du déploiement
Utilisez l’interface PowerShell VMM pour effectuer les opérations suivantes :
Définissez les listes de contrôle d’accès et les règles de port.
- Les règles sont appliquées aux ports de commutateur virtuel sur les serveurs Hyper-V en tant qu’ACL de port étendu (VMNetworkAdapterExtendedAcl). Cela signifie qu’ils peuvent s’appliquer uniquement aux hôtes exécutant Windows Server 2012 R2 ou version ultérieure, car VMM ne crée pas d’ACL de port Hyper-V héritées (VMNetworkAdapterAcl) pour les versions antérieures.
- Les règles sont appliquées aux ports de commutateur virtuel sur les serveurs Hyper-V en tant que listes de contrôle d’accès de port étendues (VMNetworkAdapterExtendedAcl). Cela signifie qu’ils ne peuvent s’appliquer qu’aux hôtes exécutant Windows Server 2016 ou version ultérieure, car VMM ne crée pas d’ACL de port Hyper-V héritées (VMNetworkAdapterAcl) pour les versions antérieures.
- Les règles sont appliquées aux ports de commutateur virtuel sur les serveurs Hyper-V en tant qu’ACL de port étendu (VMNetworkAdapterExtendedAcl). Cela signifie qu’ils ne peuvent s’appliquer qu’aux hôtes exécutant Windows Server 2019 ou version ultérieure, car VMM ne crée pas d’ACL de port Hyper-V héritées (VMNetworkAdapterAcl) pour les versions antérieures.
- Toutes les règles de liste de contrôle d’accès des ports définies dans VMM sont avec état pour TCP. Vous ne pouvez pas créer de règles de liste de contrôle d’accès TCP sans état.
Attachez une liste de contrôle d’accès de port aux paramètres globaux. Cela applique la liste de contrôle d’accès à toutes les cartes réseau virtuelles de machine virtuelle.
Attachez les ACL de port aux réseaux de machines virtuelles, sous-réseaux de machines virtuelles ou cartes réseau virtuelles de machine virtuelle.
Gérer les règles de liste de contrôle d’accès des ports.
Créer des listes de contrôle d’accès de port
Ouvrez PowerShell dans VMM.
Créez une liste de contrôle d’accès de port avec l’applet de commande New-SCPortACL .
New-SCPortACL [-Name] <String> [-Description <String>] [-JobVariable <String>] [-ManagedByNC] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-Owner <String>] [-PROTipID <Guid>] [-RunAsynchronously] [-UserRole <UserRole>] [-VMMServer <ServerConnection>] [<CommonParameters>]
Paramètres
Paramètre | Détails |
---|---|
Nom; Description | Nom et description de la liste de contrôle d’accès du port |
JobVariable | Stocke la progression du travail |
ManagedByNC | Spécifie si les objets sont gérés par le contrôleur de réseau |
OnBehalfOfUser/OnBehalfOfRole | Exécuter un travail avec un nom d’utilisateur ou un rôle |
Owner | Spécifie le propriétaire d’un objet VMM sous la forme d’un compte d’utilisateur de domaine valide. Exemple : Contoso\PattiFuller ou PattiFuller@Contoso |
ProTipID | ID de ProTip qui a déclenché l’action |
RunAsychronously | Indique si le travail s’exécute de façon asynchrone |
UserRole | Spécifie le rôle d’utilisateur |
VMMServer | Spécifie le serveur VMM |
CommonParameters | En savoir plus |
Exemples
Créez une liste de contrôle d’accès de port pour les objets gérés par le contrôleur de réseau « DemoACLManagedByNC » :
PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN
Créez une liste de contrôle d’accès de port pour les objets non gérés par le contrôleur de réseau « DemPortACL » :
PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"
Définir des règles de liste de contrôle d’accès de port pour une liste de contrôle d’accès de port
Ouvrez PowerShell dans VMM.
Créez une ou plusieurs règles avec l’applet de commande New-SCPortACLRule .
New-SCPortACLrule -PortACL <PortACL> -Name <string> [-Description <string>] -Type <Inbound | Outbound> -Action <Allow | Deny> -Priority <uint16> -Protocol <Tcp | Udp | Any> [-LocalAddressPrefix <string: IPAddress | IPSubnet>] [-LocalPortRange <string:X|X-Y|Any>] [-RemoteAddressPrefix <string: IPAddress | IPSubnet>] [-RemotePortRange <string:X|X-Y|Any>]
Paramètres
Paramètre | Détails |
---|---|
Nom, description | Nom et description de la règle |
Type | Spécifie la direction du trafic pour laquelle la liste de contrôle d’accès est appliquée (entrante ou sortante) |
Action | Spécifie si la liste de contrôle d’accès autorise ou bloque le trafic (Autoriser ou Refuser) |
LocalAddressPrefix | Spécifie l’adresse IP source ou le sous-réseau utilisé pour identifier le trafic qui doit être filtré |
LocalPortRange | Spécifie la plage de ports source utilisée pour identifier le trafic |
RemoteAddressPrefix | Spécifie l’adresse IP de destination ou le sous-réseau utilisé pour identifier le trafic pour le filtrage |
RemotePortRange | Spécifie la plage de ports de destination utilisée pour identifier le trafic. |
Protocol | Spécifie le protocole pour lequel la règle est appliquée |
Priorité | Spécifiez la priorité de la règle dans la liste de contrôle d’accès du port. Les règles sont appliquées selon l’ordre. Définissez une priorité comprise entre 1 et 65535, où le nombre le plus bas a la priorité la plus élevée. Les règles de contrôle d’accès des ports pour les objets gérés par le contrôleur de réseau doivent être définies sur une valeur égale ou supérieure à 100. Le contrôleur de réseau ne prend pas en charge la priorité inférieure à 100. |
Exemples
Créez une liste de contrôle d’accès de port et stockez l’objet dans $portACL :
PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"
Créez une règle ACL de port pour autoriser l’accès RDP à partir d’un sous-réseau distant :
PS: C:\> New-SCPortACLRule -Name "AllowRDPAccess" -PortACL $portACL -Description "Allow RDP Rule from a subnet" -Action Allow -Type Inbound -Priority 110 -Protocol Tcp -LocalPortRange 3389 -RemoteAddressPrefix 10.184.20.0/24
Modifiez la priorité d’une règle de liste de contrôle d’accès :
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220
La première commande obtient la règle de liste de contrôle d’accès du port « AllowRDPAccess ». La deuxième commande modifie la priorité de la règle sur 220.
Modifiez la règle de liste de contrôle d’accès du port pour la plage d’adresses de destination et le protocole d’une règle :
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp
La première commande récupère la règle AllowRDPAccess. La deuxième modifie le protocole en UDP et définit la destination sur le sous-réseau 172.185.21.0/24.
Attacher et détacher des listes de contrôle d’accès des ports
Une liste de contrôle d’accès de port peut être attachée aux paramètres globaux, aux réseaux de machines virtuelles, aux sous-réseaux de machines virtuelles et aux cartes réseau virtuelles. Une liste de contrôle d’accès de port attachée aux paramètres globaux s’applique par défaut à toutes les cartes réseau virtuelles de machine virtuelle.
Ouvrez PowerShell dans VMM.
Attachez une liste de contrôle d’accès du portail à l’aide de l’applet de commande Set-SCVMMServer .
Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
Paramètres
Paramètre | Détails |
---|---|
Serveur VMM | Nom du serveur VMM sur lequel la liste de contrôle d’accès du port est appliquée |
PortACL | Attache éventuellement la liste de contrôle d’accès de port spécifiée aux paramètres globaux |
Exemples
Attachez une liste de contrôle d’accès aux paramètres globaux :
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl
Détachez une liste de contrôle d’accès des paramètres globaux :
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL
Attachez une liste de contrôle d’accès à un réseau de machines virtuelles lors de la création :
New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Attachez une liste de contrôle d’accès à un réseau de machines virtuelles existant :
Set-SCVMNetwork -PortACL $acl`
Attachez une liste de contrôle d’accès à un sous-réseau de machine virtuelle lors de la création :
New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Attachez une liste de contrôle d’accès à un sous-réseau de machine virtuelle existant :
Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]
Récupérer et afficher les listes de contrôle d’accès et les règles de port
Ouvrez PowerShell dans VMM.
Exécutez l’applet de commande Get-SCPortACL pour récupérer et afficher une liste de contrôle d’accès de port :
Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Exécutez Get-SCPortACLRule pour récupérer et afficher une règle :
Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Paramètres
Paramètre | Détails |
---|---|
Aucun paramètre | Récupère toutes les listes de contrôle d’accès |
Nom/ID | Récupérer par nom ou GUID |
OnBehalfOfUser/OnBehalfOfUserRole | Exécuter avec un nom d’utilisateur ou un rôle |
VMMServer | Récupérer des listes de contrôle d’accès sur un serveur VMM spécifique |
CommonParameters | En savoir plus |
Exemples
Récupérez une liste de contrôle d’accès spécifique :
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
Obtenir des règles pour une liste de contrôle d’accès spécifique :
PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"
Obtenez toutes les règles pour la liste de contrôle d’accès :
PS: C:> Get-SCPortACLRule -PortACL $portACL
Modifier les listes de contrôle d’accès et les règles de port
Ouvrez PowerShell dans VMM.
Exécutez l’applet de commande Set-SCPortACL pour modifier une liste de contrôle d’accès de port :
Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
Exécutez Remove-SCPortACL pour supprimer une liste de contrôle d’accès :
Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
Paramètres
Paramètre | Détails |
---|---|
Nom/Description | Nom et description de la liste de contrôle d’accès du port |
JobVariable | Stocke la progression du travail |
OnBehalfOfUser/OnBehalfOfUserRole | Exécuter avec un nom d’utilisateur ou un rôle |
ProTipID | ID de ProTip qui a déclenché l’action |
RunAsynchronously | Indique si le travail s’exécute de façon asynchrone |
Confirmer | Invites avant d’exécuter le travail |
WhatIf | Affiche ce qui se passe sans exécuter la commande |
Exemples
Définissez une description de liste de contrôle d’accès :
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"
La première applet de commande récupère la liste de contrôle d’accès ; la deuxième définit la description sur la liste de contrôle d’accès.
Supprimez une liste de contrôle d’accès :
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL
La première applet de commande récupère la liste de contrôle d’accès ; la seconde la supprime.