Azure CLI kullanarak bir ağ güvenlik grubu ile ağ trafiğini filtrelemeFilter network traffic with a network security group using the Azure CLI

Bir sanal ağ alt ağına gelen ve sanal ağ alt ağından giden ağ trafiğini, bir ağ güvenlik grubu ile filtreleyebilirsiniz.You can filter network traffic inbound to and outbound from a virtual network subnet with a network security group. Ağ güvenlik grupları, ağ trafiğini IP adresi, bağlantı noktası ve protokole göre filtreleyen güvenlik kuralları içerir.Network security groups contain security rules that filter network traffic by IP address, port, and protocol. Güvenlik kuralları bir alt ağda dağıtılmış kaynaklara uygulanır.Security rules are applied to resources deployed in a subnet. Bu makalede şunları öğreneceksiniz:In this article, you learn how to:

  • Ağ güvenlik grubu ve güvenlik kuralları oluşturmaCreate a network security group and security rules
  • Bir sanal ağ oluşturma ve ağ güvenlik grubunu alt ağ ile ilişkilendirmeCreate a virtual network and associate a network security group to a subnet
  • Sanal makineleri (VM) bir alt ağa dağıtmaDeploy virtual machines (VM) into a subnet
  • Trafik filtrelerini test etmeTest traffic filters

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell kullanmaUse Azure Cloud Shell

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı Azure Cloud Shell.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell, ya da bash PowerShell Azure hizmetleriyle çalışmak için kullanmanıza olanak sağlar.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell önceden yüklenmiş komutları kullanabilirsiniz.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell başlatmak için:To launch Azure Cloud Shell:

SeçenekOption Örnek/bağlantıExample/Link
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin.Select Try It in the upper-right corner of a code block. Dene ' nin seçilmesi, kodu Cloud Shell otomatik olarak kopyalamaz.Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell için deneme örneği
Tarayıcınızda Cloud Shell açmak için Başlat Cloud Shell düğmesine gidin veyaseçin. https://shell.azure.comGo to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Cloud Shell yeni bir pencerede BaşlatLaunch Cloud Shell in a new window
Azure Portalsağ üstteki menü çubuğunda Cloud Shell düğmesini seçin.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure portaldaki Cloud Shell düğmesi

Bu makaledeki kodu Azure Cloud Shell çalıştırmak için:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell başlatın.Launch Cloud Shell.
  2. Kodu kopyalamak için bir kod bloğunda Kopyala düğmesini seçin.Select the Copy button on a code block to copy the code.
  3. Kodu Windows ve Linux 'ta CTRL+SHIFT+v veya MacOS 'ta cmd+Shift+v ile Cloud Shell oturumuna yapıştırın.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Kodu çalıştırmak için ENTER tuşuna basın.Press Enter to run the code.

CLI'yi yerel olarak yükleyip kullanmayı tercih ederseniz bu makale, Azure CLI 2.0.28 çalıştırdığınız gerekir veya üzeri.If you choose to install and use the CLI locally, this article requires that you are running the Azure CLI version 2.0.28 or later. Sürümü bulmak için az --version komutunu çalıştırın.To find the version, run az --version. Yükleme veya yükseltme yapmanız gerekiyorsa bkz. Azure CLI'yı yükleme.If you need to install or upgrade, see Install Azure CLI.

Ağ güvenlik grubu oluşturmaCreate a network security group

Bir ağ güvenlik grubu, güvenlik kuralları içerir.A network security group contains security rules. Güvenlik kuralları, bir kaynak ve hedefi belirtir.Security rules specify a source and destination. Kaynaklar ve hedefler, uygulama güvenlik grupları olabilir.Sources and destinations can be application security groups.

Uygulama güvenlik grupları oluşturmaCreate application security groups

Önce bu makalede oluşturulan tüm kaynakları için bir kaynak grubu oluşturma az grubu oluşturma.First create a resource group for all the resources created in this article with az group create. Aşağıdaki örnekte eastus konumunda bir kaynak grubu oluşturulmaktadır:The following example creates a resource group in the eastus location:

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

Bir uygulama güvenlik grubu oluşturun az ağ asg oluşturma.Create an application security group with az network asg create. Uygulama güvenlik grubu, benzer bağlantı noktası filtreleme gereksinimlerine sahip sunucuları gruplandırmanızı sağlar.An application security group enables you to group servers with similar port filtering requirements. Aşağıdaki örnek iki uygulama güvenlik grubu oluşturur.The following example creates two application security groups.

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

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

Ağ güvenlik grubu oluşturmaCreate a network security group

Bir ağ güvenlik grubu oluşturun az ağ nsg oluşturma.Create a network security group with az network nsg create. Aşağıdaki örnek myNsg adlı bir ağ güvenlik grubu oluşturur:The following example creates a network security group named myNsg:

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

Güvenlik kuralları oluşturmaCreate security rules

