Azure CLI kullanarak Azure Güvenlik Duvarı dağıtma ve yapılandırma

Giden ağ erişimini denetleme, genel ağ güvenlik planının önemli bir parçasıdır. Örneğin, web sitelerine erişimi sınırlamak isteyebilirsiniz. Öte yandan, erişilebilen giden IP adreslerini ve bağlantı noktalarını sınırlamak da isteyebilirsiniz.

Azure Güvenlik Duvarı, Azure alt ağından giden ağ erişimini denetlemenin bir yoludur. Azure Güvenlik Duvarı ile şunları yapılandırabilirsiniz:

  • Bir alt ağdan erişilebilen tam etki alanı adlarını (FQDN) tanımlayan uygulama kuralları. FQDN, SQL örneklerini de içerebilir.
  • Kaynak adres, protokol, hedef bağlantı noktası ve hedef adresini tanımlayan ağ kuralları.

Ağ trafiğinizi güvenlik duvarından alt ağın varsayılan ağ geçidi olarak yönlendirdiğinizde ağ trafiği yapılandırılan güvenlik duvarı kurallarına tabi tutulur.

Bu makalede, kolay dağıtım için üç alt ağa sahip basitleştirilmiş tek bir sanal ağ oluşturursunuz. Üretim dağıtımları için merkez-uç modeli önerilir. Güvenlik duvarı kendi sanal asındadır. İş yükü sunucuları, bir veya daha fazla alt ağa sahip aynı bölgedeki eşlenmiş sanal ağlarda yer alır.

  • AzureFirewallSubnet - güvenlik duvarı bu alt ağdadır.
  • Workload-SN: İş yükü sunucusu bu alt ağda yer alır. Bu alt ağın ağ trafiği güvenlik duvarından geçer.
  • Jump-SN: "Atlama" sunucusu bu alt ağda yer alır. Atlama sunucusu, Uzak Masaüstü ile bağlanabileceğiniz genel IP adresine sahiptir. Buradan iş yükü sunucusuna bağlanabilirsiniz (başka bir Uzak Masaüstü oturumuyla).

Ağ altyapısı diyagramı.

Bu makalede şunları öğreneceksiniz:

  • Test amaçlı ağ ortamı oluşturma
  • Güvenlik duvarı dağıtma
  • Varsayılan rota oluşturma
  • Uygulama kuralını www.google.com erişime izin verecek şekilde yapılandırma
  • Dış DNS sunucularına erişime izin vermek için ağ kuralı yapılandırma
  • Güvenlik duvarını test etme

İsterseniz, Azure portalını veya Azure PowerShell'i kullanarak bu yordamı tamamlayabilirsiniz.

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

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • 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. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısı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 CLI'nın 2.55.0 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

Ağı ayarlama

İlk olarak güvenlik duvarını dağıtmak için gerekli olan kaynakları içerecek bir kaynak grubu oluşturun. Ardından sanal ağı, alt ağları ve test sunucularını oluşturun.

Kaynak grubu oluşturma

Kaynak grubu, dağıtım için tüm kaynakları içerir.

az group create --name Test-FW-RG --location eastus

Sanal ağ oluşturma

Bu sanal ağın üç alt ağı vardır.

Not

AzureFirewallSubnet alt ağı boyutu /26'dır. Alt ağ boyutu hakkında daha fazla bilgi için bkz. Azure Güvenlik Duvarı SSS.

az network vnet create \
  --name Test-FW-VN \
  --resource-group Test-FW-RG \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name AzureFirewallSubnet \
  --subnet-prefix 10.0.1.0/26
az network vnet subnet create \
  --name Workload-SN \
  --resource-group Test-FW-RG \
  --vnet-name Test-FW-VN   \
  --address-prefix 10.0.2.0/24
az network vnet subnet create \
  --name Jump-SN \
  --resource-group Test-FW-RG \
  --vnet-name Test-FW-VN   \
  --address-prefix 10.0.3.0/24

Sanal makineleri oluşturma

Şimdi atlama ve iş yükü sanal makinelerini oluşturup uygun alt ağlara yerleştirin. İstendiğinde, sanal makine için bir parola yazın.

Srv-Jump sanal makinesini oluşturun.

az vm create \
    --resource-group Test-FW-RG \
    --name Srv-Jump \
    --location eastus \
    --image win2016datacenter \
    --vnet-name Test-FW-VN \
    --subnet Jump-SN \
    --admin-username azureadmin
az vm open-port --port 3389 --resource-group Test-FW-RG --name Srv-Jump

Belirli DNS sunucusu IP adresleriyle ve test etmek için genel IP adresi olmadan Srv-Work için bir NIC oluşturun.

az network nic create \
    -g Test-FW-RG \
    -n Srv-Work-NIC \
   --vnet-name Test-FW-VN \
   --subnet Workload-SN \
   --public-ip-address "" \
   --dns-servers 209.244.0.3 209.244.0.4

Şimdi iş yükü sanal makinesini oluşturun. İstendiğinde, sanal makine için bir parola yazın.

az vm create \
    --resource-group Test-FW-RG \
    --name Srv-Work \
    --location eastus \
    --image win2016datacenter \
    --nics Srv-Work-NIC \
    --admin-username azureadmin

Not

Azure, genel IP adresi atanmamış veya bir iç temel Azure yük dengeleyicinin arka uç havuzunda yer alan VM'ler için varsayılan bir giden erişim IP'si sağlar. Varsayılan giden erişim IP mekanizması, yapılandırılamayan bir giden IP adresi sağlar.

Aşağıdaki olaylardan biri gerçekleştiğinde varsayılan giden erişim IP'si devre dışı bırakılır:

Sanal makine ölçek kümelerini esnek düzenleme modunda kullanarak oluşturduğunuz VM'lerin varsayılan giden erişimi yoktur.

Azure'daki giden bağlantılar hakkında daha fazla bilgi için bkz . Azure'da varsayılan giden erişim ve giden bağlantılar için Kaynak Ağ Adresi Çevirisi'ni (SNAT) kullanma.

Güvenlik duvarını dağıtma

Şimdi güvenlik duvarını sanal ağa dağıtın.

az network firewall create \
    --name Test-FW01 \
    --resource-group Test-FW-RG \
    --location eastus
az network public-ip create \
    --name fw-pip \
    --resource-group Test-FW-RG \
    --location eastus \
    --allocation-method static \
    --sku standard
az network firewall ip-config create \
    --firewall-name Test-FW01 \
    --name FW-config \
    --public-ip-address fw-pip \
    --resource-group Test-FW-RG \
    --vnet-name Test-FW-VN
az network firewall update \
    --name Test-FW01 \
    --resource-group Test-FW-RG 
az network public-ip show \
    --name fw-pip \
    --resource-group Test-FW-RG
fwprivaddr="$(az network firewall ip-config list -g Test-FW-RG -f Test-FW01 --query "[?name=='FW-config'].privateIpAddress" --output tsv)"

Özel IP adresini not edin. Varsayılan rotayı oluştururken bu adresi kullanacaksınız.

Varsayılan rota oluşturma

BGP yol yayma devre dışı bırakılmış bir yol tablosu oluşturma

az network route-table create \
    --name Firewall-rt-table \
    --resource-group Test-FW-RG \
    --location eastus \
    --disable-bgp-route-propagation true

Yolu oluşturun.

az network route-table route create \
  --resource-group Test-FW-RG \
  --name DG-Route \
  --route-table-name Firewall-rt-table \
  --address-prefix 0.0.0.0/0 \
  --next-hop-type VirtualAppliance \
  --next-hop-ip-address $fwprivaddr

Yol tablosunu alt ağ ile ilişkilendirme

az network vnet subnet update \
    -n Workload-SN \
    -g Test-FW-RG \
    --vnet-name Test-FW-VN \
    --address-prefixes 10.0.2.0/24 \
    --route-table Firewall-rt-table

Uygulama kuralı yapılandırma

Uygulama kuralı, www.google.com giden erişime izin verir.

az network firewall application-rule create \
   --collection-name App-Coll01 \
   --firewall-name Test-FW01 \
   --name Allow-Google \
   --protocols Http=80 Https=443 \
   --resource-group Test-FW-RG \
   --target-fqdns www.google.com \
   --source-addresses 10.0.2.0/24 \
   --priority 200 \
   --action Allow

Azure Güvenlik Duvarı'nda varsayılan olarak izin verilen altyapı FQDN'leri için yerleşik bir kural koleksiyonu bulunur. Bu FQDN'ler platforma özgüdür ve başka amaçlarla kullanılamaz. Daha fazla bilgi için bkz. Altyapı FQDN'leri.

Ağ kuralını yapılandırma

Ağ kuralı, 53 numaralı bağlantı noktasında (DNS) iki IP adresine giden erişime izin verir.

az network firewall network-rule create \
   --collection-name Net-Coll01 \
   --destination-addresses 209.244.0.3 209.244.0.4 \
   --destination-ports 53 \
   --firewall-name Test-FW01 \
   --name Allow-DNS \
   --protocols UDP \
   --resource-group Test-FW-RG \
   --priority 200 \
   --source-addresses 10.0.2.0/24 \
   --action Allow

Güvenlik duvarını test etme

Şimdi güvenlik duvarını test edin ve beklendiği gibi çalıştığını onaylayın.

  1. Srv-Work sanal makinesinin özel IP adresini not edin:

    az vm list-ip-addresses \
    -g Test-FW-RG \
    -n Srv-Work
    
  2. Uzak masaüstünü BağlanSrv-Jump sanal makinesi ve oturum açın. Buradan, Srv-Work özel IP adresine bir uzak masaüstü bağlantısı açın ve oturum açın.

  3. SRV-Work'te bir PowerShell penceresi açın ve aşağıdaki komutları çalıştırın:

    nslookup www.google.com
    nslookup www.microsoft.com
    

    Her iki komut da, DNS sorgularınızın güvenlik duvarından geçtiğini gösteren yanıtlar döndürmelidir.

  4. Aşağıdaki komutları çalıştırın:

    Invoke-WebRequest -Uri https://www.google.com
    Invoke-WebRequest -Uri https://www.google.com
    
    Invoke-WebRequest -Uri https://www.microsoft.com
    Invoke-WebRequest -Uri https://www.microsoft.com
    

    İstekler www.google.com başarılı olmalı ve www.microsoft.com istekler başarısız olmalıdır. Bu, güvenlik duvarı kurallarınızın beklendiği gibi çalıştığını gösterir.

Şimdi güvenlik duvarı kurallarının çalıştığını doğruladınız:

  • Yapılandırılmış dış DNS sunucusunu kullanarak DNS adlarını çözümleyebilirsiniz.
  • İzin verilen bir FQDN'ye göz atabilir ancak diğerlerine göz atamazsınız.

Kaynakları temizleme

Sonraki öğreticide güvenlik duvarı kaynaklarınızı koruyabilir veya artık gerekli değilse Test-FW-RG kaynak grubunu silip güvenlik duvarıyla ilgili tüm kaynakları silebilirsiniz:

az group delete \
  -n Test-FW-RG

Sonraki adımlar