Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kontrolowanie dostępu do sieciowego ruchu wychodzącego jest ważną częścią ogólnego planu zabezpieczeń sieci. Na przykład możesz ograniczyć dostęp do witryn internetowych. Możesz też ograniczyć wychodzące adresy IP i porty, do których można uzyskać dostęp.
Jednym ze sposobów kontrolowania dostępu do sieciowego ruchu wychodzącego z podsieci platformy Azure jest użycie usługi Azure Firewall. Za pomocą usługi Azure Firewall można skonfigurować:
- Reguły aplikacji, które definiują w pełni kwalifikowane nazwy domen (FQDN), do których można uzyskać dostęp z podsieci.
- Reguły sieci, które definiują adres źródłowy, protokół, port docelowy i adres docelowy.
Ruch sieciowy jest poddawany skonfigurowanym regułom zapory, gdy kierujesz go do zapory jako bramy domyślnej podsieci.
W tym artykule utworzysz uproszczoną pojedynczą sieć wirtualną z trzema podsieciami w celu łatwego wdrożenia. W przypadku wdrożeń produkcyjnych zalecany jest model hub-and-spoke, w którym zapora znajduje się we własnej sieci wirtualnej. Serwery obciążeń znajdują się w sparowanych sieciach wirtualnych w tym samym regionie, posiadających jedną lub więcej podsieci.
- AzureFirewallSubnet — w tej podsieci znajduje się zapora.
- Workload-SN — w tej podsieci znajduje się serwer obciążeń. Ruch sieciowy tej podsieci przechodzi przez zaporę.
- AzureBastionSubnet — podsieć używana dla usługi Azure Bastion, która służy do nawiązywania połączenia z serwerem obciążenia.
Aby uzyskać więcej informacji na temat usługi Azure Bastion, zobacz Co to jest usługa Azure Bastion?
Important
Ceny godzinowe zaczynają się od momentu wdrożenia usługi Bastion, niezależnie od użycia danych wychodzących. Aby uzyskać więcej informacji, zobacz Ceny i SKU. Jeśli wdrażasz Bastion w ramach samouczka lub testu, zalecamy usunięcie tego zasobu po zakończeniu jego używania.
W tym artykule dowiesz się, jak:
- Konfigurowanie testowego środowiska sieciowego
- Wdrażanie zapory
- Tworzenie trasy domyślnej
- Konfigurowanie reguły aplikacji w celu zezwolenia na dostęp do www.google.com
- Konfigurowanie reguły sieci w celu umożliwienia dostępu do zewnętrznych serwerów DNS
- Testowanie zapory
Jeśli wolisz, możesz wykonać tę procedurę przy użyciu witryny Azure Portal.
Jeśli nie masz subskrypcji Azure, przed rozpoczęciem utwórz darmowe konto.
Prerequisites
Ta procedura wymaga lokalnego uruchomienia programu PowerShell. Musisz mieć zainstalowany moduł Azure PowerShell. Uruchom Get-Module -ListAvailable Az, aby znaleźć wersję. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Po zweryfikowaniu wersji programu PowerShell uruchom polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.
Konfigurowanie sieci
Najpierw utwórz grupę zasobów zawierającą zasoby wymagane do wdrożenia zapory. Następnie utwórz sieć wirtualną, podsieci i serwery testowe.
Tworzenie grupy zasobów
Grupa zasobów zawiera wszystkie zasoby dla wdrożenia.
New-AzResourceGroup -Name Test-FW-RG -Location "East US"
Tworzenie sieci wirtualnej i hosta usługi Azure Bastion
Ta sieć wirtualna ma trzy podsieci:
Note
Rozmiar podsieci AzureFirewallSubnet to /26. Aby uzyskać więcej informacji na temat rozmiaru podsieci, zobacz Często zadawane pytania dotyczące usługi Azure Firewall.
$Bastionsub = New-AzVirtualNetworkSubnetConfig -Name AzureBastionSubnet -AddressPrefix 10.0.0.0/27
$FWsub = New-AzVirtualNetworkSubnetConfig -Name AzureFirewallSubnet -AddressPrefix 10.0.1.0/26
$Worksub = New-AzVirtualNetworkSubnetConfig -Name Workload-SN -AddressPrefix 10.0.2.0/24
Teraz utwórz sieć wirtualną:
$testVnet = New-AzVirtualNetwork -Name Test-FW-VN -ResourceGroupName Test-FW-RG `
-Location "East US" -AddressPrefix 10.0.0.0/16 -Subnet $Bastionsub, $FWsub, $Worksub
Tworzenie publicznego adresu IP dla hosta usługi Azure Bastion
$publicip = New-AzPublicIpAddress -ResourceGroupName Test-FW-RG -Location "East US" `
-Name Bastion-pip -AllocationMethod static -Sku standard
Tworzenie hosta usługi Azure Bastion
New-AzBastion -ResourceGroupName Test-FW-RG -Name Bastion-01 -PublicIpAddress $publicip -VirtualNetwork $testVnet
Tworzenie maszyny wirtualnej
Teraz utwórz maszynę wirtualną przeznaczoną do obsługi obciążeń i umieść ją w odpowiedniej podsieci. Po wyświetleniu monitu wpisz nazwę użytkownika i hasło dla maszyny wirtualnej.
Utwórz maszynę wirtualną do obciążeń. Po wyświetleniu monitu wpisz nazwę użytkownika i hasło dla maszyny wirtualnej.
#Create the NIC
$wsn = Get-AzVirtualNetworkSubnetConfig -Name Workload-SN -VirtualNetwork $testvnet
$NIC01 = New-AzNetworkInterface -Name Srv-Work -ResourceGroupName Test-FW-RG -Location "East us" -Subnet $wsn
#Define the virtual machine
$SecurePassword = ConvertTo-SecureString "<choose a password>" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("<choose a user name>", $SecurePassword);
$VirtualMachine = New-AzVMConfig -VMName Srv-Work -VMSize "Standard_DS2"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName Srv-Work -ProvisionVMAgent -EnableAutoUpdate -Credential $Credential
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC01.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2019-Datacenter' -Version latest
#Create the virtual machine
New-AzVM -ResourceGroupName Test-FW-RG -Location "East US" -VM $VirtualMachine -Verbose
Note
Platforma Azure udostępnia domyślny adres IP dostępu wychodzącego dla maszyn wirtualnych, które nie są przypisane do publicznego adresu IP lub znajdują się w puli zaplecza wewnętrznego podstawowego modułu równoważenia obciążenia platformy Azure. Domyślny mechanizm adresów IP dostępu wychodzącego zapewnia wychodzący adres IP, który nie jest konfigurowalny.
Domyślny adres IP dostępu wychodzącego jest wyłączony, gdy wystąpi jedno z następujących zdarzeń:
- Publiczny adres IP jest przypisywany do maszyny wirtualnej.
- Maszyna wirtualna (VM) jest umieszczana w puli zaplecza standardowego modułu równoważenia obciążenia, z regułami wychodzącymi lub bez nich.
- Zasób usługi Azure NAT Gateway jest przypisywany do podsieci maszyny wirtualnej.
Maszyny wirtualne tworzone przy użyciu zestawów skalowania maszyn wirtualnych w trybie elastycznej aranżacji nie mają domyślnego dostępu wychodzącego.
Aby uzyskać więcej informacji na temat połączeń wychodzących na platformie Azure, zobacz Domyślny dostęp wychodzący na platformie Azure i Używanie źródłowego tłumaczenia adresów sieciowych (SNAT) dla połączeń wychodzących.
Wdrażanie zapory
Teraz wdróż zaporę w sieci wirtualnej.
# Get a Public IP for the firewall
$FWpip = New-AzPublicIpAddress -Name "fw-pip" -ResourceGroupName Test-FW-RG `
-Location "East US" -AllocationMethod Static -Sku Standard
# Create the firewall
$Azfw = New-AzFirewall -Name Test-FW01 -ResourceGroupName Test-FW-RG -Location "East US" -VirtualNetwork $testVnet -PublicIpAddress $FWpip
#Save the firewall private IP address for future use
$AzfwPrivateIP = $Azfw.IpConfigurations.privateipaddress
$AzfwPrivateIP
Zanotuj prywatny adres IP. Użyjesz jej później podczas tworzenia trasy domyślnej.
Tworzenie trasy domyślnej
Utwórz tabelę, z wyłączoną propagacją tras BGP
$routeTableDG = New-AzRouteTable `
-Name Firewall-rt-table `
-ResourceGroupName Test-FW-RG `
-location "East US" `
-DisableBgpRoutePropagation
#Create a route
Add-AzRouteConfig `
-Name "DG-Route" `
-RouteTable $routeTableDG `
-AddressPrefix 0.0.0.0/0 `
-NextHopType "VirtualAppliance" `
-NextHopIpAddress $AzfwPrivateIP `
| Set-AzRouteTable
#Associate the route table to the subnet
Set-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $testVnet `
-Name Workload-SN `
-AddressPrefix 10.0.2.0/24 `
-RouteTable $routeTableDG | Set-AzVirtualNetwork
Konfigurowanie reguły aplikacji
Reguła aplikacji zezwala na dostęp wychodzący do www.google.com.
$AppRule1 = New-AzFirewallApplicationRule -Name Allow-Google -SourceAddress 10.0.2.0/24 `
-Protocol http, https -TargetFqdn www.google.com
$AppRuleCollection = New-AzFirewallApplicationRuleCollection -Name App-Coll01 `
-Priority 200 -ActionType Allow -Rule $AppRule1
$Azfw.ApplicationRuleCollections.Add($AppRuleCollection)
Set-AzFirewall -AzureFirewall $Azfw
Usługa Azure Firewall zawiera wbudowany zbiór reguł dla infrastrukturalnych FQDN, które są domyślnie dozwolone. Te nazwy FQDN są specyficzne dla platformy i nie można ich używać do innych celów. Aby uzyskać więcej informacji, zobacz Infrastruktura FQDN.
Konfigurowanie reguły sieci
Reguła sieci zezwala na dostęp wychodzący do dwóch adresów IP na porcie 53 (DNS).
$NetRule1 = New-AzFirewallNetworkRule -Name "Allow-DNS" -Protocol UDP -SourceAddress 10.0.2.0/24 `
-DestinationAddress 209.244.0.3,209.244.0.4 -DestinationPort 53
$NetRuleCollection = New-AzFirewallNetworkRuleCollection -Name RCNet01 -Priority 200 `
-Rule $NetRule1 -ActionType "Allow"
$Azfw.NetworkRuleCollections.Add($NetRuleCollection)
Set-AzFirewall -AzureFirewall $Azfw
Zmienianie podstawowego i pomocniczego adresu DNS dla interfejsu sieciowego Srv-Work
Na potrzeby testowania w tej procedurze skonfiguruj podstawowe i pomocnicze adresy DNS serwera. Nie jest to ogólne wymaganie usługi Azure Firewall.
$NIC01.DnsSettings.DnsServers.Add("209.244.0.3")
$NIC01.DnsSettings.DnsServers.Add("209.244.0.4")
$NIC01 | Set-AzNetworkInterface
Testowanie zapory
Teraz przetestuj zaporę, aby potwierdzić, że działa zgodnie z oczekiwaniami.
Połącz się z maszyną wirtualną Srv-Work przy użyciu usługi Bastion i zaloguj się.
W programie Srv-Work otwórz okno programu PowerShell i uruchom następujące polecenia:
nslookup www.google.com nslookup www.microsoft.comOba polecenia powinny zwracać odpowiedzi, pokazując, że zapytania DNS przechodzą przez zaporę.
Uruchom następujące polecenia:
Invoke-WebRequest -Uri https://www.google.com Invoke-WebRequest -Uri https://www.google.com Invoke-WebRequest -Uri https://www.microsoft.com Invoke-WebRequest -Uri https://www.microsoft.comŻądania powinny zakończyć się powodzeniem
www.google.com, a żądania powinny zakończyć się niepowodzeniemwww.microsoft.com. Pokazuje to, że reguły zapory działają zgodnie z oczekiwaniami.
Teraz sprawdziliśmy, czy reguły zapory działają:
- Możesz rozpoznać nazwy DNS przy użyciu skonfigurowanego zewnętrznego serwera DNS.
- Możesz przejść do jednej dozwolonej nazwy FQDN, ale nie do żadnej innej.
Uprzątnij zasoby
Możesz zachować zasoby zapory na potrzeby następnego samouczka lub jeśli nie są już potrzebne, usuń grupę zasobów Test-FW-RG , aby usunąć wszystkie zasoby związane z zaporą:
Remove-AzResourceGroup -Name Test-FW-RG