Hakan Uzuner

Azure Local Üzerinde NSG Oluşturma

Azure Local ortamlarında ağ güvenliğini sağlamak ve trafiği kontrol altına almak için kullanılan en temel yapılardan biri Network Security Group (NSG)’lerdir. NSG’ler, hem sanal makineler (VM) hem de mantıksal ağlar (logical networks) arasında gerçekleşen veri akışını merkezi ve kurallı bir şekilde yönetmenizi sağlar.

Azure Local’da NSG Nedir?

Network Security Group, Azure Local üzerindeki ağ trafiğini denetlemek için kullanılan bir güvenlik katmanıdır. Temel işlevi, belirlenen kurallar doğrultusunda gelen (inbound) ve giden (outbound) trafiğe izin vermek veya bu trafiği engellemektir. Bu sayede hem güvenlik artırılır hem de ağ segmentasyonu sağlanır.

Trafik Kontrolü Nasıl Çalışır?

NSG’ler, ağ trafiğini belirli kriterlere göre değerlendirir. Bu kriterler şunlardır:

Bu parametreler üzerinden oluşturulan kurallar sayesinde oldukça granular (ince detaylı) bir kontrol mekanizması elde edilir.

NSG’lerin Konumlandırılması

Azure Local mimarisinde NSG’ler iki ana noktaya bağlanabilir:

Bu yapı, hem geniş kapsamlı hem de mikro seviyede güvenlik senaryolarını aynı anda uygulamaya imkan tanır.

Azure Local gibi dağıtık ve hibrit ortamlarda, farklı lokasyonlar ve iş yükleri arasında güvenli iletişim kritik öneme sahiptir. NSG kullanımı sayesinde, Yetkisiz erişimlerin önüne geçilir, ağ trafiği segmentlere ayrılarak izole edilir, uygulama bazlı güvenlik politikaları uygulanabilir, merkezi yönetim ile operasyonel kontrol sağlanır. Aslında Azure NSG bilen birisi için fark olmadığını görebilirsiniz. Bu da aslında çok kıymetli bir durum, neden derseniz tek bir plarformu öğrenip onprem sistemlerde dahi aslında aynı teknolojileri kullanabiliyorsunuz. Azure Local’ in en büyük olayı da bu zaten :)

Görsel olarak konuyu ele almak gerekir ise durum aşağıdaki gibidir;

Azure Local ortamında Network Security Group (NSG) kullanımını somut bir senaryo üzerinden ele aldığımızda, iki ayrı mantıksal ağ (logical network) arasında güvenli ve kontrollü iletişim sağlandığını görüyoruz.

Senaryo Mimarisi

Bu örnekte iki farklı ağ segmenti bulunuyor:

Logical Network A (Uygulama Katmanı)

Bu yapı sayesinde Web sunucusu hem dış dünyaya erişebiliyor hem de uygulama katmanı olarak kullanıcı isteklerini karşılayabiliyor.

Logical Network B (Veri Katmanı)

SQL sunucusu yalnızca lokal ortamda çalışıyor ve dış dünyaya tamamen kapalı. Bu, veri güvenliği açısından kritik bir izolasyon sağlıyor.

Trafik Akışı ve Güvenlik Kontrolü

Bu mimaride NSG’ler iki temel kontrolü gerçekleştiriyor:

  1. Ağlar arası trafik kontrolü (East-West Traffic):
    Logical Network A ile B arasındaki iletişim sınırlandırılıyor. Örneğin yalnızca belirli portlara izin veriliyor.
  2. Dış dünya erişimi (North-South Traffic):
    • Web sunucusu internete çıkabiliyor
    • SQL sunucusu internete kapalı

Örnek Güvenlik Kuralı

En kritik senaryolardan biri, uygulama katmanının veri tabanına erişimi:

Bu sayede:

NSG’nin Konumlandırılması

Bu senaryoda NSG iki farklı seviyede uygulanabilir:

Bu yapı klasik 3-tier mimarinin (web + database) Azure Local üzerindeki modern karşılığıdır. NSG kullanımı sayesinde:

Azure Local’da NSG’ler, yalnızca trafiği açıp kapatan basit kurallar değil; aynı zamanda mimari güvenliğin temel yapı taşlarından biridir. Doğru kurgulandığında, hem uygulama sürekliliğini korur hem de veri katmanını dış tehditlere karşı güçlü bir şekilde izole eder.

Peki uygulama tarafına geçelim, Azure Local üzerinde NSG için minimum sistem gereksinimleri ve yetkileri aşağıdaki gibidir;

Eğer Azure CLI ile NSG uygulaması yapacaksanız;

1. Platform ve Sürüm Gereksinimi

Azure Local instance’ının belirli bir minimum versiyonda çalışması zorunludur:

Bu sürümler, NSG ve SDN gibi gelişmiş ağ özelliklerinin desteklenmesi için gereklidir.

2. Custom Location Tanımı

Azure Local instance’ının bir custom location ile ilişkilendirilmiş olması gerekir.

Custom location, Azure kaynakları ile on-prem ortam arasındaki ilişkiyi kurar ve kaynakların Azure üzerinden yönetilmesini mümkün kılar.

3. Yetkilendirme (RBAC)

NSG yönetimi için uygun rol ataması yapılmalıdır:

Bu sayede NSG oluşturma, düzenleme ve uygulama işlemleri yapılabilir.

4. SDN (Software Defined Networking) Aktif Olmalı

NSG’ler, Azure Local’daki yazılım tanımlı ağ mimarisinin bir parçasıdır:

Bu katman, ağ izolasyonu ve trafik kontrolünün temelini oluşturur.

5. Ağ Kaynaklarının Hazır Olması

NSG’lerin uygulanabilmesi için temel ağ bileşenlerinin önceden oluşturulmuş olması gerekir:

Bu kaynaklar, NSG kurallarının bağlanacağı hedeflerdir.

6. Yönetim Araçları (Client Gereksinimleri)

Azure Local ortamını dışarıdan yönetmek için kullanılan istemci tarafında da bazı gereksinimler vardır:

Bu araçlar sayesinde NSG ve VM ağ yapılandırmaları komut satırı üzerinden yönetilebilir.

Eğer Azure CLI yerine Azure Portal üzerinden NSG uygulamasını yapacaksanız gereksinimler ise aşağıdaki gibidir;

1. Platform ve Sürüm Uyumluluğu

Azure Local instance’ının güncel ve desteklenen bir sürümde çalışması kritik bir ön koşuldur:

Bu sürümler, NSG ve SDN gibi modern ağ özelliklerinin sorunsuz çalışabilmesi için gereklidir.

2. Custom Location Tanımı

Azure Local ortamının Azure ile entegre çalışabilmesi için:

Custom location, Azure kaynakları ile on-prem altyapı arasında bir köprü görevi görerek merkezi yönetimi mümkün kılar.

3. Yetkilendirme (RBAC)

Ağ güvenliği ve NSG yönetimi için doğru rol atanmalıdır:

Bu sayede kullanıcı, NSG oluşturma, düzenleme ve uygulama işlemlerini gerçekleştirebilir.

4. Software Defined Networking (SDN)

NSG’ler, Azure Local’daki yazılım tanımlı ağ mimarisinin bir parçasıdır:

SDN olmadan merkezi ağ politikaları, segmentasyon ve trafik kontrolü mümkün değildir.

Gelelim uygulama aşamasına. Öncelikle Azure Local kaynak sayfasından kaynaklar ve NSG’ye ilerliyoruz;

Ardından sağ bölümde “Create network security group” linkine tıklıyoruz

Daha sonra temel bilgileri giriyoruz

Subscription (Abonelik)

NSG’nin hangi Azure aboneliği altında oluşturulacağını belirlediğiniz alandır.

Resource Group

NSG’nin yer alacağı kaynak grubunu belirler:

Bu yaklaşım, operasyonel yönetimi ve lifecycle takibini kolaylaştırır.

Instance Name (NSG İsmi)

Oluşturulacak NSG için benzersiz ve anlamlı bir isim girilmelidir:

Region (Bölge)

NSG’nin oluşturulacağı Azure bölgesi seçilir:

Custom Location

Azure Local instance ile ilişkilendirilmiş custom location seçilir:

Review + Create

Tüm parametreler girildikten sonra:

Son olarak Create düğmesine basıyoruz ve işin bitmesini bekliyoruz.

