Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
SSH Posture Control memungkinkan Anda mengaudit dan mengonfigurasi postur keamanan SSH Server di Windows Server 2019, 2022, dan 2025. Kontrol Postur SSH terintegrasi dengan mulus dengan layanan Azure Governance (Kebijakan, Konfigurasi Mesin) sehingga Anda dapat:
- Memastikan kepatuhan terhadap standar sshd di industri atau organisasi Anda
- Mengurangi permukaan serangan manajemen jarak jauh berbasis sshd
- Pastikan penyiapan sshd yang konsisten di seluruh armada Anda untuk keamanan dan produktivitas
Untuk membantu Anda menunjukkan kepatuhan kepada auditor (dan untuk membantu Anda mengambil tindakan jika diperlukan) setiap pemeriksaan kepatuhan menyertakan bukti melalui bidang Alasan yang menunjukkan bagaimana kepatuhan atau ketidakpatuhan ditentukan.
Anda dapat menyesuaikan parameter sshd (nomor port, grup yang diizinkan, dll.) atau menggunakan nilai default kebijakan.
Dokumentasi untuk memulai
Mulai Cepat : Untuk pengalaman langsung klik-demi-klik, lihat Mulai Cepat: Menerapkan Kontrol Postur SSH .ke mesin uji - Gambaran umum dan referensi: Untuk informasi konseptual, referensi, dan FAQ, lanjutkan dengan artikel ini .
Memilih perilaku audit-saja vs. audit-and-configure
Saat menetapkan kebijakan Kontrol Postur SSH, Anda dapat memilih perilaku khusus audit (alias "Audit") atau perilaku audit dan konfigurasi (alias "Konfigurasikan").
| Definisi kebijakan | Efek Azure Policy | Catatan tentang apa yang diharapkan | |
|---|---|---|---|
| Perilaku audit saja | **Audit** SSH Posture Control on Windows machines |
auditIfNotExists | Kebijakan ini mencakup pengaturan yang lebih ketat dibandingkan dengan banyak gambar sistem populer. Misalnya, penolakan akses root ssh. Dengan demikian, berharap untuk melihat status yang tidak patuh dilaporkan. |
| Perilaku audit dan konfigurasi | **Configure** SSH Posture Control on Windows machines |
deployIfNotExists | Seperti di atas, Anda dapat mengharapkan untuk melihat status yang tidak sesuai yang dilaporkan pada awalnya. Selanjutnya, komputer akan dikonfigurasi ulang agar sesuai dengan kebijakan, yang mengakibatkan status Sesuai akhirnya. |
Untuk komputer yang ada, admin biasanya mulai dengan perilaku audit-saja untuk menentukan status yang ada dan untuk menemukan dependensi seperti akun yang diizinkan untuk otomatisasi sistem. Setelah membandingkan armada yang ada dengan default Kontrol Postur SSH, Anda akan memutuskan parameter Kontrol Postur SSH mana yang akan disesuaikan. Setelah analisis dan perencanaan ini, Anda kemudian akan beralih ke perilaku audit dan konfigurasi (dengan praktik penyebaran yang aman seperti cincin).
Untuk skenario greenfield atau mesin uji sekali pakai, Anda dapat memilih untuk melewati analisis tersebut dan berpindah langsung ke perilaku audit dan konfigurasi, dimulai dengan default Kontrol Postur SSH yang kuat.
Perhatian
Sebelum mengonfigurasi komputer apa pun, berhati-hatilah untuk memvalidasi konfigurasi baru Anda. Anda tidak sengaja dapat kehilangan akses ke komputer Anda.
Contoh penguncian diri Anda secara tidak sengaja meliputi:
- Pengaturan otorisasi bersih yang diterapkan (kombinasi
allowUsers,denyGroups, dll.) tidak mengizinkan login yang Anda butuhkan - Yang
portAnda konfigurasi untuk sshd diblokir oleh kontrol lain di lingkungan Anda (Aturan firewall host, aturan firewall jaringan, dll.)- Untuk menghindari overstepping batas tim perusahaan, SSH Posture Control hanya mengonfigurasi sshd. Saat ini tidak mencoba mengubah aturan firewall pada komputer, dll. untuk mengakomodasi port sshd yang dikonfigurasi. Jika Anda ingin mendiskusikan skenario ini dengan kami, silakan hubungi kami (lihat Sumber daya tambahan di bawah).
Cakupan Kontrol Postur SSH: aturan, default, dan kustomisasi
Tabel berikut mencantumkan item yang dapat diaudit atau dikonfigurasi dengan Kontrol Postur SSH. Masing-masing dikenal sebagai aturan.
Sebagian besar aturan dapat diberikan nilai kustom, melalui parameter penetapan kebijakan untuk mengaudit atau mengonfigurasi dan mengaudit. Misalnya, jika standar di organisasi Anda adalah menggunakan port 1111 (bukan 22) untuk sshd, Anda akan mengatur parameter yang sesuai dalam penetapan kebijakan. Parameter ini memiliki pengidentifikasi yang disertakan dalam tabel di bawah ini. Biasanya, nama parameter pendek digunakan secara terprogram (misalnya dengan az policy assignment create --params ...), sementara nama tampilan parameter yang lebih panjang digunakan dalam alur kerja portal Microsoft Azure.
Saat menyesuaikan nilai, berhati-hatilah untuk menyediakan nilai yang kompatibel dengan sshd. Misalnya, allowGroups mengambil daftar pola nama grup yang dibatasi spasi. Untuk referensi, lihat halaman sshd_config man. Referensi sshd_config juga berguna untuk memahami perilaku sshd lainnya seperti bagaimana daftar izinkan dan tolak bersinggungan.
Nota
Untuk mempertahankan tata letak tabel, beberapa nilai sel telah dipindahkan ke catatan kaki di bawah tabel.
| Nama aturan | Nilai standar | Nama Parameter | Nama tampilan parameter |
|---|---|---|---|
| Pastikan bahwa grup yang diizinkan untuk SSH dikonfigurasi | <catatan kaki 1> | AllowGroups |
Grup yang diizinkan |
| Pastikan bahwa pengguna yang diizinkan untuk akses SSH dikonfigurasi | "" | AllowUsers |
Pengguna yang diizinkan |
| Pastikan bahwa metode autentikasi untuk SSH dikonfigurasi | apa pun | AuthenticationMethods |
Metode autentikasi |
| Pastikan bahwa grup yang ditolak untuk SSH dikonfigurasi | "" | DenyGroups |
Grup yang ditolak |
| Pastikan bahwa pengguna yang ditolak untuk SSH dikonfigurasi | "" | DenyUsers |
Pengguna yang ditolak |
| Pastikan bahwa kode fasilitas yang digunakan saat mencatat pesan untuk SSH dikonfigurasi | LOCAL0 | SyslogFacility |
Fasilitas pengelogan sistem |
| Pastikan bahwa SSH MaxAuthTries dikonfigurasi | 6 | MaxAuthTries |
Upaya autentikasi maksimum |
| Pastikan bahwa SSH HostKey dikonfigurasi | <catatan kaki 2> | HostKey |
Kunci host |
| Pastikan bahwa file kunci resmi untuk SSH dikonfigurasi | <catatan kaki 3> | AuthorizedKeysFile |
File kunci resmi |
| Pastikan GSSApiAuthentication untuk SSH dikonfigurasi | tidak benar | GSSAPIAuthentication |
Autentikasi GSSAPI |
| Pastikan bahwa spanduk peringatan SSH dikonfigurasi | <catatan kaki 4> | Banner |
Spanduk |
| Pastikan sandi yang sesuai digunakan untuk SSH | aes128-ctr,aes192-ctr,aes256-ctr | Ciphers |
Cipher yang diizinkan |
| Pastikan bahwa hanya algoritma MAC yang disetujui yang digunakan | hmac-sha2-256 | MACs |
Algoritma MAC |
| Pastikan bahwa SSH ClientAliveCountMax dikonfigurasi | 0 | ClientAliveCountMax |
Jumlah pesan hidup klien |
| Pastikan port SSH dikonfigurasi | 22 | Port |
Pelabuhan |
| Pastikan bahwa SSH LoginGraceTime dikonfigurasi | 60 (enam puluh) | LoginGraceTime |
Waktu tenggang masuk |
| Pastikan bahwa SSH ClientAliveInterval dikonfigurasi | 3600 | ClientAliveInterval |
Interval hidup klien |
| Pastikan bahwa SSH PermitEmptyPasswords dikonfigurasi | tidak benar | PermitEmptyPasswords |
Izin kata sandi kosong |
Catatan kaki tabel:
administrators "openssh users"__PROGRAMDATA__/ssh/ssh_host_ecdsa_key%programdata%/ssh/administrators_authorized_keys#######################################################################/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- Catatan: ini ditampilkan kepada pengguna akhir sebagai:
####################################################################### Authorized access only! If you are not authorized to access or use this system, disconnect now! #######################################################################
Parameter kebijakan tambahan (non-sshd)
Parameter kebijakan tambahan ini tersedia selama penetapan kebijakan. Ini memengaruhi perilaku penetapan Azure Policy, dibandingkan dengan pengaturan sshd pada komputer.
| Nama | Deskripsi | Bawaan |
|---|---|---|
| Sertakan server yang terhubung dengan Arc | Dengan memilih opsi ini, Anda setuju untuk dikenakan biaya bulanan per komputer yang terhubung dengan Arc. | SALAH |
| Efek | Aktifkan atau nonaktifkan eksekusi kebijakan ini | <Bergantung pada Memilih perilaku audit-saja vs. audit-and-configure> |
Definisi kebijakan? Penetapan kebijakan? Tugas tamu? Konfigurasi Mesin? Bagaimana semua ini cocok bersama-sama?
Untuk mulai menggunakan Kontrol Postur SSH, tindakan inti Anda adalah membuat penetapan kebijakan. Penetapan kebijakan Anda menautkan definisi kebijakan (misalnya, "Audit Kontrol Postur SSH untuk komputer Windows") ke cakupan (misalnya, "my_factory_3_resource_group").
Saat Anda menggunakan sistem, Anda akan menemukan jenis dan terminologi sumber daya tambahan, seperti yang dirangkum dalam hal berikut.
| Deskripsi | |
|---|---|
| Definisi Kebijakan | Dalam layanan Kebijakan, data abstrak yang menjelaskan kluster perilaku audit dan/atau konfigurasi yang tersedia. Misalnya, "Audit Kontrol Postur SSH pada komputer Windows". |
| Penetapan kebijakan | Menautkan definisi kebijakan abstrak ke cakupan konkret, seperti grup sumber daya. Penetapan kebijakan dapat mencakup Parameter dan properti lain yang khusus untuk penugasan tersebut. |
| Konfigurasi Mesin | Layanan dan agen Azure yang menangani audit dan pengaturan konfigurasi di tingkat OS. |
| Penetapan tamu | Sumber daya yang bertindak sebagai tautan tiga arah antara penetapan kebijakan, komputer, dan layanan Konfigurasi Mesin. Kebijakan membuat dan memantau sumber daya penetapan tamu sesuai kebutuhan. Untuk informasi selengkapnya tentang terminologi "tamu" vs. "mesin", lihat Mengapa saya melihat istilah "Konfigurasi Tamu" dan "Automanage" di tempat? |
| Mesin | Komputer yang diaktifkan Arc atau Azure VM. |
Tentang kompatibilitas (implementasi SSH Server, dll.)
Kontrol Postur SSH dirancang untuk skenario Windows Server tujuan umum arus utama dari satu instans SSH Server yang berjalan lama :
- yang siklus hidupnya dikelola oleh sistem init seperti Service Control Manager
- yang perilakunya diatur oleh file sshd_config, konsisten dengan perilaku sshd OpenSSH
- yang konfigurasi/status efektifnya diungkapkan oleh
sshd -Toutput, konsisten dengan perilaku sshd OpenSSH
Untuk semua OS yang didukung (lihat di bawah), ini adalah kasus penggunaan SSH Server default.
Pada prinsipnya, mesin dapat memiliki sejumlah instans server SSH yang berjalan dengan berbagai masa pakai, berdasarkan sejumlah basis kode, dan mengambil konfigurasinya dari sejumlah tempat (file konfigurasi, argumen baris perintah, parameter waktu kompilasi, dll.). Kasus seperti itu berada di luar cakupan untuk Kontrol Postur SSH saat ini. Jika Anda tertarik dengan kasus seperti itu untuk masa depan, silakan hubungi kami untuk mendiskusikan.
Kontrol Postur SSH dimaksudkan untuk digunakan pada komputer Windows Server 2019, 2022, dan 2025 yang didukung oleh Azure Policy dan Konfigurasi Mesin -
Kompatibilitas dengan komputer tertentu pada waktu proses tidak dapat dijamin karena sysadmins dan penyusun gambar bebas untuk menghapus komponen dari OS, membuat sistem file baca-saja, dll.
Kompatibilitas dengan sshd_config Sertakan arahan
Kontrol Postur SSH mencoba mengakomodasi dan menggunakan arahan Include dalam sshd_config, sebagai berikut:
- Untuk tindakan audit/baca: Mengandalkan -T sshd untuk mencerminkan konfigurasi bersih dari perspektif sshd-- dengan mempertimbangkan Termasuk apa pun.
- Untuk tindakan konfigurasi/tulis:
- Tautkan file spesifik Kontrol Postur SSH baru ke sshd_config (sebagai Sertakan). Selanjutnya, tempatkan semua tulisan ke dalam file Kontrol Postur SSH yang ditautkan. Ini meningkatkan kebersihan sistem dan keterlacakan perubahan sistem.
Kompatibilitas dengan direktif sshd_config Match
Kontrol Postur SSH dirancang untuk mengaudit dan mengonfigurasi perilaku sshd inti. Ini tidak mencoba berinteraksi dengan blok bersyarat Match (jika ada) yang dapat menerapkan konfigurasi sshd yang berbeda untuk populasi tertentu.
Kompatibilitas dengan beberapa nilai sshd_config
Kontrol Postur SSH tidak mendukung penggunaan beberapa nilai untuk aturan 'port' yaitu, mengatur aturan 'port' ke 22 dan 33. Aturan ini harus dikonfigurasi dengan satu nilai untuk memastikan fungsionalitas dan kepatuhan yang tepat untuk mengaudit dan mengonfigurasi skenario. Aturan lain seperti izinkan/tolak pengguna dan sandi dapat memiliki beberapa nilai, selama ditambahkan pada satu baris.
Contoh:
- File sshd_config yang ada mencakup baris "port:22" dan baris lain "port:33".
- Kebijakan "Audit SSH" digunakan untuk mengaudit nilai port yang diharapkan 33.
- Hasil: Audit dapat lolos atau gagal tanpa diduga.
- Rekomendasi: Jangan gunakan fitur ini dengan skenario seperti ini.
Bagaimana cara mengkueri hasil secara terprogram?
Menggunakan kueri Azure Resource Graph (ARG) Anda dapat mengintegrasikan data penetapan dan status ke dalam alur kerja Anda sendiri. Contoh-contoh ini digunakan Search-AzGraph di PowerShell untuk menjalankan kueri ARG, tetapi PowerShell tidak diperlukan. Anda dapat menggunakan ARG dari banyak titik masuk termasuk Portal Microsoft Azure, Azure CLI, panggilan REST, dll.
Pada ketinggian ringkasan tertinggi, Anda bisa mendapatkan jumlah mesin per wadah status kepatuhan. Contohnya:
$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 #>Untuk menelusuri-sehingga Anda melihat status kepatuhan keseluruhan menurut komputer, Anda dapat menggunakan yang berikut ini:
$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 #>Untuk menelusuri detail pengaturan demi pengaturan, Anda bisa menggunakan yang berikut ini:
$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 #>
Mengapa saya melihat istilah "Konfigurasi Tamu" dan "Automanage" di tempat?
Layanan Konfigurasi Mesin juga telah dikenal sebagai Konfigurasi Tamu dan sebagai Konfigurasi Mesin Automanage. Anda mungkin menemukan nama-nama ini saat berinteraksi dengan layanan dan dokumentasi. Contohnya:
- Dalam contoh kueri Azure Resource Graph dalam artikel ini, tabel data disebut
guestconfigurationresources. - Di portal Microsoft Azure, tampilan yang berguna untuk mengamati hasil disebut "Penugasan Tamu".
- Di portal Microsoft Azure, saat menerapkan ekstensi VM yang relevan untuk mengaktifkan Konfigurasi Mesin, judul ekstensinya adalah "Konfigurasi Mesin Automanage".
Untuk tujuan Kontrol Postur SSH, tidak ada perbedaan yang berarti antara "tamu" dan "mesin". Komputer yang diaktifkan Arc dan Azure VM memenuhi syarat.
Apa pengidentifikasi untuk definisi kebijakan bawaan?
Dalam beberapa kasus, seperti membuat penetapan kebijakan dengan Azure CLI, mungkin berguna atau perlu merujuk ke definisi kebijakan berdasarkan id daripada nama tampilan.
| nama tampilan | Id |
|---|---|
| Audit Kontrol Postur SSH pada komputer Windows | /providers/Microsoft.Authorization/policyDefinitions/fe4e11ff-f561-4d4a-877c-256cc0b6470e |
| Mengonfigurasi Kontrol Postur SSH pada komputer Windows | /providers/Microsoft.Authorization/policyDefinitions/42830b63-79aa-4ea5-85dc-6baa719d7d7c |
Sumber daya terkait
- Untuk dukungan dengan masalah, dll., hubungi Dukungan Microsoft
- Untuk memberikan umpan balik, diskusikan permintaan fitur, dll. hubungi: linux_sec_config_mgmt@service.microsoft.com