Sanal Makinelere Güvenli Erişim için Azure Bastion'u Kullanma

Sanal Makinelere Güvenli Erişim için Azure Bastion'u Kullanma

04/01/2025

Bu teknik ve eğitici makale, Azure'daki sanal makinelere (VM'ler) güvenli erişim için Azure Bastion'u uygulama ve yapılandırma konusunda güvenlik analistlerine, BT yöneticilerine ve sistem mühendislerine rehberlik etmeyi amaçlamaktadır. Bulut ortamında, kaynakları ve verileri korumak için VM'lere erişimin güvenliği çok önemlidir. Geleneksel olarak, VM'lere RDP (Uzak Masaüstü Protokolü) veya SSH (Güvenli Kabuk) aracılığıyla erişim, genel bağlantı noktalarının internete açılmasını gerektiriyordu ve bu da saldırı yüzeyini önemli ölçüde artırıyordu. Azure Bastion, VPN'lere veya genel IP'lere ihtiyaç duymadan güvenli erişim sağlayarak bu riske maruz kalmayı ortadan kaldırmak için sağlam ve güvenli bir çözüm sunar [1].

Giriş

Altyapıların buluta taşınması, ölçeklenebilirlik ve esneklik açısından çok sayıda avantaj sağladı. Ancak güvenlik hâlâ en önemli endişe kaynağı olmaya devam ediyor. Çoğu uygulama ve hizmetin kalbi olan sanal makinelere erişim kritik bir noktadır. RDP (3389) veya SSH (22) bağlantı noktalarını doğrudan internete açmak, onları kaba kuvvet saldırıları ve diğer istismarlar için kolay hedefler haline getirdiğinden, tavsiye edilmeyen bir güvenlik uygulamasıdır [2].

Azure Bastion, sanal ağınızda sağladığınız, tam olarak yönetilen bir Hizmet Olarak Platform (PaaS) hizmetidir. VM'lerdeki genel IP'lere, VM'lerde yüklü aracılara veya yerel makinenizdeki özel istemcilere/yapılandırmalara ihtiyaç duymadan, RDP ve SSH kullanarak sanal ağınızdaki sanal makinelere doğrudan Azure portalından bağlanmanıza olanak tanır. Bastion, güvenli bir proxy görevi görerek RDP/SSH trafiğini güvenli bir TLS (Aktarım Katmanı Güvenliği) bağlantısı üzerinden kullanıcının tarayıcısına yönlendirerek VM'leri doğrudan internete maruz kalmaktan korur [3].

Bu nasıl yapılır kılavuzu önkoşulları, Azure Bastion'un nasıl sağlanacağını ve yapılandırılacağını, RDP ve SSH kullanarak Windows ve Linux VM'lerine nasıl bağlanılacağını, oturumların nasıl yönetileceğini ve güvenli erişimin nasıl test edilip doğrulanacağını kapsayacaktır. Okuyucunun bu özellikleri uygulayabilmesi, test edebilmesi ve doğrulayabilmesi için adım adım talimatlar, pratik örnekler ve kısa açıklamalar sağlanacaktır. Ayrıca sanal makinelerinize otonom, profesyonel ve güvenilir bir şekilde güvenli ve verimli uzaktan erişim sağlamak için güvenlik ipuçları, uyumluluk kontrolleri ve en iyi uygulamalar tartışılacaktır.

