Aracılığıyla paylaş


Windows için SSH Duruş Denetimi nedir?

SSH Duruş Denetimi, Windows Server 2025'te SSH Server güvenlik duruşu denetlemenizi ve yapılandırmanızı sağlar. SSH Duruş Denetimi, Azure İdare hizmetleriyle (İlke, Makine Yapılandırması) sorunsuz bir şekilde tümleştirilir, böylece şunları yapabilirsiniz:

  • Sektörünüzde veya kuruluşunuzda sshd standartlarıyla uyumluluğu sağlama
  • Sshd tabanlı uzaktan yönetimin saldırı yüzeyini azaltma
  • Güvenlik ve üretkenlik için filonuzda tutarlı sshd kurulumu sağlayın

Uyumlu SSH denetimlerinin listesini gösteren ekran görüntüsü

Denetçilere uyumluluğu göstermenize yardımcı olmak (ve gerektiğinde harekete geçmenize yardımcı olmak için) her uyumluluk denetimi, Uyumluluk veya uyumsuzluk durumunun nasıl belirlendiğini gösteren Nedenler alanı aracılığıyla kanıt içerir.

Sshd parametrelerini (bağlantı noktası numarası, izin verilen gruplar vb.) özelleştirebilir veya ilke varsayılan değerlerini kullanabilirsiniz.

Kullanmaya başlama belgeleri

  • Hızlı Başlangıç: Tıklamayla tıklamayla uygulamalı deneyim için bkz. Hızlı Başlangıç:test makinesine SSH Duruş Denetimi uygulama.
  • Genel bakış ve başvuru: Kavramsal bilgi, başvuru ve SSS için bu makaleyle devam edin.

Yalnızca denetim ve yapılandırma davranışını seçme

SSH Duruş Denetimi ilkesi atarken , yalnızca denetim (diğer adıyla "Denetim") davranışını veya denetim ve yapılandırma (diğer adıyla "Yapılandır") davranışını seçebilirsiniz.

İlke tanımı Azure İlkesi etkisi Neler bekleyebileceğinize ilişkin notlar
Yalnızca denetim davranışı **Audit** SSH Posture Control on Windows machines auditIfNotExists İlke, birçok popüler sistem görüntüsüne kıyasla daha kısıtlayıcı ayarlar içerir. Örneğin, kök ssh erişimini reddetme. Buna göre Uyumlu olmayan durumların bildirildiğine dikkat edin.
Denetim ve yapılandırma davranışı **Configure** SSH Posture Control on Windows machines deployIfNotExists Yukarıda olduğu gibi, başlangıçta Uyumsuz durumların bildirildiğine bakabilirsiniz. Daha sonra makineler ilkeyle eşleşecek şekilde yeniden yapılandırılır ve son Uyumlu durumlarla sonuçlanır.

Mevcut makineler için yöneticiler genellikle mevcut durumu belirlemek ve sistem otomasyonu için izin verilen hesaplar gibi bağımlılıkları bulmak için yalnızca denetim davranışıyla başlar. Mevcut filoyu SSH Duruş Denetimi varsayılanlarıyla karşılaştırdıktan sonra özelleştirebileceğiniz SSH Duruş Denetimi parametrelerine karar verirsiniz. Bu analiz ve planlamadan sonra denetim ve yapılandırma davranışına (halkalar gibi güvenli dağıtım uygulamalarıyla) geçiş yapacaksınız.

Yeşil alan senaryoları veya tek kullanımlık test makineleri için bu analizi atlayıp doğrudan denetim ve yapılandırma davranışına geçmeyi seçebilir ve güçlü SSH Duruş Denetimi varsayılanlarıyla yeni bir başlangıç yapabilirsiniz.

Dikkat

Makineleri yapılandırmadan önce, yeni yapılandırmanızı doğrulamaya çok dikkat edin. Makinelerinize erişiminizi yanlışlıkla kaybedebilirsiniz.

Kendinizi yanlışlıkla kilitleme örnekleri şunlardır:

  • Uygulanan net yetkilendirme ayarları (allowUsersdenyGroups,, vb.) ihtiyacınız olan oturum açma bilgilerine izin vermez
  • port Sshd için yapılandırdığınız, ortamınızdaki diğer denetimler tarafından engellenir (Konak güvenlik duvarı kuralları, ağ güvenlik duvarı kuralları vb.)
    • Kurumsal ekip sınırlarının aşılmasını önlemek için, SSH Duruş Denetimi yalnızca yapılandırılmış sshd. Şu anda yapılandırılan sshd bağlantı noktasını barındırmak için makine içi güvenlik duvarı kurallarını vb. değiştirmeye çalışmıyor. Bu senaryoları bizimle tartışmak isterseniz lütfen bizimle iletişime geçin (aşağıdaki Ek kaynaklar bölümüne bakın).