Bir güvenlik kuralı oluşturun az ağ nsg kuralı oluşturmak.Create a security rule with az network nsg rule create. Aşağıdaki örnek, internetten gelen trafiğin 80 ve 443 numaralı bağlantı noktaları üzerinden myWebServers uygulama güvenlik grubuna gitmesine izin veren bir kural oluşturur:The following example creates a rule that allows traffic inbound from the internet to the myWebServers application security group over ports 80 and 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

Aşağıdaki örnek, trafiğe izin veren bir kural oluşturur için Internet'ten gelen myMgmtServers bağlantı noktası 22 üzerinden uygulama güvenlik grubu:The following example creates a rule that allows traffic inbound from the Internet to the myMgmtServers application security group over 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

Bu makalede, SSH (bağlantı noktası 22) için İnternet'e kullanıma sunulan myAsgMgmtServers VM.In this article, SSH (port 22) is exposed to the internet for the myAsgMgmtServers VM. Bağlantı noktası 22 Internet'e gösterme yerine üretim ortamları için kullanarak yönetmek istediğiniz Azure kaynaklarına bağlamanız önerilir bir VPN veya özel ağ bağlantısı.For production environments, instead of exposing port 22 to the internet, it's recommended that you connect to Azure resources that you want to manage using a VPN or private network connection.

Sanal ağ oluşturmaCreate a virtual network

az network vnet create komutu ile bir sanal ağ oluşturun.Create a virtual network with az network vnet create. Aşağıdaki örnek myVirtualNetwork adlı bir sanal ağ oluşturur:The following example creates a virtual named myVirtualNetwork:

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

Bir sanal ağ ile bir alt ağ Ekle az ağ sanal ağ alt ağı oluşturma.Add a subnet to a virtual network with az network vnet subnet create. Aşağıdaki örnek, sanal ağa mySubnet adlı bir alt ağ ekler ve myNsg ağ güvenlik grubunu onunla ilişkilendirir:The following example adds a subnet named mySubnet to the virtual network and associates the myNsg network security group to it:

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

Sanal makineler oluşturmaCreate virtual machines

Daha sonraki bir adımda trafik filtrelemesini doğrulayabilmek için sanal ağda iki VM oluşturun.Create two VMs in the virtual network so you can validate traffic filtering in a later step.

az vm create ile bir VM oluşturun.Create a VM with az vm create. Aşağıdaki örnek, web sunucusu olarak görev yapacak bir VM oluşturur.The following example creates a VM that will serve as a web server. --asgs myAsgWebServers Seçenek neden üyesi sanal makine için oluşturduğu ağ arabirimi için Azure'da Myvmweb uygulama güvenlik grubu.The --asgs myAsgWebServers option causes Azure to make the network interface it creates for the VM a member of the myAsgWebServers application security group.

--nsg "" Seçeneği, Azure, Azure VM oluştururken oluşturduğu ağ arabirimi için bir varsayılan ağ güvenlik grubu oluşturmasını önlemek için belirtilir.The --nsg "" option is specified to prevent Azure from creating a default network security group for the network interface Azure creates when it creates the VM. Bu makalede kolaylaştırmak için bir parola kullanılır.To streamline this article, a password is used. Anahtarlar genellikle üretim dağıtımında kullanılır.Keys are typically used in production deployments. Anahtarları kullanıyorsanız, SSH aracı iletmeyi kalan adımları yapılandırmanız da gerekir.If you use keys, you must also configure SSH agent forwarding for the remaining steps. Daha fazla bilgi için SSH istemcinizin belgelerine bakın.For more information, see the documentation for your SSH client. Değiştirin <replace-with-your-password> seçtiğiniz parolayla aşağıdaki komutta.Replace <replace-with-your-password> in the following command with a password of your choosing.

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

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

Sanal makinenin oluşturulması birkaç dakika sürer.The VM takes a few minutes to create. VM oluşturulduktan sonra aşağıdaki örneğe benzer bir çıktı döndürülür:After the VM is created, output similar to the following example is returned:

{
  "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"
}

publicIpAddress değerini not alın.Take note of the publicIpAddress. Bu adres, bir sonraki adımda internet'ten sanal Makineye erişmek için kullanılır.This address is used to access the VM from the internet in a later step. Yönetim sunucusu olarak görev yapacak bir VM oluşturun:Create a VM to serve as a management server:

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

Sanal makinenin oluşturulması birkaç dakika sürer.The VM takes a few minutes to create. VM oluşturulduktan sonra Not Publicıpaddress döndürülen çıktı.After the VM is created, note the publicIpAddress in the returned output. Bu adres, sonraki adımda sanal Makineye erişmek için kullanılır.This address is used to access the VM in the next step. Azure VM oluşturma işlemini tamamlayana kadar sonraki adıma geçmeyin.Don't continue with the next step until Azure finishes creating the VM.

Trafik filtrelerini test etmeTest traffic filters

