VMM’de bağlantı noktası ACL’lerini yönetme

Önemli

Virtual Machine Manager'ın (VMM) bu sürümü desteğin sonuna ulaştı. VMM 2022'ye yükseltmenizi öneririz.

System Center - Virtual Machine Manager'da (VMM), Hyper-V bağlantı noktası erişim denetim listelerini (ACL' ler) merkezi olarak yapılandırabilir ve yönetebilirsiniz. Bağlantı noktası ACL'leri hem Ağ Denetleyicisi tarafından yönetilen yapı hem de Ağ Denetleyicisi tarafından yönetilmeyen ağlar için yapılandırılabilir.

  • Bağlantı noktası ACL’si, 2. katman bağlantı noktası seviyesinde trafiği filtreleyen bir kurallar dizisidir. VMM'deki bir bağlantı noktası ACL'si, belirli bir VMM nesnesine erişimi filtreler. Bir ağ nesnesine birden fazla bağlantı noktası ACL’si ekleyemezsiniz.
  • ACL kurallar içerir ve herhangi bir sayıda ağ nesnesine eklenebilir. Bir ACL’yi kuralsız olarak oluşturup kuralları daha sonra eklemeniz mümkündür. Her ACL kuralı yalnızca bir bağlantı noktası ACL'sine karşılık gelir.
  • Bir ACL'nin birden çok kuralı varsa, bunlar önceliğe göre uygulanır. Bir kural, ölçütlerle eşleşip uygulandıktan sonra başka hiçbir kural işleme alınmaz.
  • Genel ayarlar bağlantı noktası ACL’si, bir altyapıdaki tüm VM sanal ağ bağdaştırıcılarına uygulanır. Genel ayarlar için ayrı bir nesne türü yoktur. Ancak genel ayarlar bağlantı noktası ACL’si, VMM yönetim sunucusuna eklidir.
  • Bağlantı noktası ACL ayarları yalnızca VMM'deki PowerShell cmdlet'leri aracılığıyla sunulur ve VMM konsolunda yapılandırılamaz.
  • Bağlantı noktası ACL’leri şunlara uygulanabilir:
    • Bir Ağ Denetleyicisi dağıtımdaki sanal alt ağlar ve bağdaştırıcılar.
    • Ağ Denetleyicisi tarafından yönetilmeyen ağlardaki sanal alt ağlar, ağ bağdaştırıcıları, VM ağları ve VMM yönetim sunucusu.

Başlamadan önce

  • Ağ Denetleyicisi tarafından yönetilen nesnelere bir ACL uygulamak için ManagedByNC bayrağını True olarak ayarlamanız gerekir. True olarak ayarlı değilse, ACL yalnızca Ağ Denetleyicisi tarafından yönetilmeyen ağ nesneleri için geçerlidir.
  • ACL türleri birbirinin yerine kullanılamaz. ManagedByNCdeğeri false olarak ayarlanmış bir ACL'yi Ağ Denetleyicisi tarafından yönetilen nesnelere uygulayamazsınız ve bunun tersi de geçerlidir.
  • Bu iki ACL türü arasındaki temel fark, Ağ Denetleyicisi tarafından yönetilmeyen nesnelere ACL uyguladıktan sonra her ağ bağdaştırıcısını düzeltmeniz gerektiğidir.
  • Öncelik aralıklarında da bir fark vardır:
    • Hyper-V bağlantı noktası ACL’leri (Ağ Denetleyicisi tarafından yönetilmeyen): 1 - 65535
    • SDN bağlantı noktası ACL’leri (Ağ Denetleyicisi tarafından yönetilen): 1 - 64500
  • Bir bağlantı noktası ACL’sini genel ayarlara eklemek için tam VMM yönetici izinlerine ihtiyacınız vardır. ACL'yi VMM nesnelerine (VM ağları, alt ağlar, sanal ağ bağdaştırıcıları) eklemek için VMM yöneticisi, kiracı yöneticisi veya self servis kullanıcısı olmanız gerekir.

Desteklenmeyen senaryolar

Desteklenmeyen senaryoların listesi aşağıdadır:

  • ACL’nin birden çok örnek ile paylaşıldığı durumda tek bir örnek için bireysel kuralları yönetemezsiniz. Tüm kurallar, merkezi olarak üst ACL’leri içinde yönetilir ve ACL’nin eklendiği her yerde uygulanır.
  • Bir varlığa birden çok ACL bağlayın.
  • Bağlantı noktası ACL’lerini, Hyper-V ana bölümünde (yönetim işletim sistemi) sanal ağ bağdaştırıcılarına uygulayamazsınız.
  • VMM’de, TCP veya UDP dışındaki IP düzeyi protokollerini içeren bağlantı noktası ACL kuralları oluşturamazsınız. Diğer protokoller Hyper-V tarafından yerel olarak desteklenmeye devam eder.
  • Mantıksal ağlara, ağ sitelerine (mantıksal ağ tanımları), alt ağ VLAN'larına ve desteklendiği belirtilmeyen diğer VMM ağ nesnelerine bağlantı noktası ACL'leri uygulayın.