SSH Duruş Denetimi kapsamı: kurallar, varsayılanlar ve özelleştirme

Aşağıdaki tabloda, SSH Duruş Denetimi ile denetlenebilecek veya yapılandırılabilir öğeler listelenmiştir. Bunların her biri kural olarak bilinir.

Kuralların çoğuna, denetleme veya yapılandırma ve denetleme için ilke atama parametreleri aracılığıyla özel değerler verilebilir. Örneğin, kuruluşunuzdaki standart sshd için 1111 numaralı bağlantı noktasını (22 yerine) kullanmaksa, ilke atamasında ilgili parametreyi ayarlayabilirsiniz. Bu parametreler aşağıdaki tabloda yer alan tanımlayıcılara sahiptir. Genellikle, kısa parametre adı program aracılığıyla (örneğin ile az policy assignment create --params ...) kullanılırken, Azure portal iş akışlarında uzun parametre görünen adı kullanılır.

Değerleri özelleştirirken, sshd ile uyumlu değerler sağlamaya dikkat edin. Örneğin, allowGroups grup adı desenlerinin boşlukla ayrılmış bir listesini alır. Başvuru için sshd_config adam sayfasına bakın. sshd_config başvurusu, izin verme ve reddetme listelerinin nasıl kesiştiği gibi diğer sshd davranışlarını anlamak için de yararlıdır.

Uyarı

Tablo düzenini korumak için, bazı hücre değerleri tablonun altındaki dipnotlara taşındı.

Kural adı Varsayılan değer Parametre adı Parametre görünen adı
SSH için izin verilen grupların yapılandırıldığından emin olun <dipnot 1> AllowGroups İzin verilen gruplar
SSH erişimi için izin verilen kullanıcıların yapılandırıldığından emin olun "" AllowUsers İzin verilen kullanıcılar
SSH için kimlik doğrulama yönteminin yapılandırıldığından emin olun herhangi AuthenticationMethods Kimlik doğrulama yöntemleri
SSH için reddedilen grupların yapılandırıldığından emin olun "" DenyGroups Reddedilen gruplar
SSH için reddedilen kullanıcıların yapılandırıldığından emin olun "" DenyUsers Reddedilen kullanıcılar
SSH için iletileri günlüğe kaydederken kullanılan tesis kodunun yapılandırıldığından emin olun YEREL0 SyslogFacility Sistem günlüğü tesisi
SSH MaxAuthTries'in yapılandırıldığından emin olun 6 MaxAuthTries En fazla kimlik doğrulama denemesi sayısı
SSH HostKey'in yapılandırıldığından emin olun <dipnot 2> HostKey Konak anahtarı
SSH için yetkili anahtar dosyasının yapılandırıldığından emin olun <dipnot 3> AuthorizedKeysFile Yetkili anahtar dosyası
SSH için GSSApiAuthentication'ın yapılandırıldığından emin olun yanlış GSSAPIAuthentication GSSAPI kimlik doğrulaması
SSH uyarı başlığının yapılandırıldığından emin olun <dipnot 4> Banner Afiş
SSH için uygun şifrelemelerin kullanıldığından emin olun aes128-ctr,aes192-ctr,aes256-ctr Ciphers İzin verilen şifrelemeler
Yalnızca onaylı MAC algoritmalarının kullanıldığından emin olun hmac-sha2-256 MACs MAC algoritmaları
SSH ClientAliveCountMax'ın yapılandırıldığından emin olun 0 ClientAliveCountMax Etkin istemci iletileri sayısı
SSH bağlantı noktasının yapılandırıldığından emin olun 22 Port Liman
SSH LoginGraceTime'ın yapılandırıldığından emin olun 60 LoginGraceTime Oturum açma yetkisiz kullanım süresi
SSH ClientAliveInterval'ın yapılandırıldığından emin olun 3600 ClientAliveInterval İstemci etkin aralığı
SSH PermitEmptyPasswords'un yapılandırıldığından emin olun yanlış PermitEmptyPasswords Boş parola izni

