Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Sürüm 1.0.3 (28 Haziran 2022'de yayımlandı), mevcut kullanıcıları etkileyebilecek üye adlarına hataya neden olan değişiklikler içerir. Daha fazla bilgi için bkz. Sürüm 1.0.3'te üye adları PascalCase'ten camelCase'e geçiş
Hedef kitle
Bu makale, Azure IoT ile cihaz sağlayan veya yöneten kişileri desteklemek için tasarlanmıştır. Bu size uymuyorsa OSConfig için Audiences belgelerine göz atabilirsiniz.
Güvenlik duvarına genel bakış
Cihazlarda OSConfig yüklü olduğunda, birkaç temel güvenlik duvarı yönetim görevi gerçekleştirmek için Azure IoT hizmetlerini kullanabilirsiniz. Örnek:
- Güvenlik duvarının etkin olup olmadığını denetleme
- Belirli kuralların mevcut olduğundan emin olun (mevcut değilse oluştur)
- Belirli kuralların mevcut olmadığından emin olun (bulunursa silin)
- Dağıtılan birçok cihazın kurallarını bilinen iyi bir cihazla karşılaştırma
- Gelen ve giden trafik için varsayılan trafik ilkelerini ayarlama
İpucu
Nesne modeli başvurusu için buradaysanız Kullanım örnekleri örnekleriniBaşvuru bilgilerine atlayabilirsiniz
Kullanım örnekleri
Bu örnekler, benzersiz ortamınıza uyum sağlamanız için başlangıç noktaları olarak görev yapabilir.
Her örnek, Azure portal ve Bash'te Azure CLI ile çalışmaya yönelik adımlar ve ekran yakalamaları içerir.
Her örnek ayrıca bir cihaz (örneğin, bir sorun giderme senaryosu) veya birçok cihaz (örneğin, bir yapılandırma sağlama veya raporlama senaryosu) için varyasyonlar içerir.
Neler bekleyebileceğiniz:
Tek cihaz yönergelerinde, bildirilen ve istenen özellikleri doğrudan bir cihazın OSConfig ikizinde okuyup yazacaksınız. Ölçekli yönergelerde, istenen özellikleri birçok ikize göndermek için IoT Hub Yapılandırmaları (Otomatik Cihaz Yönetimi veya ADM olarak da bilinir) ve cihazlardan geri gelen sonuçları gözlemlemek için IoT Hub Sorguları (bağımsız olarak veya Ölçüm olarak Yapılandırmalar'a eklenmiş) kullanacaksınız.
Canlı sistemlerdeki örnekleri denemek için önkoşullar
Bu makaleyi başvuru için kullanıyorsanız ön koşul yoktur. Örnekleri gözden geçirebilir, özellik adlarını kopyalayabilirsiniz.
Canlı sistemlerde örnekleri denemek istiyorsanız (önerilen), şu adımları izleyin:
Ücretsiz bir Azure hesabı oluşturma veya mevcut bir hesabı kullanma
Bir IoT Hub en az bir OSConfig özellikli cihaz bağlama
İpucu
(sanal) cihazlar eklenmiş bir IoT Hub kolayca oluşturmak için bkz. 5 dakika içinde OSConfig (Azure IoT ile) laboratuvar ortamı oluşturma
Örneklerde Azure portal yönergelerini veya Azure CLI yönergelerini izlemeye hazır olun:
Azure portal kullanmayı tercih ediyorsanız
- Azure portal oturum açın ve IoT Hub'nizin Genel Bakış sayfasına
-VEYA- Azure CLI kullanmayı tercih ediyorsanız
- ÖNERİLEN: Azure Portalınızda oturum açıp Ardından Bash modunda Azure Cloud Shell başlatarak Bash ortamınız olarak Azure Cloud Shell kullanın
- ALTERNATIF: Cloud Shell yerine kendi bash ortamınızı kullanmayı tercih ediyorsanız Azure CLI'yi yükleyin ve oturum açın
- Komutunu çalıştırarak Azure IoT uzantısının hazır olduğundan emin olun
az extension add --name azure-iot
Örnek A. Konak güvenlik duvarı etkin mi?
altındaki properties.reported.Firewall özelliği, state konak güvenlik duvarının etkin olup olmadığına ilişkin üst düzey bir gösterge sağlar. Örneğin, konak güvenlik duvarı altyapısının etkinleştirilip etkinleştirilmediğini ve FİlTRE tablosunda en az bir kuralın mevcut olup olmadığını gösterir. Olası değerleri ekleme hakkında state daha fazla bilgi için bkz. Başvuru bilgileri.
IoT Hub portal sayfasından sol gezinti bölmesinde Cihazlar'ı seçin. Cihazda OSConfig'e ek olarak IoT Edge yüklüyse Cihazlar yerine IoT Edge'ı seçin.
OSConfig'in yüklü olduğu bir cihaza tıklayın.
Modül Kimlikleri'nin altında osconfig'e tıklayın.
Modül Kimliği İkizi'ne tıklayın ve JSON'a
properties.reported.Firewall.stategöz atın. Aşağıdaki ekran yakalama örneğinde bunustate: enabledgörebilirsiniz.
Örnek B. Güvenlik duvarı kuralı oluşturma
Bu örnekte Güvenlik Duvarı modülünün işlevi kullanılır desiredRules . Cihazdan 10.9.9.0/24 alt ağından giden TCP bağlantı noktası 443 trafiğine izin veren yeni bir kural oluşturuyoruz.
Hakkında desiredRules daha fazla bilgi için (birden çok kuralın işlenmesi ve kuralın kaldırılması dahil) bu makalenin devamında yer alan DesiredRules güvenlik duvarı başvurusuna bakın.
Azure Portal'ı kullanarak, cihazın osconfig modülü ikizinde ve
desiredRulesdüğümlerini ekleme veya değiştirmeFirewallaltındaproperties.desiredaşağıdaki gibi. JSON standartlarına göre, varsa diğer istenen özelliklerle tümleştirmek için sonuna virgül eklemeniz gerekebilir."Firewall": { "desiredRules": [ { "desiredState": "present", "action": "accept", "direction": "out", "protocol": "tcp", "destinationAddress": "10.9.9.0/24", "destinationPort": 443 } ] }
Yaklaşık 30 saniye sonra, değişikliğin modül ikizinin kendisinden başarıyla yapıldığını doğrulayabilirsiniz. Modül ikizi görünümünü yenileyin, ardından öğesini, ardından
statedesiredRulesreportedconfigurationStatusFirewallve öğesini bulmakpropertiesiçin kaydırın.
Örnek C. Birçok cihazın güvenlik duvarı durum parmak izini bilinen iyi bir cihazla karşılaştırma
özelliği, fingerprint uygun ölçekte uyumluluğu denetlemek için hızlı karşılaştırmalar sağlar. Tüm cihazlardan tüm kuralları almanız ve ardından çoka çok karşılaştırma stratejisi uygulamanız gerekmez. Parmak izinin birbiriyle eşleşmesi beklenen cihazlarda aynı olup olmadığını kontrol edebilirsiniz. Örneğin, dağıtılan cihazlarla bilinen iyi bir başvuru cihazı arasında karşılaştırma yapabilirsiniz.
Tek cihazlı örneklerde değeri alıp bant dışında bir karşılaştırma yaptığınız anlamına gelecek. Uygun ölçekteki örneklerde, bir filodaki ortaklığı veya ayrılığı göstermek için IoT Hub Query'nin GROUP BY işlecini kullanacağız.
Uygulanamaz, bkz. Büyük ölçekte Azure Portal.
Başvuru bilgileri
Nesne modeli açıklaması
Bu bölümde ikiz özellikleri ve bunlara karşılık gelen davranışlar açıklanmaktadır.
İpucu
OSConfig başvuru belgeleri, veri modelinin Dijital İkiz Tanımlama Dili (DTDL) gelişmiş perspektiflerine sahip veya olmayan araçlar için geçerlidir. Daha fazla bilgi için bkz. Düz istenen/bildirilen görünümler ve DTDL gelişmiş görünümleri hakkında.
Güvenlik duvarı bildirilen/salt okunur özellikler (raporlama ve denetim senaryoları için)
Yol:
properties.reported.Firewall(Firewallbileşen, salt okunur özellikler)Açıklama: OSConfig'in Güvenlik Duvarı modülü tarafından algılanan konak güvenlik duvarının durumu
Üyeler
Ad Tür Notlar configurationStatus dizelerin sabit listesi İstenen yapılandırmaya ulaşmanın hata/başarı durumunu temsil eder. Yalnızca veya desiredDefaultPoliciesgibidesiredRulesistenen yapılandırma özellikleri ayarlandıysa anlamlıdır. Bu yazmadan itibaren olası değer ,failureveunknownşeklindedirsuccess.configurationStatusDetail string Temel API'ler veya iptable'lar gibi araçlar tarafından döndürülen metin. Tanılama günlüklerini taramaya gerek kalmadan hatalı giriş parametreleri vb. hakkında ilk düzeyde içgörü sağlamak için kullanılır. defaultPolicies nesne dizisi (örnek yüke bakın) Güvenlik duvarının belirli bir kurala uymayan varsayılan paket teslimini temsil eder. Iptable'lar bağlamında bu, filtre tablosunun giriş ve çıkış zincirleri için zincir ilkelerine eşler. Diğer güvenlik duvarı altyapılarında bu, gerektiğinde güvenlik duvarı altyapısı davranışıyla eşler. Örneğin, bazı güvenlik duvarı altyapılarının açık bir ilke ilkesi yoktur ve doğal olarak hiçbir kurala uymayan trafiği bırakır. Parmak izi string • Cihazdaki tüm güvenlik duvarı kurallarının listesi için opak parmak izi
• Çok sayıda cihazı bilinen iyi bir cihazla karşılaştırmak için kullanılır
NOT: OSConfig'in Ekim 2022 sürümünden önceki sürümlerinde, bu özellik "firewallFingerprint" olarak biliniyordustate dizelerin sabit listesi Konak güvenlik duvarının üst düzey durumu. Olası değerler şunlardır:
•unknown
•enabled
•disabled
için mantıkenabled, etkin bir güvenlik duvarı altyapısının algılandığı ve FILTER tablosunda en az bir kural olduğudur.
NOT: OSConfig'in Ekim 2022 sürümünden önceki sürümlerinde bu bilgiler "firewallState" ("durum" yerine) olarak sunulmuştur ve değerler tamsayılardır (dizeler yerine).Örnek yük (ikizin
properties.reportedbölümünde görüldüğü gibi)"Firewall": { "configurationStatus": "success", "configurationStatusDetail": "", "defaultPolicies": [ { "direction": "in", "action": "accept" }, { "direction": "out", "action": "accept" } ], "fingerprint": "c30d8b8bf5327a8a325a686e0c4bbf73b1bd33a72779af88827e8ea256caddb2", "state": "enabled" }
Firewall desiredRules
Dikkat
Herhangi bir güvenlik duvarı yönetiminde olduğu gibi trafiği engellerken de dikkatli olun. Cihazın IoT Hub veya diğer yönetim kanallarıyla bağlantısını sürdürmesini engelleme gücünüz vardır. Bu gibi durumlarda kurtarmak için cihaza yerel erişim gerekebilir.
Yol:
properties.desired.Firewall.desiredRules(Firewallbileşen,desiredRulesyazılabilir özellik)Açıklama: Kural tanımlayıcılarının sıralı listesi. Listedeki her kural tanımlayıcısı aşağıdaki üyelere sahip olabilir.
Her kural tanımlayıcısının üyeleri
Ad Tür Notlar desiredState dizelerin sabit listesi Her zaman gereklidir. Olası değerler şunlardır present(eşleşen bir kural yoksa böyle bir kuralın oluşturulması gerektiği anlamına gelir) veyaabsent(bu tanımlayıcıyla eşleşen cihazda mevcut olan herhangi bir kuralın bulunması durumunda silinmesi gerektiği anlamına gelir). Cihazda eşleşen kuralın mevcut olmadığıdesiredState: "present"ve bulunmadığı kural tanımlayıcıları için, yeni kural cihazdaki kural listesinin en üstüne eklenir. Bağlam açısından, bunun yerine ile benzeriptables -Iiptables -Aolduğunu düşünebilirsiniz. içindedesiredRulesbirden çokdesiredState: "present"kural tanımlayıcısı varsa, sıra korunabilecek şekilde eklenir. Başka bir deyişle en üstteki kuraldesiredRules, cihazdaki kural listesinin en üstünde yer alır; içindeki bir sonraki kuraldesiredRules, cihazdaki kurallar listesinde bunu izler ve bu şekilde devam eder.action dizelerin sabit listesi Her zaman gereklidir. Olası değerler , dropveyarejectdeğerleridiraccept.yön dizelerin sabit listesi Her zaman gereklidir. Olası değerler: inveyaout.protokol dizelerin sabit listesi Her zaman gereklidir. Olası değerler , udp,tcpveyaicmpdeğerleridirany. Bunun herhangi bir trafik anlamına geldiğinianyunutmayın (diğer IP protokolleri değil, tcp ve udp anlamına gelir). Buna göre, veyadestinationPortiçermemesisourcePortgereken kurallarprotocol: "any".sourceAddress string IP adresi veya CIDR aralığı. Belirtilmezse, sonuçta elde edilen kural herhangi bir adresle eşleşebilir sourcePort tamsayı veya protocol:udpolanprotocol: tcpkurallarla ilgilidir. Diğer kurallara dahil edilmemelidir. İlgili bir kurala dahil edildiğinde bağlantı noktası numarasını belirtir. Dahil edilmediğinde, herhangi bir bağlantı noktası numarasıyla eşleşmesi gereken bir kuralı belirtir.destinationAddress string IP adresi veya CIDR aralığı. Belirtilmezse, sonuçta elde edilen kural herhangi bir adresle eşleşebilir destinationPort tamsayı veya protocol:udpolanprotocol: tcpkurallarla ilgilidir. Diğer kurallara dahil edilmemelidir. İlgili bir kurala dahil edildiğinde bağlantı noktası numarasını belirtir. Dahil edilmediğinde, herhangi bir bağlantı noktası numarasıyla eşleşmesi gereken bir kuralı belirtir.
Örnek yük (ikizin properties.desired bölümünde görüldüğü gibi)
Aşağıdaki kurallar aşağıdaki yönetici amaçlarını temsil eder:
"Şirket içi yönetici alt ağım 10.9.9.0/24, bu nedenle cihazların oradan gelen 22 numaralı bağlantı noktasına (SSH) izin vermelerini istiyorum"
"Eski yönetici alt ağım 10.24.24.0/24'tür, dolayısıyla herhangi bir cihazda hala 22 numaralı bağlantı noktasına (SSH) izin veren bir kural varsa, böyle bir kuralın kaldırılmasını istiyorum"
NOT: Yönetici, SSH'yi her yerden engellemek için burada üçüncü bir kural isteyebilir (yukarıdaki özel durum hariç), ancak bu örnekte, bu tür bir kuralı yedekli hale getirerek varsayılan bir bırakma ilkesi kullanacağız. Bu belgenin
desiredDefaultPoliciesilerleyen bölümlerindeki örne bakın."Firewall": { "desiredRules": [ { "desiredState": "present", "action": "accept", "direction": "in", "protocol": "tcp", "sourceAddress": "10.9.9.0/24", "destinationPort": 22 }, { "desiredState": "absent", "action": "accept", "direction": "in", "protocol": "tcp", "sourceAddress": "10.24.24.0/24", "destinationPort": 22 } ] }
Bir yönetim iş akışı ayarlandığında properties.desired.Firewall.desiredRules (bileşen, desiredRules DTDL perspektifinden yazılabilir özellik), cihazın öğesine bir desiredRules özellik ekleyerek aynı özelliğin properties.reported.FirewallalındığınıFirewall kabul ettiğini unutmayın. Bu özelliğin değeri, sürüm numarası ve durum koduyla birlikte özgün desiredRules yükün bir kopyasını içerir. IoT Hub tabanlı yönetim iş akışları, istenen durumun cihaza ulaşıp ulaşmadığını belirlemek için bunu kullanabilir. Bu sadece bir takdirdir. Cihazın istenen duruma ulaşmada başarılı olup olmadığını belirlemek için ve configurationStatusDetailbölümüne de bakınconfigurationStatus.
Güvenlik duvarı desiredDefaultPolicies
Dikkat
Tüm güvenlik duvarı yönetimleri gibi trafiği engellerken de dikkatli olun. Cihazın IoT Hub veya diğer yönetim kanallarıyla bağlantısını sürdürmesini engelleme gücünüz vardır. Böyle durumlarda kurtarmak için cihaza yerel erişim gerekebilir.
Varsayılan ilkeler özellikle dikkatli bir uygulama gerektirir. Örneğin iptable tabanlı sistemlerde ilkeler, mevcut bağlantıları dikkate almadan her pakete ayrı ayrı uygulanır. Başka bir deyişle, gelen varsayılan ilkesi drop (yeni gelen bağlantıları engellemeye ek olarak) uzak sistemlerden gelen yanıtları engeller. Bu, cihazın çift yönlü paket akışı gerektiren protokolleri (TCP gibi) kullanarak giden iletişim kurmasını mümkün kılabilir. Tüm gerekli paketleri her iki yönde de etkinleştirmek için belirli kuralların mevcut olmasını sağlamadan veya ilkelerinde olarak ayarlamayın actionindrop.out
Yol:
properties.desired.Firewall.desiredDefaultPolicies(Firewallbileşen,desiredDefaultPoliciesyazılabilir özellik)Açıklama: gelen trafik ve giden trafik için istenen varsayılan davranışı (kabul etme veya bırakma) açıklayan iki öğeli bir dizi.
Her öğenin üyeleri
Ad Tür Notlar yön dizelerin sabit listesi Olası değerler veya'dır inoutaction dizelerin sabit listesi Her zaman gereklidir. Olası değerler: acceptveyadrop.
Örnek yük (ikizin properties.desired bölümünde görüldüğü gibi)
"Firewall": {
"desiredDefaultPolicies": [
{"direction": "in", "action": "drop"},
{"direction": "out", "action": "accept"}
]
}
Bir yönetim iş akışı ayarlandığında properties.desired.Firewall.desiredDefaultPolicies (bileşen, desiredDefaultPolicies DTDL perspektifinden yazılabilir özellik), cihazın öğesine bir desiredDefaultPolicies özellik ekleyerek aynı özelliğin properties.reported.FirewallalındığınıFirewall kabul ettiğini unutmayın. Bu özelliğin değeri, sürüm numarası ve durum koduyla birlikte özgün yükün bir kopyasını içerir. IoT Hub tabanlı yönetim iş akışları, istenen durumun cihaza henüz ulaşıp ulaşmadığını belirlemek için bunu kullanabilir. Bu yalnızca alındı ve işlenme onayıdır. İstenen duruma ulaşma başarısı veya başarısızlığı hakkında daha fazla bilgi için bkz configurationStatus . ve configurationStatusDetail.
Ek bilgiler ve SSS
"Her şeyi değiştir" kullanım örneğine ne dersin?
Bazı durumlarda yöneticiler, cihazın net güvenlik duvarı kuralları listesi üzerinde mutlak denetim sağlamak isteyebilir. "Yalnızca X, Y ve Z kuralları mevcut olmalıdır; Diğer tüm kurallar (cihazda önceden var olan veya zaman içinde başka işlemler tarafından oluşturulan) düzenli aralıklarla kaldırılmalıdır." Şu anda OSConfig Güvenlik Duvarı modülü bu kullanım örneğini doğrudan sağlamaz. Belirli kuralların kaldırılması ve "desiredState": "absent"aracılığıyla desiredRules gerçekleştirilebilir, ancak açık tümünü değiştir işlevi yoktur. Böyle bir özellik eklemek isterseniz adresinde genişletilebilirlik belgelerine bakın https://github.com/Azure/azure-osconfig.
Sonraki adımlar
OSConfig senaryolarına ve özelliklerine genel bakış için bkz:
Belirli pratik örnekler için bkz:








