Öğretici: Azure CLI ile Linux sanal makineleri için Azure sanal ağları oluşturma ve yönetme

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Azure sanal makineleri, iç ve dış ağ iletişimi için Azure ağı kullanır. Bu öğreticide, iki sanal makine dağıtma ve bu VM'ler için Azure ağı yapılandırma adımları gösterilir. Bu öğreticideki örneklerde VM'lerin veritabanı arka ucuna sahip bir web uygulaması barındırdığı varsayılır, ancak öğreticide bir uygulama dağıtılmaz. Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Sanal ağ ve alt ağ oluşturma
  • Genel IP adresi oluşturma
  • Ön uç VM oluşturma
  • Ağ trafiğinin güvenliğini sağlama
  • Arka uç VM oluşturma

Bu öğretici, sürekli olarak en son sürüme güncellenen Azure Cloud Shell içindeki CLI'yi kullanır. Cloud Shell'i açmak için herhangi bir kod bloğunun üst kısmından Deneyin'i seçin.

CLI'yi yerel olarak yükleyip kullanmayı tercih ederseniz bu öğretici için Azure CLI 2.0.30 veya sonraki bir sürümünü çalıştırmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

VM ağına genel bakış

Azure sanal ağları sanal makineler, İnternet ve Azure SQL Veritabanı gibi diğer Azure hizmetleri arasında güvenli ağ bağlantıları sağlar. Sanal ağlar alt ağ olarak adlandırılan mantıksal kesimlere ayrılır. Alt ağlar, ağ akışını denetlemek için ve güvenlik sınırı olarak kullanılır. Vm dağıtırken genellikle bir alt ağa bağlı bir sanal ağ arabirimi içerir.

Öğreticiyi tamamladığınızda aşağıdaki sanal ağ kaynakları oluşturulur:

İki alt ağa sahip sanal ağ

  • myVNet - VM'lerin birbirleriyle ve internetle iletişim kurmak için kullandığı sanal ağ.
  • myFrontendSubnet - Ön uç kaynakları tarafından kullanılan myVNet'teki alt ağ.
  • myPublicIPAddress - myFrontendVM'ye internetten erişmek için kullanılan genel IP adresi.
  • myFrontentNic - myBackendVM ile iletişim kurmak için myFrontendVM tarafından kullanılan ağ arabirimi.
  • myFrontendVM - İnternet ile myBackendVM arasında iletişim kurmak için kullanılan VM.
  • myBackendNSG - myFrontendVM ile myBackendVM arasındaki iletişimi denetleen ağ güvenlik grubu.
  • myBackendSubnet - myBackendNSG ile ilişkilendirilmiş ve arka uç kaynakları tarafından kullanılan alt ağ.
  • myBackendNic - myBackendVM tarafından myFrontendVM ile iletişim kurmak için kullanılan ağ arabirimi.
  • myBackendVM - myFrontendVM ile iletişim kurmak için 22 ve 3306 numaralı bağlantı noktalarını kullanan VM.

Sanal ağ ve alt ağ oluşturma

Bu öğreticide, iki alt ağ ile tek bir sanal ağ oluşturulur. Web uygulaması barındırmak için bir ön uç alt ağı ve veritabanı sunucusunu barındırmak için bir arka uç alt ağı.

Sanal ağ oluşturmadan önce az group create ile bir kaynak grubu oluşturun. Aşağıdaki örnek, eastus konumunda myRGNetwork adlı bir kaynak grubu oluşturur.

az group create --name myRGNetwork --location eastus

Sanal ağ oluşturma

Sanal ağ oluşturmak için az network vnet create komutunu kullanın. Bu örnekte ağa mvVNet adı verilir ve 10.0.0.0/16 adres ön eki verilir. Ayrıca myFrontendSubnet adında ve 10.0.1.0/24 ön ekiyle bir alt ağ oluşturulur. Bu öğreticinin ilerleyen bölümlerinde bu alt ağa bir ön uç VM bağlanır.

az network vnet create \
  --resource-group myRGNetwork \
  --name myVNet \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myFrontendSubnet \
  --subnet-prefix 10.0.1.0/24

Alt ağ oluşturma

