Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Özet

Kullanıcıların kendi SSH keypairs sağlamak için kimlik doğrulaması sağlamanın yanı sıra, SSH keypairs sanal makinesi (VM) dağıtım sırasında eklenen bazı özelliklerini etkinleştirmek için Microsoft Azure platformu dayanır. Sınırlı bazı senaryolarda, bu Azure platformu Sertifikalar'dan ortak anahtarlar beklenmedik biçimde .ssh/authorized_keys dosyasına eklenemedi, son buldu. Bu senaryolar bulut init kullanarak VM hazırlandı ve kullanıcının seçtiği gibi bir sistem tarafından yönetilen hizmet kimliği sertifikaları kullanan ek Azure özellikleri yalnızca bir durum kapsamına eklenir.

Bu beklenmeyen davranış hazırlama mantığı, belirli işletim sistemlerinin bir değişiklik nedeniyle oluşur. Bunlar, farkında olmadan ortak anahtar. VM oluşturma sırasında ssh yetkili anahtarları dosyaya VM için kullanılabilir olan tüm sertifikaları yükleyin ve bulut init kullanan sistemler 

Daha fazla bilgi edinmek için CVE 2019 0816gidin.

Daha fazla bilgi

Senaryo ayrıntıları

"Özet" bölümünde açıklanan bulut init mantığı şu anda Azure görüntüleri için Ubuntu 18.04 ortak Önizleme RHEL 7.4/7.5/7.6 ve CentOS 7.4 bulut init görüntülerin yanı sıra mevcut olduğu bilinmektedir. Ayrıca bu işletim sistemlerini kullanan özel görüntüleri var olabilir.    Linux görüntülerden birini sağlama sırasında aşağıdaki özelliklerden birini etkinleştirirseniz, aşağıdakilerden herhangi birini gibi bir .ssh/authorized_keys dosyasında beklenmeyen, ek tuşları görebilirsiniz:

  • Yönetilen kimlik

  • Korumalı ayarlarla uzantıları

  • VM anahtar Vault tuşlarıyla VM dağıtma

Tanımlamak ve varolan VMs sunuculardır.

Belirle

Ek anahtar olup olmadığını denetlemek için eklenecek paylaşmamış herhangi bir ek anahtar eklenip eklenmediğini belirlemek için yetkili tuşları dosyası (VI .ssh/authorized_keys) gözden geçirin.

Bunu el ile kaldırma ssh ortak, tuşları diğer eklenmemiş olabilir için güvenlidir. Bu değil , VM ile birlikte dağıtılan özellikleri etkiler. Ayrıca, kimlik doğrulaması için belirtilen, SSH anahtar çifti etkilemez.

Bilmiyorsanız veya .ssh/authorized_keys dosyasında belirtilen kimlik doğrulama için hangi ortak anahtarlar ayırt edemez, şu adımları izleyin:

  1. Şablonlarını dağıtma gözden geçirin:

    1. SSH ortak anahtarlar

    2. SSH bulut init yapılandırmasında tuşları

  2. Sudo/root erişimi varsa Al dağıtılan ssh VM içinde oluşturma zamanında anahtarları. Bunu yapmak için şu adımları izleyin:

    1. CustomData içinde geçirilen bulut başlangıç yapılandırmasını denetleyin: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1:CustomData>"CustomData değeri kullanın ve sonra kullanım base64 kod çözme, dağıtılan ortak anahtarları almak için: echo "<customData value>" | base64 -D

    2. Alternatif olarak, kontrol görmek için örnek Meta Veri Hizmeti'nı (IMDS) ssh geçirildi ortak anahtar ssh VM oluşturma, ortak anahtar özelliği: curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute/publicKeys?api-version=2018-04-02&format=json"

Yeniden yap

Değil VM dağıtmak istediniz ek sertifikalar belirlediyseniz, bu dosyadan authorized_keys karşılık gelen bir satır silme tarafından kaldırabilirsiniz.

Düzeltme VM bağlanarak etkileşimli olarak çalıştırmak veya özel komut dosyası uzantısı veya KomutÇalıştır arasında birden fazla VMs kullanın.

Ayarları veya yönetilen bir kimlik korunan uzantıları kullanılarak dağıtılan VM'ler

Ortak anahtarlar VM uzantıları ile dağıtılan veya kimlik yönetilen sertifikalarını kaldırmak için aşağıdaki komut dosyasını kullanın. Bu VM dağıtıldığında veya VM anahtar Vault tuşları ile dağıttıysanız belirtilmiş Kaldır tuşları değil olur.

Önemli

Bu komut dosyasını çalıştırmadan önce authorized_keys dosyayı yedeklemenizi öneririz.

 

#!/bin/bash
set -e

# /var/lib/waagent has *.crt files that include the crt files corresponding to 
# the user provided public keys and one additional .crt file from MSI.
# This script converts the content of the .crt file into the ssh public key and
# remove it from the authorized_keys file
readarray -t CRT_FILES < <(grep -l -E "(Microsoft.ManagedIdentity|Windows Azure)" /var/lib/waagent/*.crt)
for ((i=0; i < ${#CRT_FILES[@]}; i++))
do
    PUBKEY=$(openssl x509 -in "${CRT_FILES[$i]}" -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8)
    sed -i -e "\@$PUBKEY@d" $HOME/.ssh/authorized_keys
Done 

Komut çalıştırıldıktan sonra yalnızca bilinen ortak anahtarlar var emin olmak için ssh/authorized_keys dosyasını denetleyin.

Anahtar Vault sırlarını ile dağıtılan VM'ler

Anahtar Vault tuşları ile dağıtıldığında anahtarı eklenmiştir olup olmadığını belirlemek için şu adımları izleyin:

  1. VM kullanarak dağıtılan Vault anahtar sertifikasının adını almak, dağıtım kodu Az CLI veya ARM şablonlarını gözden geçirin veya bu Az CLI çalıştırın: az vm show --resource-group <resourceGroupName> --name <vmName> | grep certificateUrlSertifika adı yanıt gösterir: "certificateUrl": "https://<keyVaultname>.vault.azure.net/secrets/<certName>/xxxxxxxxxxxxx"

  2. Sertifika yükleyin: az keyvault certificate download --vault-name <keyVaultName> --name <certName> --encoding PEM --file public.pem

  3. Genel anahtar ayıklamak: openssl x509 -in public.pm -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8

  4. Ssh/authorized_keys dosyasındaki kalan sertifikalar için önceki adımı çıktısı karşılaştırın. vi .ssh/authorized_keys file

Çözüm

Azure Market görüntüleri

Düzeltmeler için tanımlanan Azure görüntülerde bulut init uygulandı:

  • Canonical:UbuntuServer:18.04-LTS:18.04.201902190

  • Canonical:UbuntuServer:18.10-DAILY:18.10.201903200

  • RedHat:RHEL:7-RAW-CI:7.6.2019030421

  • OpenLogic:CentOS-CI:7-CI:7.6.20190306

Özel görüntüleri

Bulut-init bilinen işletim sistemleri tarafından sağlanan özel görüntüleri kullanıyorsanız, kaynak özel görüntünüzü güncelleştirmeniz gerekecektir.

Ubuntu 18.04 görüntüleri

Kaynak özel görüntüyü güncelleştirmek için aşağıdaki değişiklikleri yapmanız gerekir:

  • Aşağıdaki dosyasını düzenleyin: /etc/cloud/cloud.cfg.d/90-Azure.cfg

  • Dosyanın sonuna aşağıdaki kodu ekleyin.

Önemli

Kod, boşluklar dahil gösterildiği gibi tam olarak eklenmelidir.

datasource:
   Azure:
     agent_command: [service, walinuxagent, start]

RHEL 7.4/7.5/7.6 ve CentOS 7.6 görüntüleri

RHEL/CentOS görüntüleri aşağıdaki adımları kullanarak (veya benzer bir yöntem) önceden oluşturduysanız, VMs oluşturduğunuz kaynak görüntü güncelleştirmeniz gerekir. Varolan kaynak VM görüntü yapılandırmanıza eklemek için gereken ek adımlar şunlardır:

Adım 1

Aşağıdaki dosyasını düzenleyin:

/etc/cloud/cloud.cfg.d/91-azure_datasource.cfg

Önemli

Kod, boşluklar dahil gösterildiği gibi tam olarak eklenmelidir.

Dosyanın sonuna aşağıdaki satırları ekleyin:

datasource:
   Azure:
     agent_command: [systemctl, start, waagent, --no-block]

Adım 2

Aracısı yapılandırmasını aşağıdaki şekilde güncelleştirin:

cp /lib/systemd/system/waagent.service /etc/systemd/system/waagent.service
sed -i 's/After=network-online.target/WantedBy=cloud-init.service\\nAfter=network.service systemd-networkd-wait-online.service/g' /etc/systemd/system/waagent.service
systemctl daemon-reload

Bulut init paketleri

Bir düzeltme içeren tüm bulut init güncelleştirilmesi sürecinde paketlerdir. Microsoft bu sorunu araştırmaktadır ve daha fazla bilgi kullanıma hazır olduğunda bu makalede yayımlayacaktır.

Sık sorulan sorular

S1: Microsoft access benim VM kazanmıştır?

A1: Kimlikleri yönetmek için kullanılan şifreleme anahtarları ve uzantıları Microsoft çalışanları tarafından erişim için tasarlanmamıştır. İşlemleri izlemek için oturum ve bu tür erişimi engellemek için bir yerde sahibiz. Güvenlik önlemi olarak, biz müşteri anahtar açamayacağı erişilen emin olmak için tüm günlükleri gözden geçiriyorsunuz. VM veya VMSS bir dağıtım içinde başvurulan anahtar Vault içinde depolanan sertifikaları için Microsoft çalışanları için sırlarını herhangi erişim hakkınız yok.

S2: tüm bulut init dağıtılan OSs ve etkilenen sürümleri var?

A2: No Biz bu yabancı anahtar sorun yalnızca tanımlanan işletim sistemlerinde ortaya gördünüz. Biz Ubuntu eski sürümlerini oluşturabiliyor görmemiş. Bu sistemlerin ortak anahtarlarını ayarlamak için farklı bir mekanizma kullanın çünkü.

Q3: düzeltme Linux dağıtımları için etkilenen bulut init paketleri dahil mi?

A3: Düzeltmeler etkilenen sürümleri için paketler ekleme çalışıyoruz ve bu iş tamamlandığında, biz Bu makale güncelleştirilecektir.

S4: Microsoft etkilenen tüm VMs otomatik olarak güncelleştirecek mi?

A4: No Microsoft önceden hazırlanan VMs içeriğini değiştirmez.

S5: Bizim güvenlik ilkeleri bana authorized_keys gereksiz içerikle Linux VM çalışmasını engeller. Bu konuda bugün ne yapabilirim?

A5: Soruna neden olan satırı dosyadan authorized_keys güvenle kaldırabilirsiniz. Bu, oluşturduğunuz SSH anahtar ve denetim veya yönetilen kimlik etkilemez. Bunu el ile veya etkilenen tüm Donanma arasında özel bir komut dosyası veya özel komut çalıştırarak yapabilirsiniz.

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×