Alıştırma - Trafiği NVA üzerinden yönlendirme
Ağ sanal gerecini (NVA) ve sanal makineleri (VM) oluşturduğunuza göre trafiği NVA üzerinden yönlendireceksiniz.
Public ve private sanal makinelerini oluşturma
Sonraki adımlarda vm genel ve özel alt ağlara dağıtılır.
Cloud Shell düzenleyicisini açın ve cloud-init.txt adlı bir dosya oluşturun.
code cloud-init.txt
Dosyaya aşağıdaki yapılandırma bilgilerini ekleyin. Bu yapılandırmayla
inetutils-traceroute
, yeni bir VM oluşturduğunuzda paket yüklenir. Bu paket bu alıştırmanın devamında kullanacağınıztraceroute
yardımcı programını içerir.#cloud-config package_upgrade: true packages: - inetutils-traceroute
Dosyayı kaydetmek için Ctrl+S tuşlarına basın ve ardından düzenleyiciyi kapatmak için Ctrl+Q tuşlarına basın.
Cloud Shell'de aşağıdaki komutu çalıştırarak genel VM'yi oluşturun.
<password>
öğesini azureuser yönetici hesabı için uygun bir parolayla değiştirin.az vm create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name public \ --vnet-name vnet \ --subnet publicsubnet \ --image Ubuntu2204 \ --admin-username azureuser \ --no-wait \ --custom-data cloud-init.txt \ --admin-password <password>
Özel VM'yi oluşturmak için aşağıdaki komutu çalıştırın.
<password>
öğesini uygun bir parolayla değiştirin.az vm create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name private \ --vnet-name vnet \ --subnet privatesubnet \ --image Ubuntu2204 \ --admin-username azureuser \ --no-wait \ --custom-data cloud-init.txt \ --admin-password <password>
VM'lerin çalışıp çalışmadığını denetlemek için aşağıdaki Linux
watch
komutunu çalıştırın. komutu, vm'lerinwatch
ilerleme durumunuaz vm list
izleyebilebilmeniz için komutu düzenli aralıklarla çalıştırır.watch -d -n 5 "az vm list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --show-details \ --query '[*].{Name:name, ProvisioningState:provisioningState, PowerState:powerState}' \ --output table"
ProvisioningState özelliğinin "Başarılı" ve PowerState özelliğinin "VM çalışıyor" değerine sahip olması dağıtımın başarılı olduğunu gösterir. Sanal makinelerinizin üçü de çalıştığında devam etmeye hazırsınız demektir. Komutu durdurmak ve alıştırmaya devam etmek için Ctrl-C tuşlarına basın.
Genel VM'nin genel IP adresini adlı
PUBLICIP
bir değişkene kaydetmek için aşağıdaki komutu çalıştırın:PUBLICIP="$(az vm list-ip-addresses \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name public \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" echo $PUBLICIP
Özel VM'nin genel IP adresini adlı
PRIVATEIP
bir değişkene kaydetmek için aşağıdaki komutu çalıştırın:PRIVATEIP="$(az vm list-ip-addresses \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name private \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" echo $PRIVATEIP
Ağ sanal gereci üzerinden trafik yönlendirmesini test etme
Son adımlarda Linux traceroute
yardımcı programı kullanılarak trafiğin nasıl yönlendirildiği gösterilir. Her VM'de çalıştırmak traceroute
için komutunu kullanacaksınızssh
. İlk test, genel VM'den özel VM'ye gönderilen ICMP paketleri tarafından alınan yolu gösterir. İkinci test, özel VM'den genel VM'ye gönderilen ICMP paketleri tarafından alınan yolu gösterir.
Aşağıdaki komutu çalıştırarak public sanal makinesinden private sanal makinesine giden yolu izleyin. İstendiğinde, azureuser hesabı için daha önce belirttiğiniz parolayı girin.
ssh -t -o StrictHostKeyChecking=no azureuser@$PUBLICIP 'traceroute private --type=icmp; exit'
bash: traceroute: command not found
hata iletisini alırsanız bir dakika bekleyin ve komutu yeniden deneyin. otomatik yüklemesi VM dağıtımındantraceroute
sonra bir veya iki dakika sürebilir. Komut başarılı olduktan sonra çıkış aşağıdaki örneğe benzer görünmelidir:traceroute to private.kzffavtrkpeulburui2lgywxwg.gx.internal.cloudapp.net (10.0.1.4), 64 hops max 1 10.0.2.4 0.710ms 0.410ms 0.536ms 2 10.0.1.4 0.966ms 0.981ms 1.268ms Connection to 52.165.151.216 closed.
İlk atlamanın 10.0.2.4'e yapıldığına dikkat edin. Bu adres nva'nın özel IP adresidir. İkinci atlama private sanal makinesinin adresine (10.0.1.4) yapılır. İlk alıştırmada bu yolu yönlendirme tablosuna eklemiş ve tabloyupublicsubnet alt ağına bağlamıştınız. Bu nedenle artık genelden özele tüm trafik NVA üzerinden yönlendiriliyor.
Aşağıdaki komutu çalıştırarak private sanal makinesinden public sanal makinesine giden yolu izleyin. İstendiğinde azureuser hesabının parolasını girin.
ssh -t -o StrictHostKeyChecking=no azureuser@$PRIVATEIP 'traceroute public --type=icmp; exit'
Aşağıdaki komut çıkışında gösterildiği gibi trafiğin NVA üzerinden değil doğrudan public sanal makinesine (10.0.0.4) gittiğini görüyor olmalısınız.
traceroute to public.kzffavtrkpeulburui2lgywxwg.gx.internal.cloudapp.net (10.0.0.4), 64 hops max 1 10.0.0.4 1.095ms 1.610ms 0.812ms Connection to 52.173.21.188 closed.
Özel VM varsayılan yolları kullanıyor ve trafik doğrudan alt ağlar arasında yönlendiriliyor.
Artık genel İnternet'ten gelen trafiğin özel alt ağa ulaşmadan önce dmzsubnet alt ağından geçmesini sağlayacak şekilde alt ağlar arasındaki yönlendirmeyi yapılandırdınız. dmzsubnet alt ağına NVA işlevi gören bir VM eklediniz. Bu NVA'yı kötü amaçlı olabilecek istekleri algılamaya ve hedeflerine ulaşmadan önce engelleyecek şekilde yapılandırabilirsiniz.