Tablo dipnotları:

  1. administrators "openssh users"

  2. __PROGRAMDATA__/ssh/ssh_host_ecdsa_key

  3. %programdata%/ssh/administrators_authorized_keys

  4. #######################################################################/r/n/r/nAuthorized access only!/r/n/r/nIf you are not authorized to access or use this system, disconnect now!/r/n/r/n#######################################################################/r/n

    1. Not: Bu, son kullanıcılara şu şekilde görüntülenir:
    #######################################################################
    
    Authorized access only!
    
    If you are not authorized to access or use this system, disconnect now!
    
    #######################################################################
    

Ek (sshd olmayan) ilke parametreleri

Bu ek ilke parametreleri, ilke ataması sırasında kullanılabilir. Bunlar, makinelerdeki sshd ayarlarının aksine Azure İlkesi atama davranışını etkiler.

İsim Açıklama Varsayılan
Arc bağlantılı sunucuları dahil et Bu seçeneği belirleyerek Arc bağlantılı makine başına aylık ücretlendirmeyi kabul etmiş olursunuz. YANLIŞ
Etki Bu ilkenin yürütülmesini etkinleştirme veya devre dışı bırakma < Yalnızca denetim ve yapılandırma davranışının seçilmesine bağlıdır>

İlke tanımları? İlke atamaları mı? Konuk atamaları mı? Makine Yapılandırması mı? Bunların hepsi nasıl bir araya geliyor?

SSH Duruş Denetimi'ni kullanmaya başlamak için temel eyleminiz bir ilke ataması oluşturmaktır. İlke atamanız bir ilke tanımını (örneğin, "Windows makineleri için SSH Duruş Denetimini Denetle") bir kapsama (örneğin, "my_factory_3_resource_group") bağlar.

Sistemi kullanırken, aşağıda özetlediğiniz gibi ek kaynak türleri ve terminolojisi ile karşılaşırsınız.

bir ilke atamasının konuk atamaları aracılığıyla makineleri Makine Yapılandırma hizmetine nasıl bağlay ettiğini gösteren diyagram

Açıklama
Politika tanımı İlke hizmeti içinde, kullanılabilir denetim ve/veya yapılandırma davranışları kümesini açıklayan soyut veriler. Örneğin, "Windows makinelerinde SSH Duruş Denetimini Denetle".
İlke ataması Soyut ilke tanımını kaynak grubu gibi somut bir kapsama bağlar. İlke ataması, parametreler ve bu atamaya özgü diğer özellikleri içerebilir.
Makine Yapılandırması İşletim sistemi düzeyinde denetim ve ayar yapılandırmasını işleyen Azure hizmeti ve aracısı.
Konuk ataması İlke ataması, makine ve Makine Yapılandırma hizmeti arasında üç yönlü bağlantı işlevi gören kaynak. İlke, gerektiğinde konuk atama kaynaklarını oluşturur ve izler.
"Konuk" ve "makine" terminolojisi hakkında daha fazla bilgi için bkz. Neden yerlerde "Konuk Yapılandırması" ve "Otomatik Yönet" terimlerini görüyorum?
Makine Arc özellikli bir makine veya Azure VM.

Uyumluluk hakkında (SSH Sunucusu uygulamaları vb.)

SSH Duruş Denetimi, uzun süre çalışan tek bir SSH Server örneğinin temel genel amaçlı Windows Server senaryosu için tasarlanmıştır:

  • yaşam döngüsü Service Control Manager gibi init sistemi tarafından yönetilir
  • Davranışları OpenSSH sshd davranışıyla tutarlı olarak sshd_config dosyası tarafından yönetilir
  • Etkin yapılandırma/durum, OpenSSH sshd davranışıyla tutarlı olarak çıktıyla sshd -T ortaya çıkan

Desteklenen tüm işletim sistemi için (aşağıya bakın), bu varsayılan SSH Sunucusu kullanım örneğidir.

Prensipte bir makinede, herhangi bir sayıda kod tabanına göre değişen yaşam süreleri ile çalışan ve yapılandırmalarını herhangi bir sayıda yerden alan (yapılandırma dosyaları, komut satırı bağımsız değişkenleri, derleme zamanı parametreleri vb.) SSH sunucu örnekleri bulunabilir. Bu tür durumlar şu anda SSH Duruş Denetimi için kapsam dışındadır. Gelecekte bu tür durumlarla ilgileniyorsanız, görüşmek için lütfen bizimle iletişime geçin .

SSH Duruş Denetimi, Azure İlkesi ve Makine Yapılandırması tarafından desteklenen Windows Server 2025 makinelerinde kullanılmak üzere tasarlanmıştır -

Sysadmins ve görüntü oluşturucuların işletim sisteminden bileşenleri kaldırması, dosya sistemlerini salt okunur hale getirmesi vb. için çalışma zamanında belirli bir makineyle uyumluluk garanti edilemez.

sshd_config Include yönergeleriyle uyumluluk

SSH Duruş Denetimi, aşağıdaki gibi sshd_config yönergelerini barındırmaya ve kullanmaya Include çalışır:

  • Denetim/okuma eylemleri için: Sshd -T sshd'nin perspektifinden net yapılandırmayı yansıtacak şekilde kullanın ve tüm Dahil edilenleri dikkate alın.
  • Yapılandırma/yazma eylemleri için:
    • Yeni bir SSH Duruş Denetimi özel dosyasını sshd_config (Dahil Et olarak) bağlayın. Daha sonra, tüm yazmaları bağlı SSH Duruş Denetimi dosyasına yerleştirin. Bu, sistem hijyenini ve sistem değişikliklerinin izlenebilirliğini artırır.

sshd_config Match yönergeleriyle uyumluluk

SSH Duruş Denetimi, çekirdek sshd davranışını denetlemek ve yapılandırmak için tasarlanmıştır. Belirli popülasyonlara farklı sshd yapılandırmaları uygulayabilen koşullu Match bloklarla (varsa) etkileşim kurmaya çalışmaz.

Birden çok sshd_config değeriyle uyumluluk

SSH Duruş Denetimi, 'bağlantı noktası' kuralı için birden çok değerin kullanılmasını desteklemez, yani 'bağlantı noktası' kuralını 22 ve 33 olarak ayarlar. Bu kural, senaryoları denetleme ve yapılandırma için düzgün işlevsellik ve uyumluluk sağlamak için tek bir değerle yapılandırılmalıdır. Kullanıcılara ve şifrelere izin verme/reddetme gibi diğer kurallar, tek bir satıra eklendiği sürece birden çok değere sahip olabilir.

Örnek:

  • Mevcut bir sshd_config dosyası bir "bağlantı noktası:22" satırı ve başka bir "bağlantı noktası:33" satırı içerir.
  • "Denetim SSH" İlkesi, beklenen 33 bağlantı noktası değerini denetlemek için kullanılır.
  • Sonuç: Denetim, öngörülemez şekilde geçebilir veya başarısız olabilir.
  • Öneri : Bu özelliği bunlar gibi senaryolarla kullanmayın.

Sonuçları program aracılığıyla nasıl sorgulayabilirim?