Dağıtım adımları

Aşağıdakileri yapmak için VMM PowerShell arabirimini kullanın:

  1. Bağlantı noktası ACL’lerini ve kurallarını tanımlayın.

    • Bu kurallar, Hyper-V sunucularındaki sanal anahtar bağlantı noktalarında “genişletilmiş bağlantı noktası ACL’leri” (VMNetworkAdapterExtendedAcl) olarak uygulanır. Bu da, bu kuralların yalnızca Windows Server 2012 R2 veya sonraki sürümlerini çalıştıran konaklara uygulanabileceği anlamına gelir çünkü VMM, önceki sürümler için eski Hyper-V bağlantı noktası ACL’lerini (VMNetworkAdapterAcl) oluşturmaz.
    • Bu kurallar, Hyper-V sunucularındaki sanal anahtar bağlantı noktalarında “genişletilmiş bağlantı noktası ACL’leri” (VMNetworkAdapterExtendedAcl) olarak uygulanır. Bu, VMM önceki sürümler için eski Hyper-V bağlantı noktası ACL'leri (VMNetworkAdapterAcl) oluşturmadığından yalnızca Windows Server 2016 veya üzerini çalıştıran konaklara uygulanabilecekleri anlamına gelir.
    • VMM’de tanımlanan tüm bağlantı noktası ACL kuralları, TCP için durum bilgileridir. Durum bilgisi olmayan TCP ACL kuralları oluşturamazsınız.
  2. Bir bağlantı noktası ACL’sini genel ayarlara ekleyin. Bu, ACL’yi tüm VM sanal ağ bağdaştırıcılarına uygular.

  3. Bağlantı noktası ACL’lerini VM ağlarına, VM alt ağlarına veya VM sanal ağ bağdaştırıcılarına bağlayın.

  4. Bağlantı noktası ACL kurallarını yönetin.

Bağlantı noktası ACL’leri oluşturma

  1. VMM’de PowerShell’i açın.

  2. New-SCPortACL cmdlet’ini kullanarak bir bağlantı noktası ACL’si oluşturun.

    New-SCPortACL [-Name] <String> [-Description <String>] [-JobVariable <String>] [-ManagedByNC] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-Owner <String>] [-PROTipID <Guid>] [-RunAsynchronously] [-UserRole <UserRole>] [-VMMServer <ServerConnection>] [<CommonParameters>]
    

Parametreler

Parametre Ayrıntılar
Ad; Açıklama Bağlantı noktası ACL’si adı ve açıklaması
JobVariable İş ilerleme durumunu kaydeder
ManagedByNC Nesnelerin Ağ Denetleyicisi tarafından yönetilip yönetilmediğini belirtir
OnBehalfOfUser/OnBehalfOfRole Kullanıcı adı veya rolü ile işi çalıştırır
Sahip VMM nesnesinin sahibini, geçerli bir etki alanı kullanıcı hesabı biçiminde belirtir. Örnek: Contoso\PattiFuller veya PattiFuller@Contoso
ProTipID Eylemi tetikleyen ProTip kimliği
RunAsychronously İşin zaman uyumsuz olarak çalışıp çalışmayacağını gösterir
UserRole Kullanıcı rolünü belirtir
VMMServer VMM sunucusunu belirtir
CommonParameters Daha fazla bilgi edinin

Örnekler

Ağ Denetleyicisi tarafından yönetilen nesneler için bir bağlantı noktası ACL’si oluşturma “DemoACLManagedByNC”:

PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN

Ağ Denetleyicisi tarafından yönetilmeyen nesneler için bir bağlantı noktası ACL’si oluşturma “DemPortACL”:

PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"

Bir bağlantı noktası ACL’si için bağlantı noktası ACL kurallarını tanımlama

  1. VMM’de PowerShell’i açın.

  2. New-SCPortACLRule cmdlet’ini kullanarak bir veya daha fazla kural oluşturun.

    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>]
    

Parametreler

Parametre Ayrıntılar
Ad, Açıklama Kural adı ve açıklaması
Tür ACL’nin uygulandığı trafik yönünü (gelen veya giden) belirtir
Eylem ACL’nin trafiğe izin verip vermediğini belirtir (İzin Ver veya Reddet)
LocalAddressPrefix Filtrelenmesi gereken trafiği tanımlamak için kullanılan kaynak IP adresini veya alt ağı belirtir.
LocalPortRange Trafiği tanımlamak için kullanılan kaynak bağlantı noktası aralığını belirtir.
RemoteAddressPrefix Filtreleme trafiğini tanımlamak için kullanılan hedef IP adresini veya alt ağı belirtir.
RemotePortRange Trafiği tanımlamak için kullanılan hedef bağlantı noktası aralığını belirtir.
Protokol Kuralın uygulandığı protokolü belirtir.
Öncelik Bağlantı noktası ACL'sinde kuralın önceliğini belirtin. Kurallar sırayla uygulanır. 1 ile 65535 arasında, en düşük numaranın en yüksek önceliğe sahip olduğu bir öncelik numarası ayarlayın. Ağ Denetleyicisi tarafından yönetilen nesneler için bağlantı noktası ACL'leri kuralları 100'e eşit veya daha büyük olarak ayarlanmalıdır. Ağ Denetleyicisi, 100’den düşük öncelikleri desteklemez.