Ardından kaynaklar bölümünde yeni NSG görünür

Şimdi sıra Security Rule oluşturmaya geldi.

Azure Local resource page > Resources > Network security groups.

Bu yolu izliyoruz

Ardından sağ bölümdeki ilgili NSG’lerden birini seçiyoruz

Daha sonra sol menüden settings, inbound security rules veya outbound security rules kısmına geliyoruz. Daha sonra sağ menüden create linkine tıklıyoruz.

Ardından aşağıdaki bölümleri dolduruyoruz

NSG Kural Parametreleri

Source (Kaynak)

Trafiğin nereden geldiğini tanımlarsınız:

Bu alan, inbound trafiğin başlangıç noktasını belirler.

Source IP Address / CIDR Ranges

Kaynağı daha spesifik tanımlamak için kullanılır:

CIDR kullanımı, geniş ağ segmentlerini tek kural ile yönetmeyi sağlar.

Source Port Ranges

Kaynak portlarını belirtir:

Genellikle client tarafı dinamik port kullandığı için çoğu senaryoda * tercih edilir.

Destination (Hedef)

Trafiğin nereye gittiğini tanımlar:

Outbound trafiğin hedefini kontrol etmek için kullanılır.

Destination IP Address / CIDR Ranges

Hedef IP veya subnet tanımı:

Bu alan, özellikle ağ segmentasyonu senaryolarında kritik rol oynar.

Destination Port Ranges

Hedef servis/uygulama portunu belirler:

Protocol (Protokol)

Trafiğin türünü belirler:

Action (Aksiyon)

Kuralın sonucu:

NSG mantığında explicit deny/allow kuralları güvenliğin temelini oluşturur.

Priority (Öncelik)

Kuralların işlenme sırasını belirler:

İlk eşleşen kural uygulanır, bu yüzden kritik kurallar daha düşük priority ile tanımlanmalıdır.

Name (İsim)

Kural için benzersiz bir isim:

Description (Açıklama)

Opsiyonel ama kritik bir alan:

Örnek Senaryo

Önceki mimariyi düşünürsek:

Bir NSG kuralı şu şekilde olur:

Bunun altına:

Son olarak “Add” dediğimiz zaman aşağıdaki gibi kuralı panelde görebiliriz;

Süreci tamamlamış olduk.

Gelelim bir başka önemli konuya; Default Network Access Policy

Azure Local ortamında default network access policy oluşturmak, güvenliği “default deny” yaklaşımıyla kurgulamanın en doğru yoludur. Bu modelde temel prensip:

Böylece sadece açıkça izin verilen erişimler mümkün olur ve özellikle lateral movement (yatay saldırı yayılımı) ciddi şekilde sınırlandırılır.

Default Network Access Policy Nedir?

Bu politika, Azure Local VM’ler için başlangıç seviyesinde bir güvenlik baseline’ı oluşturur. Amaç:

Politika Tasarımı (Best Practice)

1. Inbound Trafik: “Deny by Default”

Tüm inbound trafiği engelleyen bir kural tanımlanır:

Ancak bunun öncesinde yönetim erişimleri için allow kuralları tanımlanmalıdır.

2. Yönetim Portları için Allow Kuralları

İhtiyaca göre sadece belirli portlar açılır:

Örnekler:

Bu kurallar:

3. Outbound Trafik: “Allow by Default”

Outbound trafik genellikle serbest bırakılır:

Bu sayede:

İleri seviye güvenlik için outbound da kısıtlanabilir (örn. sadece belirli FQDN/IP’ler).

NSG Politikasının Uygulanma Yöntemleri

Azure Local’da bu default policy iki farklı aşamada uygulanabilir:

1. VM Oluşturulurken (Recommended)

Avantaj:

2. VM Oluşturulduktan Sonra

Avantaj:

Risk:

Güvenlik Perspektifi

Bu model özellikle şu riskleri minimize eder:

Bu nedenle enterprise ortamlarda bu yaklaşım Zero Trust mimarisinin temel adımlarından biri olarak kabul edilir ki benimde önerdiğim bir mimaridir.

Umarım faydalı bir yazı olmuştur, bir sonraki yazımda görüşmek üzere.

Exit mobile version