Azure Kaynak Grafı (ARG) sorgularını kullanarak atama ve durum verilerini kendi iş akışlarınızla tümleştirebilirsiniz. Bu örnekler ARG sorgusunu yürütmek için PowerShell'de kullanılır Search-AzGraph , ancak PowerShell gerekli değildir. ARG'yi Azure Portal, Azure CLI, REST çağrıları gibi birçok giriş noktasından kullanabilirsiniz.

  1. Özetlemenin en yüksek rakımında, uyumluluk durumu demetine göre makine sayıları alabilirsiniz. Örneğin:

    $machineCountsQuery = @'
    // SSH machine counts by compliance status
    guestconfigurationresources
    | where name contains "SecureShell"
    | extend complianceStatus = tostring(properties.complianceStatus)
    | summarize machineCount = count() by complianceStatus
    '@
    
    Search-AzGraph -Query $machineCountsQuery
    
    <#
    Sample output from an environment with two machines:
    
    complianceStatus machineCount
    ---------------- ------------
    Pending                     1
    Compliant                   1
    #>
    
  2. Makineye göre genel uyumluluk durumunu görecek şekilde detaya gitmek için aşağıdakileri kullanabilirsiniz:

    $machinePerRowQuery = @'
    // SSH machine level compliance
    guestconfigurationresources
    | where name contains "SecureShell"
    | project 
     machine = split(properties.targetResourceId,'/')[-1],
     complianceStatus = properties.complianceStatus,
     lastComplianceStatusChecked = properties.lastComplianceStatusChecked
    '@
    
    Search-AzGraph -Query $machinePerRowQuery
    
    <#
    Sample output:
    
    machine     complianceStatus lastComplianceStatusChecked
    -------     ---------------- ---------------------------
    sshdemovm01 Compliant        2/15/2024 11:07:21 PM
    sshdemovm02 Pending          1/1/0001 12:00:00 AM
    #>
    
  3. Ayara göre ayarlama ayrıntılarına gitmek için aşağıdakileri kullanabilirsiniz:

    $settingPerRowQuery = @'
    // SSH rule level detail
    GuestConfigurationResources
    | where name contains "SecureShell"
    | project report = properties.latestAssignmentReport,
     machine = split(properties.targetResourceId,'/')[-1],
     lastComplianceStatusChecked=properties.lastComplianceStatusChecked
    | mv-expand report.resources
    | project machine,
     rule = report_resources.resourceId,
     ruleComplianceStatus = report_resources.complianceStatus,
     ruleComplianceReason = report_resources.reasons[0].phrase,
     lastComplianceStatusChecked
    '@
    
    Search-AzGraph $settingPerRowQuery
    
    <#
    Sample output:
    
    machine     rule                                                  ruleComplianceStatus     ruleComplianceReason
    -------     ---------------                                                  ------               ------
    sshdemovm01 Ensure that the allowed groups for SSH are configured            true            ["administrators","openssh users"] contains the expected values: ["administrators","openssh users"]
    sshdemovm01 Ensure that appropriate ciphers are used for SSH                 true            ["aes128-ctr","aes192-ctr","aes256-ctr"] contains the expected values: ["aes128-ctr","aes192-ctr","aes256-ctr"]
    sshdemovm01 Ensure that the authorized key file for SSH is configured        true            "%programdata%/ssh/administrators_authorized_keys" is equal to "%programdata%/ssh/administrators_authorized_keys"
    sshdemovm01 Ensure that the SSH ClientAliveInterval is configured            true            3600 is equal to 3600
    sshdemovm01 Ensure that the SSH PermitEmptyPasswords is configured           true            false is equal to false
    sshdemovm01 Ensure that the SSH port is configured                           true            22 is equal to 22
    sshdemovm01 Ensure that the SSH MaxAuthTries is configured                   true            6 is equal to 6
    sshdemovm01 Ensure that only approved MAC algorithms are used                true            ["hmac-sha2-256"] contains the expected values: ["hmac-sha2-256"]
    sshdemovm01 Ensure that the SSH HostKey is configured                        true            "__PROGRAMDATA__/ssh/ssh_host_ecdsa_key" is equal to "__PROGRAMDATA__/ssh/ssh_host_ecdsa_key"
    sshdemovm01 Ensure that the SSH LoginGraceTime is configured                 true            60 is equal to 60
    #>
    

Neden yerlerde "Konuk Yapılandırması" ve "Otomatik Yönet" terimlerini görüyorum?

Makine Yapılandırma hizmeti, Konuk Yapılandırması ve Otomatik Yönetim Makine Yapılandırması olarak da bilinir. Hizmetler ve belgelerle etkileşim kurarken bu adlarla karşılaşabilirsiniz. Örneğin:

  • Bu makaledeki Azure Kaynak Grafı sorgu örneklerinde veri tablosu olarak adlandırılır guestconfigurationresources.
  • Azure portalında sonuçları gözlemlemek için kullanışlı bir görünüme "Konuk Atamaları" adı verilir.
  • Azure portalında, Makine Yapılandırması'nı etkinleştirmek için ilgili VM uzantısını uygularken uzantı başlığı "Makine Yapılandırmasını Otomatik Yönet" şeklindedir.

SSH Duruş Denetimi amaçları doğrultusunda "konuk" ile "makine" arasında anlamlı bir ayrım yoktur. Arc özellikli makineler ve Azure VM'leri uygundur.

Yerleşik ilke tanımlarının tanımlayıcıları nelerdir?

Azure CLI ile ilke atamaları oluşturma gibi bazı durumlarda, görünen ad yerine kimlikle bir ilke tanımına başvurmak yararlı veya gerekli olabilir.

ekran adı kimlik

| Windows makinelerinde SSH Duruş Denetimini Denetleme | ... | | Windows makinelerinde SSH Duruş Denetimini Yapılandırma | ... |