Filtrování síťového provozu pomocí skupiny zabezpečení sítě pomocí Azure CLI

Příchozí a odchozí provoz podsítě virtuální sítě můžete filtrovat pomocí skupiny zabezpečení sítě. Skupiny zabezpečení sítě obsahují pravidla zabezpečení, která filtrují síťový provoz podle IP adresy, portu a protokolu. Pravidla zabezpečení se vztahují na prostředky nasazené v podsíti. V tomto článku získáte informace o těchto tématech:

  • Vytvoření skupiny zabezpečení sítě a pravidel zabezpečení
  • Vytvoření virtuální sítě a přidružení skupiny zabezpečení sítě k podsíti
  • Nasazení virtuálních počítačů do podsítě
  • Testování filtrů provozu

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Předpoklady

  • Tento článek vyžaduje verzi 2.0.28 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

Vytvoření skupiny zabezpečení sítě

Skupina zabezpečení sítě obsahuje pravidla zabezpečení. Pravidla zabezpečení určují zdroj a cíl. Zdroji a cíli můžou být skupiny zabezpečení aplikací.

Vytvoření skupin zabezpečení aplikací

Nejprve vytvořte skupinu prostředků pro všechny prostředky vytvořené v tomto článku pomocí příkazu az group create. Následující příklad vytvoří skupinu prostředků v umístění eastus:

az group create \
  --name myResourceGroup \
  --location eastus

Vytvořte skupinu zabezpečení aplikace pomocí příkazu az network asg create. Skupina zabezpečení aplikací umožňuje seskupovat servery s podobnými požadavky na filtrování portů. Následující příklad vytvoří dvě skupiny zabezpečení aplikací.

az network asg create \
  --resource-group myResourceGroup \
  --name myAsgWebServers \
  --location eastus

az network asg create \
  --resource-group myResourceGroup \
  --name myAsgMgmtServers \
  --location eastus

Vytvoření skupiny zabezpečení sítě

Vytvořte skupinu zabezpečení sítě pomocí příkazu az network nsg create. Následující příklad vytvoří skupinu zabezpečení sítě myNsg:

# Create a network security group
az network nsg create \
  --resource-group myResourceGroup \
  --name myNsg

Vytvoření pravidel zabezpečení

Vytvořte pravidlo zabezpečení pomocí příkazu az network nsg rule create. Následující příklad vytvoří pravidlo povolující příchozí provoz z internetu do skupiny zabezpečení aplikací myWebServers na portech 80 a 443:

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsg \
  --name Allow-Web-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-asgs "myAsgWebServers" \
  --destination-port-range 80 443

Následující příklad vytvoří pravidlo, které povoluje příchozí provoz z internetu do skupiny zabezpečení aplikace myMgmtServers přes port 22:

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsg \
  --name Allow-SSH-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 110 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-asgs "myAsgMgmtServers" \
  --destination-port-range 22

V tomto článku je SSH (port 22) vystavený internetu pro virtuální počítač myAsgMgmtServers . V produkčních prostředích se místo vystavení portu 22 na internetu doporučuje připojit se k prostředkům Azure, které chcete spravovat pomocí sítě VPN nebo privátního síťového připojení.

Vytvoření virtuální sítě

Vytvořte virtuální síť pomocí příkazu az network vnet create. Následující příklad vytvoří virtuální síť myVirtualNetwork:

az network vnet create \
  --name myVirtualNetwork \
  --resource-group myResourceGroup \
  --address-prefixes 10.0.0.0/16

Přidejte podsíť do virtuální sítě pomocí příkazu az network vnet subnet create. Následující příklad do virtuální sítě přidá podsíť mySubnet a přidruží k ní skupinu zabezpečení sítě myNsg:

az network vnet subnet create \
  --vnet-name myVirtualNetwork \
  --resource-group myResourceGroup \
  --name mySubnet \
  --address-prefix 10.0.0.0/24 \
  --network-security-group myNsg

Vytvoření virtuálních počítačů

Vytvořte ve virtuální síti dva virtuální počítače, abyste v pozdějším kroku mohli ověřit filtrování provozu.

Vytvořte virtuální počítač pomocí příkazu az vm create. Následující příklad vytvoří virtuální počítač, který bude sloužit jako webový server. Tato --asgs myAsgWebServers možnost způsobí, že Azure vytvoří síťové rozhraní, které vytvoří pro virtuální počítač členem skupiny zabezpečení aplikace myAsgWebServers .

Tato možnost je zadaná, --nsg "" aby azure nemohla vytvořit výchozí skupinu zabezpečení sítě pro síťové rozhraní, které Azure vytvoří při vytváření virtuálního počítače. Pro zjednodušení tohoto článku se používá heslo. Klíče se obvykle používají v produkčních nasazeních. Pokud používáte klíče, musíte také nakonfigurovat předávání agenta SSH pro zbývající kroky. Další informace najdete v dokumentaci pro klienta SSH. V následujícím příkazu nahraďte <replace-with-your-password> heslem podle vašeho výběru.

