Azure CLı kullanarak ağ trafiğini ağ güvenlik grubuyla filtreleme

Bir sanal ağ alt ağına gelen ve sanal ağ alt ağından giden ağ trafiğini, bir ağ güvenlik grubu ile filtreleyebilirsiniz. Ağ güvenlik grupları, ağ trafiğini IP adresi, bağlantı noktası ve protokole göre filtreleyen güvenlik kuralları içerir. Güvenlik kuralları bir alt ağda dağıtılmış kaynaklara uygulanır. Bu makalede şunları öğreneceksiniz:

  • Ağ güvenlik grubu ve güvenlik kuralları oluşturma
  • Bir sanal ağ oluşturma ve ağ güvenlik grubunu alt ağ ile ilişkilendirme
  • Sanal makineleri (VM) bir alt ağa dağıtma
  • Trafik filtrelerini test etme

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Bu makale, Azure CLı 'nin sürüm 2.0.28 veya üstünü gerektirir. Azure Cloud Shell kullanılıyorsa, en son sürüm zaten yüklüdür.

Ağ güvenlik grubu oluşturma

Bir ağ güvenlik grubu, güvenlik kuralları içerir. Güvenlik kuralları, bir kaynak ve hedefi belirtir. Kaynaklar ve hedefler, uygulama güvenlik grupları olabilir.

Uygulama güvenlik grupları oluşturma

Önce Bu makalede oluşturulan tüm kaynaklar için az Group Createkomutuyla bir kaynak grubu oluşturun. Aşağıdaki örnekte eastus konumunda bir kaynak grubu oluşturulmaktadır:

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

Az Network ASG Createkomutuyla bir uygulama güvenlik grubu oluşturun. Uygulama güvenlik grubu, benzer bağlantı noktası filtreleme gereksinimlerine sahip sunucuları gruplandırmanızı sağlar. Aşağıdaki örnek iki uygulama güvenlik grubu oluşturur.

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şturma

Az Network NSG Createkomutuyla bir ağ güvenlik grubu oluşturun. Aşağıdaki örnek myNsg adlı bir ağ güvenlik grubu oluşturur:

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

Güvenlik kuralları oluşturma

Az Network NSG Rule Createile bir güvenlik kuralı oluşturun. 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:

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, Internet 'ten gelen trafiğin 22 numaralı bağlantı noktası üzerinden Mymgmtservers uygulama güvenlik grubuna erişmesine izin veren bir kural oluşturur:

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), Myasgmgmtservers sanal makinesi için internet 'e açıktır. Üretim ortamları için 22 numaralı bağlantı noktasını Internet 'e sunmak yerine, bir VPN veya özel ağ bağlantısı kullanarak yönetmek istediğiniz Azure kaynaklarına bağlanmanız önerilir.

Sanal ağ oluşturma

az network vnet create komutu ile bir sanal ağ oluşturun. Aşağıdaki örnek myVirtualNetwork adlı bir sanal ağ oluşturur:

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

Az Network VNET subnet Createkomutuyla bir sanal ağa alt ağ ekleyin. Aşağıdaki örnek, sanal ağa mySubnet adlı bir alt ağ ekler ve myNsg ağ güvenlik grubunu onunla ilişkilendirir:

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şturma

Daha sonraki bir adımda trafik filtrelemesini doğrulayabilmek için sanal ağda iki VM oluşturun.

az vm create ile bir VM oluşturun. Aşağıdaki örnek, web sunucusu olarak görev yapacak bir VM oluşturur. --asgs myAsgWebServersSeçeneği, Azure 'un VM Için Myasgwebservers uygulama güvenlik grubunun bir üyesi için oluşturduğu ağ arabirimini yapmasına neden olur.