az network vnet subnet create komutu kullanılarak sanal ağa yeni bir alt ağ eklenir. Bu örnekte alt ağ myBackendSubnet olarak adlandırılmıştır ve 10.0.2.0/24 adres ön eki verilmiştir. Bu alt ağ tüm arka uç hizmetleriyle birlikte kullanılır.

az network vnet subnet create \
  --resource-group myRGNetwork \
  --vnet-name myVNet \
  --name myBackendSubnet \
  --address-prefix 10.0.2.0/24

Bu noktada, bir ağ oluşturulur ve biri ön uç hizmetleri, diğeri arka uç hizmetleri için olmak üzere iki alt ağa ayrılır. Sonraki bölümde sanal makineler oluşturulur ve bu alt ağlara bağlanır.

Genel IP adresi oluşturma

Genel IP adresi, Azure kaynaklarının İnternet üzerinden erişilebilir olmasını sağlar. Genel IP adresinin ayırma yöntemi dinamik veya statik olarak yapılandırılabilir. Varsayılan olarak, bir genel IP adresi dinamik olarak ayrılır. Dinamik IP adresleri, bir VM tahsis edilmediğinde serbest bırakılır. Bu davranış, sanal makinenin serbest bırakılmasını içeren herhangi bir işlem sırasında IP adresinin değişmesine neden olur.

Ayırma yöntemi statik olarak ayarlanabilir ve bu, IP adresinin serbest bırakılmış durumdayken bile bir VM'ye atanmasını sağlar. Statik olarak ayrılmış bir IP adresi kullanılırken, IP adresinin kendisi belirtilemez. Bunun yerine, kullanılabilir adreslerden oluşan bir havuzdan ayrılır.

az network public-ip create --resource-group myRGNetwork --name myPublicIPAddress

az vm create komutuyla vm oluştururken varsayılan genel IP adresi ayırma yöntemi dinamiktir. az vm create komutunu kullanarak bir sanal makine oluştururken, statik bir genel IP adresi atamak için bağımsız değişkenini ekleyin--public-ip-address-allocation static. Bu işlem bu öğreticide gösterilmez, ancak sonraki bölümde dinamik olarak ayrılmış bir IP adresi statik olarak ayrılmış bir adrese değiştirilir.

Ayırma yöntemini değiştirme

IP adresi ayırma yöntemi az network public-ip update komutu kullanılarak değiştirilebilir. Bu örnekte, ön uç VM'nin IP adresi ayırma yöntemi statik olarak değiştirilir.

İlk olarak VM'yi serbest bırakma.

az vm deallocate --resource-group myRGNetwork --name myFrontendVM

Ayırma yöntemini güncelleştirmek için az network public-ip update komutunu kullanın. Bu durumda, --allocation-methodstatik olarak ayarlanır.

az network public-ip update --resource-group myRGNetwork --name myPublicIPAddress --allocation-method static

VM'yi başlatın.

az vm start --resource-group myRGNetwork --name myFrontendVM --no-wait

Genel IP adresi yok

Çoğu zaman sanal makinenin İnternet üzerinden erişilebilir olması gerekmez. Herkese açık IP adresi olmayan bir VM oluşturmak için --public-ip-address "" bağımsız değişkenini boş bir çift tırnak kümesiyle kullanın. Bu yapılandırma, bu eğitimin ilerleyen bölümlerinde gösterilmiştir.

Ön uç VM oluşturma

az vm create komutunu kullanarak myPublicIPAddress kullanarak myFrontendVM adlı VM'yi oluşturun.

az vm create \
  --resource-group myRGNetwork \
  --name myFrontendVM \
  --vnet-name myVNet \
  --subnet myFrontendSubnet \
  --nsg myFrontendNSG \
  --public-ip-address myPublicIPAddress \
  --image Ubuntu2204 \
  --generate-ssh-keys

Ağ trafiğinin güvenliğini sağlama

Ağ güvenlik grubu (NSG), Azure Sanal Ağlarına (VNet) bağlı kaynaklara yönelik ağ trafiğine izin veren veya reddeden güvenlik kurallarının listesini içerir. NSG'ler alt ağlarla veya tek tek ağ arabirimleriyle ilişkilendirilebilir. NSG bir ağ arabirimiyle ilişkilendirildiğinde, yalnızca ilişkili VM'yi uygular. Bir NSG bir alt ağ ile ilişkilendirildiğinde kurallar alt ağa bağlı tüm kaynaklar için geçerli olur.