adminPassword="<replace-with-your-password>"

az vm create \
  --resource-group myResourceGroup \
  --name myVmWeb \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet mySubnet \
  --nsg "" \
  --asgs myAsgWebServers \
  --admin-username azureuser \
  --admin-password $adminPassword

Vytvoření virtuálního počítače trvá několik minut. Po vytvoření virtuálního počítače se vrátí výstup podobný následujícímu příkladu:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVmWeb",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "myResourceGroup"
}

Poznamenejte si hodnotu publicIpAddress. Tato adresa se používá pro přístup k virtuálnímu počítači z internetu v pozdějším kroku. Vytvořte virtuální počítač, který bude sloužit jako server pro správu:

az vm create \
  --resource-group myResourceGroup \
  --name myVmMgmt \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet mySubnet \
  --nsg "" \
  --asgs myAsgMgmtServers \
  --admin-username azureuser \
  --admin-password $adminPassword

Vytvoření virtuálního počítače trvá několik minut. Po vytvoření virtuálního počítače si všimněte publicIpAddress ve vráceném výstupu. Tato adresa se používá pro přístup k virtuálnímu počítači v dalším kroku. Nepokračujte dalším krokem, dokud Azure nedokončí vytváření virtuálního počítače.

Testování filtrů provozu

Pomocí následujícího příkazu vytvořte relaci SSH s virtuálním počítačem myVmMgmt . Nahraďte <publicIpAddress> veřejnou IP adresou vašeho virtuálního počítače. V předchozím příkladu je IP adresa 13.90.242.231.

ssh azureuser@<publicIpAddress>

Po zobrazení výzvy k zadání hesla zadejte heslo, které jste zadali v části Vytvoření virtuálních počítačů.

Připojení proběhne úspěšně, protože port 22 je povolený pro příchozí provoz z internetu do skupiny zabezpečení aplikace myAsgMgmtServers , ve které je síťové rozhraní připojené k virtuálnímu počítači myVmMgmt .

Pomocí následujícího příkazu připojte SSH k virtuálnímu počítači myVmWeb z virtuálního počítače myVmMgmt :

ssh azureuser@myVmWeb

Připojení bude úspěšné, protože výchozí pravidlo zabezpečení v obou skupinách zabezpečení sítě povoluje provoz na všech portech mezi všemi IP adresami v rámci virtuální sítě. K virtuálnímu počítači myVmWeb z internetu se nedá připojit přes SSH, protože pravidlo zabezpečení pro myAsgWebServers nepovoluje příchozí port 22 z internetu.

Pomocí následujících příkazů nainstalujte webový server nginx na virtuální počítač myVmWeb :

# Update package source
sudo apt-get -y update

# Install NGINX
sudo apt-get -y install nginx

Virtuální počítač myVmWeb má povolený odchozí provoz na internet, aby načetl nginx, protože výchozí pravidlo zabezpečení umožňuje veškerý odchozí provoz do internetu. Ukončete relaci myVmWeb SSH, která vás nechá na příkazovém username@myVmMgmt:~$ řádku virtuálního počítače myVmMgmt. Pokud chcete načíst úvodní obrazovku nginx z virtuálního počítače myVmWeb , zadejte následující příkaz:

curl myVmWeb

Odhlášení virtuálního počítače myVmMgmt Pokud chcete ověřit, že máte přístup k webovému serveru myVmWeb z prostředí mimo Azure, zadejte curl <publicIpAddress> z vlastního počítače. Připojení proběhne úspěšně, protože port 80 je povolený pro příchozí spojení z internetu do skupiny zabezpečení aplikace myAsgWebServers , ve které je síťové rozhraní připojené k virtuálnímu počítači myVmWeb .

Vyčištění prostředků

Pokud už ji nepotřebujete, pomocí příkazu az group delete odeberte skupinu prostředků a všechny prostředky, které obsahuje.

az group delete --name myResourceGroup --yes

Další kroky

V tomto článku jste vytvořili skupinu zabezpečení sítě a přidružte ji k podsíti virtuální sítě. Další informace o skupinách zabezpečení sítě najdete v tématech Přehled skupin zabezpečení sítě a Správa skupiny zabezpečení sítě.

Provoz mezi podsítěmi směruje ve výchozím nastavení Azure. Místo toho se můžete rozhodnout směrovat provoz mezi podsítěmi například prostřednictvím virtuálního počítače, který slouží jako brána firewall. Postup najdete v tématu Vytvoření směrovací tabulky.