--nsg ""Bu seçenek, Azure 'un VM oluşturduğunda Azure tarafından oluşturulan ağ arabirimi için varsayılan bir ağ güvenlik grubu oluşturmasını engellemek üzere belirtilmiştir. Bu makaleyi kolaylaştırmak için bir parola kullanılır. Anahtarlar genellikle üretim dağıtımlarında kullanılır. Anahtarları kullanıyorsanız, diğer adımlar için SSH Aracısı iletmeyi da yapılandırmanız gerekir. Daha fazla bilgi için SSH istemcinizin belgelerine bakın. <replace-with-your-password>Aşağıdaki komutta yerine, seçtiğiniz parolayla değiştirin.

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. VM oluşturulduktan sonra, aşağıdaki örneğe benzer bir çıktı döndürülür:

{
  "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. Bu adres, sonraki bir adımda sanal makineye internet 'ten erişmek için kullanılır. Yönetim sunucusu olarak görev yapacak bir VM oluşturun:

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. VM oluşturulduktan sonra döndürülen çıktıda Publicıpaddress ' i aklınızda bulunur. Bu adres, bir sonraki adımda sanal makineye erişmek için kullanılır. Azure VM oluşturma işlemini tamamlayana kadar sonraki adıma geçmeyin.

Trafik filtrelerini test etme

Myvmmgmt VM Ile bir SSH oturumu oluşturmak için aşağıdaki komutu kullanın. <publicIpAddress> Sanal makinenizin genel IP adresi ile değiştirin. Yukarıdaki örnekte, IP adresi 13.90.242.231' dir.

ssh azureuser@<publicIpAddress>

Bir parola istendiğinde, VM oluşturmabölümünde girdiğiniz parolayı girin.

Bağlantı noktası 22 ' den Internet 'ten gelen ve Myvmmgmt sanal makinesine bağlı ağ arabiriminin bulunduğu Myasgmgmtservers uygulama güvenlik grubuna izin verildiğinden bağlantı başarılı olur.

Myvmmgmt VM 'Sinden MYVMWEB VM 'sine SSH için aşağıdaki komutu kullanın:

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. Myasgwebservers güvenlik kuralı Internet 'ten gelen bağlantı noktası 22 ' ye izin vermediğinden, myvmweb VM 'sine internet 'ten SSH yapamazsınız.

Myvmweb VM 'sine NGINX web sunucusunu yüklemek için aşağıdaki komutları kullanın:

# Update package source
sudo apt-get -y update

# Install NGINX
sudo apt-get -y install nginx

Varsayılan bir güvenlik kuralı Internet 'e giden tüm trafiğe izin verdiğinden, Myvmweb VM 'sinin NGINX 'i alabilmesi için internet 'e giden trafiğe izin verilir. Myvmweb SSH oturumundan çıkın, bu, sizi username@myVmMgmt:~$ myvmmgmt sanal makinesi isteminde bırakır. Myvmweb VM 'sinden NGINX karşılama ekranını almak için aşağıdaki komutu girin:

curl myVmWeb

Myvmmgmt sanal makinesi oturumu kapatma. Azure dışından Myvmweb Web sunucusuna erişebildiğinizden emin olmak için curl <publicIpAddress> kendi bilgisayarınızdan girin. Bağlantı noktası 80, Internet 'ten Myvmweb VM 'sine bağlı ağ arabiriminin bulunduğu Myasgwebservers uygulama güvenlik grubuna izin verildiğinden bağlantı başarılı olur.

Kaynakları temizleme

Artık gerekli değilse, az Group Delete ' i kullanarak kaynak grubunu ve içerdiği tüm kaynakları kaldırın.

az group delete --name myResourceGroup --yes

Sonraki adımlar

Bu makalede bir ağ güvenlik grubu oluşturdunuz ve bunu bir sanal ağ alt ağıyla ilişkilendirdiyseniz. Ağ güvenlik grupları hakkında daha fazla bilgi edinmek bkz. Ağ güvenlik grubuna genel bakış ve Ağ güvenlik grubunu yönetme.

Azure, varsayılan olarak trafiği alt ağlar arasında yönlendirir. 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. Nasıl yapılacağını öğrenmek için bkz. yol tablosu oluşturma.