Ağ güvenlik grubu kuralları

NSG kuralları, trafiğe izin verilen veya reddedilen ağ bağlantı noktalarını tanımlar. Kurallar, trafiğin belirli sistemler veya alt ağlar arasında denetlenmesi için kaynak ve hedef IP adresi aralıklarını içerebilir. NSG kuralları bir öncelik de içerir (1 ile 4096 arasında). Kurallar öncelik sırasına göre değerlendirilir. Önceliği 100 olan bir kural, öncelik 200 olan bir kuraldan önce değerlendirilir.

Tüm NSG'ler bir varsayılan kurallar kümesini içerir. Varsayılan kurallar silinemez, ancak en düşük önceliğe atandıkları için, oluşturduğunuz kurallar tarafından geçersiz kılınabilir.

NSG'ler için varsayılan kurallar şunlardır:

  • Sanal ağ - Bir sanal ağ ile gelen ve biten trafiğe hem gelen hem de giden yönlerde izin verilir.
  • İnternet - Giden trafiğe izin verilir, ancak gelen trafik engellenir.
  • Yük dengeleyici - Azure'ın yük dengeleyicisinin VM'lerinizin ve rol örneklerinizin durumunu araştırmasına izin verin. Yük dengeli küme kullanmıyorsanız, bu kuralı geçersiz kılabilirsiniz.

Ağ güvenlik grupları oluşturma

Az vm create komutu kullanılarak vm ile aynı anda bir ağ güvenlik grubu oluşturulabilir. Bunu yaparken, NSG VM'ler ağ arabirimiyle ilişkilendirilir ve herhangi bir kaynaktan 22 numaralı bağlantı noktasında trafiğe izin vermek için bir NSG kuralı otomatik olarak oluşturulur. Bu öğreticinin önceki bölümlerinde ön uç NSG ön uç VM ile otomatik olarak oluşturulmuştur. Ayrıca 22 numaralı bağlantı noktası için bir NSG kuralı da otomatik olarak oluşturulmuştur.

Bazı durumlarda, varsayılan SSH kurallarının oluşturulmaması veya NSG'nin bir alt ağa eklenmesi gerektiği durumlar gibi bir NSG'nin önceden oluşturulması yararlı olabilir.

Ağ güvenlik grubu oluşturmak için az network nsg create komutunu kullanın.

az network nsg create --resource-group myRGNetwork --name myBackendNSG

NSG'yi bir ağ arabirimiyle ilişkilendirmek yerine bir alt ağ ile ilişkilendirilir. Bu yapılandırmada, alt ağa bağlı tüm VM'ler NSG kurallarını devralır.

myBackendSubnet adlı mevcut alt ağı yeni NSG ile güncelleştirin.

az network vnet subnet update \
  --resource-group myRGNetwork \
  --vnet-name myVNet \
  --name myBackendSubnet \
  --network-security-group myBackendNSG

Gelen trafiğin güvenliğini sağlama

Ön uç VM oluşturulduğunda, 22 numaralı bağlantı noktasında gelen trafiğe izin veren bir NSG kuralı oluşturuldu. Bu kural VM'ye SSH bağlantılarına izin verir. Bu örnekte 80 numaralı bağlantı noktasında trafiğe de izin verilmelidir. Bu yapılandırma, sanal makinede bir web uygulamasına erişilmesine olanak tanır.

80 numaralı bağlantı noktası için bir kural oluşturmak için az network nsg rule create komutunu kullanın.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myFrontendNSG \
  --name http \
  --access allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 200 \
  --source-address-prefix "*" \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 80

Ön uç VM'ye yalnızca 22 numaralı bağlantı noktası ve 80 numaralı bağlantı noktası üzerinden erişilebilir. Diğer tüm gelen trafik ağ güvenlik grubunda engellenir. NSG kuralı yapılandırmalarını görselleştirmek yararlı olabilir. az network rule list komutuyla NSG kuralı yapılandırmasını döndürür.