İle bir SSH oturumu oluşturmak için aşağıdaki komutu kullanın myVmMgmt VM.Use the command that follows to create an SSH session with the myVmMgmt VM. Değiştirin <Publicıpaddress > sanal makinenizin genel IP adresiyle.Replace <publicIpAddress> with the public IP address of your VM. Yukarıdaki örnekte, IP adresidir 13.90.242.231.In the example above, the IP address is 13.90.242.231.

ssh azureuser@<publicIpAddress>

Parola istendiğinde, girdiğiniz parolayı girin oluşturduğunuz Vm'lere.When prompted for a password, enter the password you entered in Create VMs.

22 numaralı bağlantı noktasını, Internet'ten gelen izin verildiği için bağlantı başarılı myAsgMgmtServers bağlı ağ arabiriminin uygulama güvenlik grubu myVmMgmt olur.The connection succeeds, because port 22 is allowed inbound from the Internet to the myAsgMgmtServers application security group that the network interface attached to the myVmMgmt VM is in.

SSH oturumu açmak için aşağıdaki komutu kullanın myVmWeb VM'den myVmMgmt VM:Use the following command to SSH to the myVmWeb VM from the myVmMgmt VM:

ssh azureuser@myVmWeb

Her bir ağ güvenlik grubu içindeki varsayılan güvenlik kuralı bir sanal ağ içindeki tüm IP adresleri arasında tüm bağlantı noktaları üzerinden trafiğe izin verdiği için bağlantı başarılı olur.The connection succeeds because a default security rule within each network security group allows traffic over all ports between all IP addresses within a virtual network. SSH olamaz myVmWeb VM'nin İnternet'ten gelen güvenlik kuralı olmadığından Myvmweb bağlantı noktasına izin 22 Internet'ten gelen.You can't SSH to the myVmWeb VM from the Internet because the security rule for the myAsgWebServers doesn't allow port 22 inbound from the Internet.

Ngınx web sunucusunu yüklemek için aşağıdaki komutları kullanın myVmWeb VM:Use the following commands to install the nginx web server on the myVmWeb VM:

# Update package source
sudo apt-get -y update

# Install NGINX
sudo apt-get -y install nginx

MyVmWeb VM nginx varsayılan güvenlik kuralından giden tüm trafiği İnternet'e izin verdiğinden almak için İnternet'e giden izin verilir.The myVmWeb VM is allowed outbound to the Internet to retrieve nginx because a default security rule allows all outbound traffic to the Internet. Çıkış myVmWeb adresindeki bırakan SSH oturumu username@myVmMgmt:~$ , komut istemi myVmMgmt VM.Exit the myVmWeb SSH session, which leaves you at the username@myVmMgmt:~$ prompt of the myVmMgmt VM. Ngınx Karşılama ekranında alınacak myVmWeb VM, aşağıdaki komutu girin:To retrieve the nginx welcome screen from the myVmWeb VM, enter the following command:

curl myVmWeb

Oturumunu kapatıp myVmMgmt VM.Logout of the myVmMgmt VM. Erişebildiğinizi onaylamak için myVmWeb girin, web sunucusuna Azure dışından curl <publicIpAddress> kendi bilgisayardan.To confirm that you can access the myVmWeb web server from outside of Azure, enter curl <publicIpAddress> from your own computer. 80 numaralı bağlantı noktasını, Internet'ten gelen izin verildiği için bağlantı başarılı Myvmweb bağlı ağ arabiriminin uygulama güvenlik grubu myVmWeb olur.The connection succeeds, because port 80 is allowed inbound from the Internet to the myAsgWebServers application security group that the network interface attached to the myVmWeb VM is in.

Kaynakları temizlemeClean up resources

Artık gerekli değilse az grubu Sil kaynak grubunu ve içerdiği tüm kaynakları kaldırmak için.When no longer needed, use az group delete to remove the resource group and all of the resources it contains.

az group delete --name myResourceGroup --yes

Sonraki adımlarNext steps

Bu makalede, bir ağ güvenlik grubu oluşturdunuz ve bir sanal ağ alt ağ ile ilişkilendirilmiş.In this article, you created a network security group and associated it to a virtual network subnet. Ağ güvenlik grupları hakkında daha fazla bilgi edinmek bkz. Ağ güvenlik grubuna genel bakış ve Ağ güvenlik grubunu yönetme.To learn more about network security groups, see Network security group overview and Manage a network security group.

Azure, varsayılan olarak trafiği alt ağlar arasında yönlendirir.Azure routes traffic between subnets by default. Bunun yerine, alt ağlar arasındaki trafiği, örneğin, güvenlik duvarı olarak görev yapan bir VM aracılığıyla yönlendirmeyi seçebilirsiniz.You may instead, choose to route traffic between subnets through a VM, serving as a firewall, for example. Bilgi edinmek için bkz. nasıl yönlendirme tablosu oluşturma.To learn how, see Create a route table.