Azure Bastion, VM erişimi için neden önemlidir?

  • Geliştirilmiş Güvenlik: Sanal makinelerde genel IP ihtiyacını ortadan kaldırarak sanal makineleri internetten gelen doğrudan saldırılara karşı korur. Erişim, tarayıcı aracılığıyla TLS aracılığıyla sağlanır.
  • Basitleştirilmiş Erişim: Yerel RDP/SSH istemcilerine veya VPN'lere ihtiyaç duymadan VM'lere doğrudan Azure portalından bağlanır.
  • Sıfır Güven: Sıfır Güven ilkelerine uygun olarak, kullanıcının konumundan bağımsız olarak erişimin her zaman doğrulanmasını ve yetkilendirilmesini sağlar.
  • Denetim ve İzleme: Denetim ve uyumluluk amacıyla oturum kaydetme seçeneğiyle (Premium SKU'da mevcuttur) oturumları izlemenize ve yönetmenize olanak tanır.
  • Daha Az Maliyet ve Karmaşıklık: Tam olarak yönetilen bir PaaS hizmeti olarak, kendi atlama kutularınızı veya karmaşık VPN'lerinizi yönetme ihtiyacını ortadan kaldırır.
  • Bağlantı Noktası Tarama Koruması: VM'lerin genel IP'leri yoktur, bu da onları internetteki bağlantı noktası tarayıcılarına ve kötü amaçlı botlara karşı görünmez kılar.

Önkoşullar

Azure Bastion'ı uygulamak için aşağıdaki öğelere ihtiyacınız olacak:

  1. Etkin Azure Aboneliği: Kaynakları oluşturmaya ve yönetmeye yönelik bir Azure aboneliği.
  2. Yönetim Erişimi: VM'lerin bulunduğu abonelik veya kaynak grubunda "Sahip" veya "Katkıda Bulunan" rolüne sahip bir hesap.
  3. Azure Sanal Ağı (VNet): Bağlanmak istediğiniz VM'leri içeren mevcut bir sanal ağ.
  4. Azure Bastion için Ayrılmış Alt Ağ: VNet'inizde "AzureBastionSubnet" adında ve en az "/27" (ör.: "10.0.2.0/27") önekine sahip bir alt ağ. Bu alt ağ Bastion'a özeldir ve diğer kaynaklar için kullanılamaz [4].
  5. Sanal Makineler (VM'ler): Bağlanmak istediğiniz VNet'te (veya eşlenen VNet'lerde) bulunan mevcut Windows veya Linux VM'leri.

Adım Adım: Azure Bastion'ı Yapılandırma

Azure Bastion'u sağlayalım ve bunu bir VM'ye bağlanmak için kullanalım.

1. AzureBastionSubnet Alt Ağını Oluşturma

önceve Bastion'u dağıtmak için özel bir alt ağ oluşturmanız gerekir.

  1. Tarayıcınızı açın ve Azure portalına gidin: https://portal.azure.com.
  2. Gerekli izinlere sahip bir hesapla oturum açın.
  3. Üstteki arama alanına 'Sanal ağlar' yazın ve sonuçlardan seçin.
  4. VM'lerinizin bulunduğu sanal ağı seçin.
  5. Sol gezinme bölmesinde, "Ayarlar"ın altında Alt Ağlar'ı seçin.
  6. '+Alt Ağ'ı tıklayın.

  7. Alt Ağ Ekle:

    • Ad: AzureBastionSubnet girin (bu ad gereklidir).
    • Alt Ağ Adres Aralığı: Ön eki en az "/27" olan bir adres aralığı sağlayın (ör. "10.0.2.0/27").
    • Diğer ayarları varsayılan olarak bırakın.
  8. Kaydet'i tıklayın.

    • Açıklama: "AzureBastionSubnet", Azure Bastion hizmetinin dağıtılacağı yerdir. Hizmetin doğru şekilde sağlanabilmesi için adın tam olarak AzureBastionSubnet olması çok önemlidir.

2. Azure Bastion'un Hazırlanması

Artık alt ağ hazır olduğuna göre Bastion hizmetini dağıtabiliriz.

  1. Azure portalında üstteki arama alanına 'Bastion' yazın ve sonuçlardan seçin.
  2. '+ Oluştur'u tıklayın.

  3. Temel Bilgiler:

    • Abonelik: Aboneliğinizi seçin.
    • Kaynak Grubu: VNet'inizle aynı kaynak grubunu seçin.
    • Ad: Bastion örneğinize bir ad verin (ör. myBastionHost).
    • Bölge: VNet'inizle aynı bölgeyi seçin.
    • Kademe: 'Temel'i (temel RDP/SSH için) veya 'Standart'ı (oturum kaydı, bağlantı paylaşımı vb. gibi ek özellikler için) seçin. Bu kılavuz için 'Temel'i kullanacağız.
  4. Sanal ağ:

    • Sanal ağ: AzureBastionSubneti oluşturduğunuz VNet'i seçin.
    • Alt Ağ: AzureBastionSubnet otomatik olarak seçilecektir.
    • Genel IP adresi: 'Yeni oluştur'u tıklayın. Genel IP'ye bir ad verin (örneğin, 'myBastionPublicIP'). Bu genel IP, Bastion hizmeti içindir ve VM'lerinize açık değildir.
  5. 'İncele + oluştur'u ve ardından Oluştur'u tıklayın.

    • Açıklama: Azure Bastion sağlama 5 ila 10 dakika sürebilir. Dağıtıldıktan sonra VM'lerinize erişmek için kullanılmaya hazır olacaktır.

3. RDP aracılığıyla bir Windows VM'ye bağlanma

RDP bağlantı noktasını açığa çıkarmadan bir Windows VM'ye bağlanalım.

  1. Azure portalında Windows VM'nize gidin.
  2. Sol gezinme bölmesinde Bağlan'ı seçin.
  3. Burç'u seçin.
  4. Windows VM kullanıcı kimlik bilgilerinizi ve parolanızı girin.
  5. Bağlan'ı tıklayın.

    • Beklenen Eylem: Yeni bir tarayıcı sekmesi açılacak ve Windows VM masaüstünüzü göreceksiniz. Bağlantı tamamen tarayıcıdaki HTML5'e dayanmaktadır.

4. SSH aracılığıyla Linux VM'ye bağlanma

SSH bağlantı noktasını açığa çıkarmadan bir Linux VM'ye bağlanalım.

  1. Azure portalında Linux VM'nize gidin.
  2. Sol gezinme bölmesinde Bağlan'ı seçin.
  3. Burç'u seçin.
  4. 'Kimlik Doğrulama Türü'nü seçin: 'Kullanıcı Adı ve Şifre' veya 'SSH Özel Anahtarı'.
    • 'Kullanıcı adı ve şifre' ise Linux VM kimlik bilgilerinizi girin.
    • SSH Özel Anahtarı ise, özel anahtar dosyanızı (.pem veya .ppk) yükleyin.
  5. Bağlan'ı tıklayın.

    • Beklenen Eylem: Yeni bir tarayıcı sekmesi açılacak ve Linux VM'nizin SSH komutlarını yürütmenize olanak tanıyan terminalini göreceksiniz.

Doğrulama ve Test Etme

Azure Bastion aracılığıyla erişimin beklendiği gibi çalıştığını ve VM'lere başka yollarla erişilemediğini doğrulamak çok önemlidir.

1. Bastion Bağlantısını Kontrol Etme

  1. Senaryo: Yukarıdaki 3. ve 4. adımlara göre Azure Bastion'u kullanarak Windows ve Linux VM'lerinize erişmeyi deneyin.
  2. Beklenen Eylem: RDP ve SSH bağlantılarının tarayıcı aracılığıyla başarıyla kurulması gerekir.
  3. Doğrulama:
    • Windows VM masaüstüyle etkileşim kurabildiğinizi ve Linux VM terminalinde komutları yürütebildiğinizi doğrulayın.

2. VM'lerin Doğrudan Erişilemezliğini Kontrol Etme

  1. Senaryo: VM'nizin genel IP'sini (varsa) veya özel IP'sini (VNet dışındaysanız) işaret ederek bir RDP veya SSH istemcisi kullanarak VM'lerinize doğrudan internetten erişmeyi deneyin.
  2. Beklenen Eylem: RDP/SSH bağlantı noktalarının genel kullanıma açık olmaması gerektiğinden doğrudan bağlantı girişimleri başarısız olacaktır.
  3. Doğrulama: *VM'lerinizin genel IP'leri varsa, VM'nin ağ arayüzü veya VM'nin alt ağıyla ilişkili Ağ Güvenlik Grubu (NSG) Kurallarını kontrol edin. 3389 (RDP) ve 22 (SSH) bağlantı noktalarının 'Herhangi biri' veya 'İnternet'e açık olmadığından emin olun.
    • İdeal olarak Bastion aracılığıyla erişilen VM'lerin ortak IP'leri olmamalıdır.

3. Bastion Oturumu İzleme (Standart SKU)

Bastion'u Standart SKU ile sağladıysanız aktif oturumları izleyebilirsiniz.

  1. Azure portalında Azure Bastion kaynağınıza ("myBastionHost") gidin.
  2. Sol gezinme bölmesinde, 'İzleme'nin altında Oturumlar'ı seçin.
  3. Kullanıcı, kaynak IP ve hedef VM dahil olmak üzere aktif RDP ve SSH oturumlarının bir listesini göreceksiniz.

Güvenlik İpuçları ve En İyi Uygulamalar

  • Genel IP'leri VM'lerden kaldırın: Azure Bastion'u yapılandırdıktan sonra, tüm genel IP'leri VM'lerinizden kaldırın. Bu, Bastion'un temel güvenlik avantajıdır.
  • NSG'leri Uygun Şekilde Yapılandırın: VM alt ağlarınızın ve AzureBastionSubnetin Ağ Güvenlik Gruplarının (NSG'ler) yalnızca gerekli trafiğe izin verecek şekilde doğru şekilde yapılandırıldığından emin olun. Bastion'un VM'lerin özel RDP/SSH bağlantı noktalarına erişmesi gerekiyor, ancak VM'lerin genel gelen erişime ihtiyacı yok.
  • En Az Ayrıcalık Prensibi: Kullanıcıların Bastion aracılığıyla VM'lere bağlanabilmesi için yalnızca gerekli izinleri atayın. Azure RBAC, Bastion'u kimlerin kullanabileceğini denetlemek için kullanılabilir.
  • Güçlü Kimlik Doğrulama: VM kimlik bilgileriniz için her zaman güçlü kimlik doğrulamayı kullanın. Kimlik doğrulama için Azure AD ile birleştirin ve mümkünse Azure portalına erişim için MFA'yı zorunlu kılmak üzere Koşullu Erişim'i kullanın; bu da Bastion'a erişimi denetler.
  • Oturum Kaydı (Premium SKU): Sıkı uyumluluk ve denetim gerektiren ortamlar için, RDP ve SSH oturumlarını kaydetmek üzere Azure Bastion Premium SKU'yu kullanmayı düşünün. Bu, VM'lerde yapılanların görsel bir kaydını sağlar.
  • Günlük İzleme: Şüpheli etkinlikleri veya yetkisiz erişim girişimlerini algılamak için Bastion için Azure etkinlik günlüklerini ve VM'lerinizin güvenlik günlüklerini izleyin.
  • Güncellemeler ve Yamalar: Dahili güvenlik açıklarını azaltmak için VM'lerinizi en son güvenlik yamalarıyla güncel tutun.

Genel Sorun Giderme

  • VM'ye bağlanmaya çalışırken Bastion seçeneğini göremiyorum:
    • Azure Bastion'ın VM ile aynı VNet'te (veya eşlenen VNet'te) sağlandığını doğrulayın.
    • 'AzureBastionSubnet'in mevcut olduğundan ve doğru adres önekine ('/27' veya daha büyük) sahip olduğundan emin olun.
    • Azure portalında Bastion'un 'Çalışıyor' durumunda olup olmadığını kontrol edin.
  • Bastion aracılığıyla RDP/SSH bağlantı hatası:
    • Geçersiz kimlik bilgileri: VM için kullanıcı ve parola kimlik bilgilerinin (veya SSH anahtarının) doğru olduğunu doğrulayın.
    • NSG sorunları: VM alt ağının NSG'sinin, "AzureBastionSubnet"in 3389 (RDP) veya 22 (SSH) bağlantı noktalarında gelen trafiğe izin verdiğini doğrulayın.
    • VM Güvenlik Duvarı: VM'nin dahili güvenlik duvarının RDP/SSH bağlantılarını engellemediğini kontrol edin.
    • RDP/SSH hizmeti çalışmıyor: VM'de RDP (Windows için) veya SSH (Linux için) hizmetinin çalıştığından emin olun.
  • Düşük performans veya bağlantı kesintileri:
    • İnternet bağlantınızın bant genişliğini kontrol edin. Bastion oturum videosunu tarayıcınıza aktarır.
    • Daha iyi performans ve ek özellikler sunan Bastion'un Standart veya Premium SKU'sunu kullanmayı düşünün.
    • Hedef VM'de oturum performansını etkileyebilecek yüksek CPU veya bellek kullanımını kontrol edin.
  • Bastion aracılığıyla dahili VM kaynaklarına erişemiyorum:
    • Azure Bastion, VM'ye bağlantı sağlar. VM'ye bağlandıktan sonra VNet'in diğer dahili kaynaklarına erişim, VM'nin kendi ağ yapılandırmalarına ve geçerli NSG kurallarına bağlı olacaktır.

Sonuç

Azure Bastion, sanal makinelere erişim için güvenli ve basitleştirilmiş bir yöntem sağlayan, bulut ortamlarının güvenliği için önemli bir bileşendir. RDP/SSH bağlantı noktalarının internete doğrudan maruz kalmasını ortadan kaldırarak saldırı yüzeyini önemli ölçüde azaltır ve genel güvenlik duruşunu güçlendirir. Dikkatli uygulama, en iyi güvenlik uygulamalarıyla entegrasyon ve sürekli izleme, Bastion'un faydalarını en üst düzeye çıkarmak için kritik öneme sahiptir. Bu g ileBu uygulamalı yaklaşımla, güvenlik profesyonelleri ve BT yöneticileri Azure Bastion'u yapılandırmak, doğrulamak ve yönetmek için iyi bir donanıma sahip olacak ve sanal makinelerine erişimin her zaman güvenli ve uyumlu olmasını sağlayacak.


Referanslar:

[1] Microsoft Learn. Azure Kalesi nedir?. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/bastion/bastion-overview [2] Microsoft Learn. Azure'deki sanal makinelere güvenli uzaktan erişim sağlamak için Azure Bastion kullanımına ilişkin tasarım ve planlama hususları. Şu adreste mevcuttur: https://learn.microsoft.com/pt-br/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-virtual-machine-remote-access [3] Microsoft Learn. RDP - Azure Bastion'u kullanarak bir Windows VM'ye bağlanın. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/bastion/bastion-connect-vm-rdp-windows [4] Microsoft Learn. Bir Bastion ana bilgisayarını yapılandırın. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/bastion/tutorial-create-host-portal [5] Microsoft Learn. SSH - Azure Bastion kullanarak bir Linux VM'ye bağlanın. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/bastion/bastion-connect-vm-ssh-linux [6] Microsoft Learn. Azure Bastion oturumu izleme ve yönetimi. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/bastion/session-monitoring [7] Microsoft Learn. Bastion oturum kaydını yapılandırın. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/bastion/session-recording