Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Z tego artykułu dowiesz się, jak zdiagnozować problemy z filtrowaniem ruchu sieciowego dla maszyny wirtualnej. Proces obejmuje wyświetlanie obowiązujących reguł zabezpieczeń stosowanych przez sieciową grupę zabezpieczeń.
Grupy zabezpieczeń (NSG) umożliwiają kontrolowanie typów ruchu, który przepływa do i z maszyny wirtualnej (VM). Możesz powiązać NSG z podsiecią w wirtualnej sieci Azure, interfejsem sieciowym podłączonym do maszyny wirtualnej lub z oboma tymi elementami. Skuteczne zasady bezpieczeństwa stosowane do interfejsu sieciowego są agregacją zasad, które istnieją w NSG powiązanym z interfejsem sieciowym oraz podsiecią, w której znajduje się interfejs sieciowy. Reguły w różnych sieciowych grupach zabezpieczeń mogą czasami powodować konflikt ze sobą i wpływać na łączność sieciową maszyny wirtualnej. Możesz wyświetlić wszystkie skuteczne zasady zabezpieczeń z NSG zastosowane na interfejsach sieciowych Twojej maszyny wirtualnej. Jeśli nie jesteś zaznajomiony z pojęciami wirtualnej sieci, interfejsu sieciowego lub grup zabezpieczeń sieci, zapoznaj się z omówieniem wirtualnej sieci, interfejsem sieciowym, i omówieniem grup zabezpieczeń sieci.
Scenario
Próbujesz połączyć się z maszyną wirtualną przez port 80 z internetu, ale połączenie się nie udaje. To determine why you can't access port 80 from the Internet, you can view the effective security rules for a network interface using the Azure portal, PowerShell, or the Azure CLI.
Kolejne kroki zakładają, że masz istniejącą maszynę wirtualną, dla której chcesz zobaczyć skuteczne zasady bezpieczeństwa. Jeśli nie masz istniejącej maszyny wirtualnej, najpierw wdroż maszynę wirtualną Linux lub Windows, aby wykonać zadania opisane w tym artykule. Przykłady w tym artykule dotyczą maszyny wirtualnej o nazwie myVM z interfejsem sieciowym o nazwie myVMVMNic. Maszyna wirtualna i interfejs sieciowy są w grupie zasobów o nazwie myResourceGroup, i znajdują się w regionie East US. Zmień wartości w krokach odpowiednio dla maszyny wirtualnej, dla której diagnozujesz problem.
Diagnose using Azure portal
Log into the Azure portal with an Azure account that has the necessary permissions.
Na górze portalu Azure wpisz nazwę maszyny wirtualnej w polu wyszukiwania. When the name of the VM appears in the search results, select it.
Rozwiń Sieć w lewym okienku. Wybierz pozycję Ustawienia sieciowe. Na poniższych ilustracjach przedstawiono ustawienia sieciowej grupy zabezpieczeń dla interfejsu sieciowego maszyny wirtualnej.
Reguły widoczne na poprzedniej ilustracji dotyczą interfejsu sieciowego o nazwie vm-1445. Zobaczysz, że istnieją reguły portów przychodzących dla interfejsu sieciowego z dwóch różnych sieciowych grup zabezpieczeń:
- nsg-subnet: skojarzone z podsiecią, w którą znajduje się interfejs sieciowy.
- nsg-nic: skojarzone z interfejsem sieciowym na maszynie wirtualnej o nazwie vm-1445.
The rule named DenyAllInBound is what's preventing inbound communication to the VM over port 80, from the internet, as described in the scenario. Reguła wymienia 0.0.0.0/0 dla ŹRÓDŁO, co obejmuje internet. No other rule with a higher priority (lower number) allows port 80 inbound. Aby zezwolić na przychodzące połączenia na porcie 80 do maszyny wirtualnej z internetu, zobacz Rozwiązywanie problemu. Aby dowiedzieć się więcej o zasadach bezpieczeństwa i sposobie ich stosowania przez Azure, zobacz Grupy zabezpieczeń sieci.
W dolnej części obrazu zobaczysz również reguły portów wychodzących. Zostaną wyświetlone reguły portów wychodzących dla interfejsu sieciowego.
Chociaż obraz przedstawia tylko cztery reguły ruchu przychodzącego dla każdej sieciowej grupy zabezpieczeń, sieciowe grupy zabezpieczeń mogą mieć o wiele więcej niż cztery reguły. Na ilustracji widzisz VirtualNetwork pod Źródło i Miejsce docelowe oraz AzureLoadBalancer pod ŹRÓDŁO. VirtualNetwork and AzureLoadBalancer are service tags. Service tags represent a group of IP address prefixes to help minimize complexity for security rule creation.
Aby wyświetlić obowiązujące reguły zabezpieczeń, wybierz interfejs w ustawieniach sieci maszyny wirtualnej. Przed kontynuowaniem upewnij się, że maszyna wirtualna jest w stanie uruchomienia.
W ustawieniach interfejsu sieciowego rozwiń Pomoc, a następnie wybierz Efektywne zasady bezpieczeństwa.
Poniższy przykład przedstawia przykładowy interfejs sieciowy vm-1445 z wybranymi skutecznymi regułami zabezpieczeń .
Zasady wymienione są takie same jak te, które widziałaś w kroku 3, chociaż są różne karty dla NSG powiązanego z interfejsem sieciowym i podsiecią. Jak widać na zdjęciu, pokazane są tylko pierwsze 50 reguł. To download a .csv file that contains all of the rules, select Download.
Poprzednie kroki pokazały reguły zabezpieczeń interfejsu sieciowego o nazwie vm-1445. Co zrobić, jeśli maszyna wirtualna ma dwa interfejsy sieciowe? W tym przykładzie maszyna wirtualna ma dołączone dwie karty sieciowe. Skuteczne zasady zabezpieczeń mogą się różnić dla każdego interfejsu sieciowego.
Aby wyświetlić reguły interfejsu sieciowego vm-nic-2 , wybierz je. Jak pokazano w poniższym przykładzie, interfejs sieciowy ma te same reguły skojarzone z podsiecią co interfejs sieciowy vm-1445 , ponieważ oba interfejsy sieciowe znajdują się w tej samej podsieci. Po powiązaniu NSG z podsiecią, jego reguły są stosowane do wszystkich interfejsów sieciowych w tej podsieci.
W przeciwieństwie do interfejsu sieciowego vm-1445 interfejs sieciowy vm-nic-2 nie ma skojarzonej sieciowej grupy zabezpieczeń. Każdy interfejs sieciowy i podsieć może mieć zerowe lub jedno NSG przypisane do niego. NSG powiązane z każdą kartą sieciową lub podsiecią mogą być takie same lub różne. Możesz powiązać tę samą grupę zabezpieczeń sieci z tyloma interfejsami sieciowymi i podsieciami, ile wybierzesz.
Proponowane poprawki: Chociaż skuteczne zasady bezpieczeństwa były widoczne w VM, możesz również zobaczyć skuteczne zasady bezpieczeństwa poprzez jednostkę:
- Interfejs sieciowy: Dowiedz się, jak wyświetlić interfejs sieciowy.
- NSG: Dowiedz się, jak wyświetlić NSG.
Diagnozowanie za pomocą PowerShell
Notatka
Zalecamy użycie modułu Azure Az PowerShell do interakcji z Azure. To get started, see Install Azure PowerShell. Aby dowiedzieć się, jak migrować do modułu Az PowerShell, zobacz Migracja Azure PowerShell z AzureRM do Az.
Możesz uruchomić poniższe polecenia w Azure Cloud Shell lub korzystając z PowerShell na swoim komputerze. Azure Cloud Shell to darmowa interaktywna powłoka. It has common Azure tools preinstalled and configured to use with your account. Jeśli uruchamiasz PowerShell ze swojego komputera, potrzebujesz modułu Azure PowerShell w wersji 1.0.0 lub nowszej. Uruchom Get-Module -ListAvailable Az
na swoim komputerze, aby znaleźć zainstalowaną wersję. Jeśli potrzebujesz aktualizacji, zobacz Install Azure PowerShell module. Jeśli korzystasz z programu PowerShell lokalnie, musisz również uruchomić polecenie Connect-AzAccount
, aby zalogować się do platformy Azure przy użyciu konta z wymaganymi uprawnieniami].
Get the effective security rules for a network interface with Get-AzEffectiveNetworkSecurityGroup. Poniższy przykład pobiera obowiązujące reguły zabezpieczeń dla interfejsu sieciowego o nazwie vm-nic , który znajduje się w grupie zasobów o nazwie test-rg:
$Params = @{
NetworkInterfaceName = "vm-nic"
ResourceGroupName = "test-rg"
}
Get-AzEffectiveNetworkSecurityGroup @Params
Wynik jest zwracany w formacie JSON. To understand the output, see interpret command output. Wynik jest zwracany tylko wówczas, gdy NSG jest powiązany z interfejsem sieciowym, podsiecią, w której znajduje się interfejs sieciowy, lub oboma. The VM must be in the running state. Maszyna wirtualna może mieć wiele interfejsów sieciowych z zastosowaniem różnych sieciowych grup zabezpieczeń. Podczas rozwiązywania problemów, uruchom polecenie dla każdego interfejsu sieciowego.
Jeśli nadal masz problem z łącznością, zobacz więcej diagnoz i zagadnień.
Jeśli znasz tylko nazwę maszyny wirtualnej, użyj następujących poleceń, aby wyświetlić listę wszystkich identyfikatorów interfejsów sieciowych dołączonych do maszyny wirtualnej.
$Params = @{
Name = "vm-1"
ResourceGroupName = "test-rg"
}
$VM = Get-AzVM @Params
$VM.NetworkProfile
You receive output similar to the following example:
NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/vm-nic
W poprzednich danych wyjściowych nazwa interfejsu sieciowego to vm-nic.
Diagnozowanie za pomocą Azure CLI
Jeśli używasz poleceń Azure CLI do wykonywania zadań opisanych w tym artykule, uruchom polecenia w Azure Cloud Shell lub przez uruchomienie Azure CLI z komputera. Ten artykuł wymaga wersji Azure CLI 2.0.32 lub nowszej. Uruchom az --version
, aby znaleźć zainstalowaną wersję. If you need to install or upgrade, see Install Azure CLI. Jeśli uruchamiasz narzędzie Azure CLI lokalnie, musisz również uruchomić az login
i zalogować się do Azure za pomocą konta, które ma niezbędne uprawnienia.
Get the effective security rules for a network interface with az network nic list-effective-nsg. Poniższy przykład pobiera obowiązujące reguły zabezpieczeń dla interfejsu sieciowego o nazwie vm-nic , który znajduje się w grupie zasobów o nazwie test-rg:
az network nic list-effective-nsg \
--name vm-nic \
--resource-group test-rg
Wynik jest zwracany w formacie JSON. Aby zrozumieć wynik, zobacz interpretuj wynik polecenia. Wynik jest zwracany tylko wtedy, gdy NSG jest powiązany z interfejsem sieciowym, podsiecią, w której znajduje się ten interfejs, lub oboma. The VM must be in the running state. Maszyna wirtualna może mieć wiele interfejsów sieciowych z zastosowaniem różnych sieciowych grup zabezpieczeń. When troubleshooting, run the command for each network interface.
Jeśli nadal masz problem z łącznością, zobacz więcej diagnoz i zagadnień.
Jeśli znasz tylko nazwę maszyny wirtualnej, użyj następujących poleceń, aby wyświetlić listę wszystkich identyfikatorów interfejsów sieciowych dołączonych do maszyny wirtualnej.
az vm show \
--name vm-1 \
--resource-group test-rg
Within the returned output, you see information similar to the following example:
"networkProfile": {
"additionalProperties": {},
"networkInterfaces": [
{
"additionalProperties": {},
"id": "/subscriptions/<ID>/resourceGroups/test-rg/providers/Microsoft.Network/networkInterfaces/vm-nic",
"primary": true,
"resourceGroup": "test-rg"
},
W poprzednich danych wyjściowych nazwa interfejsu sieciowego to vm-nic
Interpret command output
Regardless of whether you used the PowerShell, or the Azure CLI to diagnose the problem, you receive output that contains the following information:
- NetworkSecurityGroup: Identyfikator grupy zabezpieczeń sieci.
- Association: wskazuje, czy sieciowa grupa zabezpieczeń jest powiązana z interfejsem sieciowym lub podsiecią. Jeśli stan skojarzenia sieciowej grupy zabezpieczeń zmieni się tuż przed uruchomieniem polecenia, poczekaj kilka sekund, aby wynik odzwierciedlił aktualizację.
- EffectiveSecurityRules: Objaśnienie każdej właściwości jest szczegółowo opisane w Tworzenie reguły bezpieczeństwa. Rule names prefaced with defaultSecurityRules/ are default security rules that exist in every NSG. Nazwy reguł poprzedzone regułami zabezpieczeńRules/ są regułami utworzonymi przez użytkownika. Rules that specify a service tag, such as Internet, VirtualNetwork, and AzureLoadBalancer for the destinationAddressPrefix or sourceAddressPrefix properties, also have values for the expandedDestinationAddressPrefix property. Właściwość expandedDestinationAddressPrefix wymienia wszystkie prefiksy adresowe reprezentowane przez tag usługi.
Zduplikowane reguły pojawiają się w danych wyjściowych, gdy NSG jest powiązane zarówno z interfejsem sieciowym, jak i podsiecią. Reguły domyślne i wszystkie reguły niestandardowe współużytkowane przez NSG (sieciowe grupy zabezpieczeń) powodują duplikaty.
The rule named defaultSecurityRules/DenyAllInBound is what's preventing inbound communication to the VM over port 80, from the internet, as described in the scenario. Żadna inna reguła o wyższym priorytecie (niższym numerze) nie zezwala na dopuszczenie portu 80 z internetu.
Rozwiąż problem
Problem opisany w scenariuszu można zdiagnozować przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Rozwiązaniem jest utworzenie reguły zabezpieczeń sieci z następującymi właściwościami:
Własność | Wartość |
---|---|
Źródło | Any |
Source port ranges | Jakikolwiek |
Destination | The IP address of the VM, a range of IP addresses, or all addresses in the subnet. |
Zakresy portów docelowych | 80 |
Protokół | TCP |
Akcja | Allow |
Priorytet | 100 |
Name | Allow-HTTP-All |
Po utworzeniu reguły port 80 jest dozwolony dla ruchu przychodzącego z Internetu, ponieważ jego priorytet jest wyższy niż domyślna reguła DenyAllInBound . Jeśli sieciowe grupy zabezpieczeń są skojarzone z interfejsem sieciowym i podsiecią, utwórz tę samą regułę w obu sieciowych grupach zabezpieczeń. Learn how to create a security rule.
Gdy platforma Azure przetwarza ruch przychodzący, przetwarza reguły w sieciowej grupie zabezpieczeń skojarzonej z podsiecią (jeśli istnieje skojarzona sieciowa grupa zabezpieczeń), a następnie przetwarza reguły w sieciowej grupie zabezpieczeń skojarzonej z interfejsem sieciowym. Jeśli istnieje sieciowa grupa zabezpieczeń skojarzona z interfejsem sieciowym i podsiecią, port musi być otwarty w obu sieciowych grupach zabezpieczeń, aby ruch dotarł do maszyny wirtualnej. Aby ułatwić zarządzanie i rozwiązywanie problemów z komunikacją, zalecamy przypisanie NSG do podsieci, zamiast do indywidualnych interfejsów sieciowych. If VMs within a subnet need different security rules, you can make the network interfaces members of an application security group (ASG), and specify an ASG as the source and destination of a security rule. Dowiedz się więcej o grupach zabezpieczeń aplikacji.
Jeśli nadal występują problemy z komunikacją, zobacz Zagadnienia i więcej diagnostyki.
Rozważania
Rozważ następujące kwestie podczas rozwiązywania problemów z łącznością.
Domyślne zasady bezpieczeństwa blokują dostęp przychodzący z internetu i zezwalają tylko na ruch przychodzący z wirtualnej sieci. Aby umożliwić ruch przychodzący z Internetu, dodaj reguły zabezpieczeń o wyższym priorytecie niż domyślne reguły. Dowiedz się więcej o domyślnych regułach bezpieczeństwa lub jak dodać regułę bezpieczeństwa.
W przypadku równorzędnych sieci wirtualnych domyślnie tag usługi VIRTUAL_NETWORK automatycznie rozwija się w celu uwzględnienia prefiksów dla równorzędnych sieci wirtualnych. To troubleshoot any issues related to virtual network peering, you can view the prefixes in the ExpandedAddressPrefix list. Dowiedz się więcej o krotnym połączeniu sieci wirtualnych i tagach usług.
Platforma Azure pokazuje obowiązujące reguły zabezpieczeń dla interfejsu sieciowego tylko wtedy, gdy sieciowa grupa zabezpieczeń jest powiązana z interfejsem sieciowym maszyny wirtualnej lub jej podsiecią. Ponadto maszyna wirtualna musi być w stanie uruchomienia.
Jeśli interfejs sieciowy lub podsieć nie ma skojarzonej sieciowej grupy zabezpieczeń, wszystkie porty pozostają otwarte dla dostępu przychodzącego i wychodzącego, gdy maszyna wirtualna ma publiczny adres IP. Ta konfiguracja umożliwia nieograniczony dostęp do i z dowolnego miejsca. Aby zabezpieczyć maszynę wirtualną, zastosuj sieciową grupę zabezpieczeń do podsieci obsługującej interfejs sieciowy, jeśli ma publiczny adres IP.
Więcej diagnoz
- Aby szybko przetestować, czy ruch jest dozwolony do lub z maszyny wirtualnej, użyj funkcji IP flow verify dostępnej w Azure Network Watcher. Komenda "IP flow verify" informuje, czy ruch jest dozwolony, czy zablokowany. Jeśli zostanie odrzucony, IP flow verify powie ci, która reguła bezpieczeństwa blokuje ruch.
- Jeśli nie ma reguł zabezpieczeń powodujących niepowodzenie łączności sieciowej maszyny wirtualnej, problem może być spowodowany:
- Firewall software running within the VM's operating system
- Trasy skonfigurowane dla wirtualnych urządzeń lub ruchu lokalnego. Ruch internetowy może być przekierowywany do Twojej lokalnej sieci za pomocą wymuszonego tunelowania. W przypadku wymuszenia tunelowania ruchu internetowego do urządzenia wirtualnego lub lokalnego może nie być możliwe nawiązanie połączenia z maszyną wirtualną z Internetu. Aby dowiedzieć się, jak diagnozować problemy z trasą, które mogą utrudniać przepływ ruchu z maszyny wirtualnej, zobacz Diagnozowanie problemu z routingiem ruchu sieciowego maszyny wirtualnej.
Next steps
- Dowiedz się o wszystkich zadaniach, właściwościach i ustawieniach dotyczących grupy zabezpieczeń sieci oraz reguł zabezpieczeń.
- Dowiedz się więcej o domyślnych zasadach bezpieczeństwa, tagach usług i jak Azure przetwarza zasady bezpieczeństwa dla ruchu przychodzącego i wychodzącego dla maszyny wirtualnej.