Örnekler

Bir bağlantı noktası ACL’si oluşturma ve nesneyi $portACL içinde depolama:

PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"

Uzak alt ağdan RDP erişimine izin vermek için bir bağlantı noktası ACL kuralı oluşturma:

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

Bir ACL kuralının önceliğini değiştirme:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220

İlk komut, “AllowRDPAccess” bağlantı noktası ACL kuralını alır. İkinci komut kuralın önceliğini 220 olarak değiştirir.

Hedef adres aralığı için bağlantı noktası ACL kuralını ve bir kural için protokolü değiştirme:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp

İlk komut “AllowRDPAccess” kuralını alır. İkinci komut, protokolü UDP olarak değiştirir ve hedefi 172.185.21.0/24 alt ağı olarak ayarlar.

Bağlantı noktası ACL’lerini ekleme ve ayırma

Bir bağlantı noktası ACL’si genel ayarlara, VM ağlarına, VM alt ağlarına ve sanal ağ bağdaştırıcılarına eklenebilir. Genel ayarlara eklenmiş bir bağlantı noktası ACL’si, varsayılan olarak tüm VM sanal ağ bağdaştırıcılarına uygulanır.

  1. VMM’de PowerShell’i açın.

  2. Set-SCVMMServer cmdlet’ini kullanarak bir portal ACL’si ekleyin.

    Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
    

Parametreler

Parametre Ayrıntılar
VMM sunucusu Bağlantı noktası ACL'sinin uygulandığı VMM sunucusunun adı.
PortACL İsteğe bağlı olarak, belirtilen bağlantı noktası ACL’sini genel ayarlara ekler.

Örnekler

Bir ACL’yi genel ayarlara ekleme:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl

Bir ACL’yi genel ayarlardan ayırma:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL

ACL’yi oluşturulmakta olan bir VM ağına ekleme:

New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]

ACL’yi mevcut bir VM ağına ekleme:

Set-SCVMNetwork -PortACL $acl`

ACL’yi oluşturulmakta olan bir VM alt ağına ekleme:

New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]

ACL’yi mevcut bir VM alt ağına ekleme:

Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]

Bağlantı noktası ACL’si ve kurallarını alma ve görüntüleme

  1. VMM’de PowerShell’i açın.

  2. Bir bağlantı noktası ACL’sini ve kurallarını almak ve görüntülemek için Get-SCPortACL cmdlet’ini çalıştırın:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Bir kuralı almak ve görüntülemek için Get-SCPortACLRule cmdlet’ini çalıştırın:

    Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    

Parametreler

Parametre Ayrıntılar
Parametre yok Tüm ACL’leri alır
Ad/Kimlik Ad veya GUID’e göre alır
OnBehalfOfUser/OnBehalfOfUserRole Kullanıcı adı veya rolü ile çalıştırır
VMMServer Belirli bir VMM sunucusundaki ACL'leri alır
CommonParameters Daha fazla bilgi edinin

Örnekler

Belirli bir ACL’yi alma:

    PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"

Belirli bir ACL için kuralları alma:

    PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"

ACL için tüm kuralları alma:

    PS: C:> Get-SCPortACLRule -PortACL $portACL

Bağlantı noktası ACL’lerini ve kurallarını değiştirme

  1. VMM’de PowerShell’i açın.

  2. Bağlantı noktası ACL’sini değiştirmek için Set-SCPortACL cmdlet’ini çalıştırın:

    Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
    
  3. ACL’yi kaldırmak için Remove-SCPortACL cmdlet’ini çalıştırın:

    Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
    

    Parametreler

Parametre Ayrıntılar
Ad/Açıklama Bağlantı noktası ACL’si adı ve açıklaması
JobVariable İş ilerleme durumunu kaydeder
OnBehalfOfUser/OnBehalfOfUserRole Kullanıcı adı veya rolü ile çalıştırır.
ProTipID Eylemi tetikleyen ProTip kimliği
RunAsynchronously İşin zaman uyumsuz olarak çalışıp çalışmayacağını gösterir.
Confirm İşi çalıştırmadan önce istemde bulunur
WhatIf Komut çalıştırmadığınızda ne olacağını gösterir

Örnekler

ACL’ye açıklama ayarlama:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"

İlk cmdlet ACL’yi alır, ikincisi ACL’ye açıklama ayarlar.

ACL’yi kaldırma:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL

İlk cmdlet ACL’yi alır, ikincisi kaldırır.