az network nsg rule list --resource-group myRGNetwork --nsg-name myFrontendNSG --output table

Sanal makineden sanal makineye trafiği güvence altına alma

Ağ güvenlik grubu kuralları VM'ler arasında da uygulanabilir. Bu örnekte, ön uç VM'sinin 22 ve 3306 numaralı bağlantı noktasında arka uç VM ile iletişim kurması gerekir. Bu yapılandırma ön uç VM'sinden SSH bağlantılarına izin verir ve ayrıca ön uç VM'sinde bir uygulamanın arka uç MySQL veritabanıyla iletişim kurmasına izin verir. Ön uç ve arka uç sanal makineleri arasındaki diğer tüm trafik engellenmelidir.

22 numaralı bağlantı noktası için bir kural oluşturmak için az network nsg rule create komutunu kullanın. Bağımsız değişkeninin --source-address-prefix10.0.1.0/24 değerini belirttiğine dikkat edin. Bu yapılandırma yalnızca ön uç alt ağından gelen trafiğe NSG üzerinden izin verilmesini sağlar.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name SSH \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix 10.0.1.0/24 \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "22"

Şimdi 3306 numaralı bağlantı noktasına MySQL trafiği için bir kural ekleyin.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name MySQL \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 200 \
  --source-address-prefix 10.0.1.0/24 \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "3306"

Son olarak, NSG'ler aynı sanal taki VM'ler arasındaki tüm trafiğe izin veren varsayılan bir kurala sahip olduğundan, arka uç NSG'lerinin tüm trafiği engellemesi için bir kural oluşturulabilir. burada --priority değerine 300 değerinin verildiğine ve hem NSG hem de MySQL kurallarının daha düşük olduğuna dikkat edin. Bu yapılandırma, SSH ve MySQL trafiğine NSG üzerinden izin verilmeye devam edilmesini sağlar.

az network nsg rule create \
  --resource-group myRGNetwork \
  --nsg-name myBackendNSG \
  --name denyAll \
  --access Deny \
  --protocol Tcp \
  --direction Inbound \
  --priority 300 \
  --source-address-prefix "*" \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range "*"

Arka uç VM oluşturma

Şimdi myBackendSubnet'e bağlı bir sanal makine oluşturun. Bağımsız değişkenin --nsg boş bir çift tırnak işareti değerine sahip olduğuna dikkat edin. VM ile NSG oluşturulması gerekmez. VM, önceden oluşturulmuş arka uç NSG'siyle korunan arka uç alt ağına eklenir. Bu NSG, VM için geçerlidir. Ayrıca, burada bağımsız değişken --public-ip-address'nin boş çift tırnak değerine sahip olduğuna dikkat çekin. Bu yapılandırma, genel IP adresi olmayan bir VM oluşturur.

az vm create \
  --resource-group myRGNetwork \
  --name myBackendVM \
  --vnet-name myVNet \
  --subnet myBackendSubnet \
  --public-ip-address "" \
  --nsg "" \
  --image Ubuntu2204 \
  --generate-ssh-keys

Arka uç VM'sine yalnızca ön uç alt ağından 22 numaralı bağlantı noktası ve 3306 numaralı bağlantı noktası üzerinden erişilebilir. Diğer tüm gelen trafik ağ güvenlik grubunda engellenir. NSG kuralı yapılandırmalarını görselleştirmek yararlı olabilir. az network rule list komutuyla NSG kuralı yapılandırmasını döndürür.

az network nsg rule list --resource-group myRGNetwork --nsg-name myBackendNSG --output table

Sonraki adımlar

Bu öğreticide, sanal makinelerle ilgili olarak Azure ağları oluşturdunuz ve güvenliğini sağladınız. Nasıl yapılacağını öğrendinsiniz:

  • Sanal ağ ve alt ağ oluşturma
  • Genel IP adresi oluşturma
  • Ön uç VM oluşturma
  • Ağ trafiğinin güvenliğini sağlama
  • Arka uç VM oluşturma

VM disklerinizi koruma hakkında bilgi edinmek için bkz . Diskler için yedekleme ve olağanüstü durum kurtarma.