Sdílet prostřednictvím


Co je řízení stavu SSH pro Windows?

Řízení stavu SSH umožňuje auditovat a konfigurovat stav zabezpečení serveru SSH v systému Windows Server 2025. Řízení stavu SSH se bezproblémově integruje se službami zásad správného řízení Azure (zásady, konfigurace počítače), abyste mohli:

  • Zajištění dodržování standardů sshd ve vašem odvětví nebo organizaci
  • Omezení prostoru pro útoky na vzdálenou správu založenou na SSHD
  • Zajištění konzistentního nastavení sshd ve vašem vozovém parku pro zajištění zabezpečení a produktivity

Snímek obrazovky zobrazující seznam kontrol SSH vyhovujících předpisům

Abychom vám pomohli předvést dodržování předpisů auditorům (a pomoci vám v případě potřeby) každá kontrola dodržování předpisů zahrnuje důkazy prostřednictvím pole Důvody označující, jak bylo zjištěno dodržování předpisů nebo nedodržování předpisů.

Můžete přizpůsobit parametry sshd (číslo portu, povolené skupiny atd.) nebo použít výchozí hodnoty zásad.

Dokumentace pro začátek

  • rychlý start: Pokud chcete praktické prostředí klikni a kliknutím, přečtěte si Rychlý start: Použití řízení stavu SSH na testovacím počítači.
  • Přehled a referenční informace: Koncepční informace, reference a nejčastější dotazy najdete v tomto článku.

Výběr chování pouze auditování a konfigurace

Při přiřazování zásad řízení stavu SSH můžete zvolit chování jen auditu (neboli Audit) nebo chování auditování a konfigurace (neboli Konfigurace).

Definice zásad Účinek služby Azure Policy Poznámky k tomu, co očekávat
Chování jen pro audit **Audit** SSH Posture Control on Windows machines auditIfNotExists Tato zásada zahrnuje více omezující nastavení v porovnání s mnoha oblíbenými systémovou imagí. Například odepření přístupu root ssh. Proto očekáváte, že se zobrazí hlášení nekompatibilních stavů.
Chování auditování a konfigurace **Configure** SSH Posture Control on Windows machines deployIfNotExists Jak je uvedeno výše, můžete očekávat, že se na začátku zobrazí nekompatibilní stavy. Následně se počítače překonfigurují tak, aby odpovídaly zásadám, což vede k případným stavům vyhovujícím předpisům .

U existujících počítačů obvykle správci začínají chováním jen pro audit, aby zjistili existující stav a zjistili závislosti, jako jsou účty povolené pro automatizaci systémů. Po porovnání existujícího vozového parku s výchozími nastaveními řízení stavu SSH byste se rozhodli, které parametry řízení stavu SSH chcete přizpůsobit. Po této analýze a plánování byste pak přešli na chování auditování a konfigurace (s postupy bezpečného nasazení, jako jsou okruhy).

V případě scénářů zeleného pole nebo jednorázových testovacích počítačů se můžete rozhodnout tuto analýzu přeskočit a přejít přímo na chování auditování a konfigurace a začít znovu se silnými výchozími nastaveními řízení stavu SSH.

Upozornění

Před konfigurací libovolného počítače se velmi dbejte na ověření nové konfigurace. Omylem byste ztratili přístup k vašim počítačům.

Mezi příklady náhodného uzamčení patří:

  • Použité nastavení net authorization (kombinace allowUsersdenyGroupsatd.) nepovoluje potřebná přihlášení.
  • Konfigurace port pro sshd je blokována jinými ovládacími prvky ve vašem prostředí (pravidla brány firewall hostitele, pravidla síťové brány firewall atd.).
    • Abyste se vyhnuli nadměrnému překročení hranic podnikového týmu, nakonfigurujete sshd pouze řízení stavu SSH. V současné době se nepokoušá upravit pravidla brány firewall na počítači atd. tak, aby vyhovoval nakonfigurovaným portům sshd. Pokud chcete tyto scénáře prodiskutovat s námi, kontaktujte nás (viz další zdroje informací níže).

Rozsah řízení stavu SSH: pravidla, výchozí hodnoty a přizpůsobení

Následující tabulka uvádí položky, které je možné auditovat nebo nakonfigurovat pomocí řízení stavu SSH. Každý z nich se označuje jako pravidlo.

Většina pravidel může mít vlastní hodnoty prostřednictvím parametrů přiřazení zásad, které se mají auditovat nebo konfigurovat a auditovat. Pokud například standard ve vaší organizaci používá port 1111 (místo 22) pro sshd, nastavili byste odpovídající parametr v přiřazení zásad. Tyto parametry mají identifikátory, které jsou zahrnuty v tabulce níže. Krátký název parametru se obvykle používá programově (například s az policy assignment create --params ...), zatímco delší zobrazovaný název parametru se používá v pracovních postupech webu Azure Portal.

Při přizpůsobení hodnot je potřeba zadat hodnoty, které jsou kompatibilní s sshd. Například allowGroups vezme seznam vzorů názvů skupin oddělených mezerami. Referenční informace najdete na stránce sshd_config man. Referenční informace sshd_config jsou užitečné také pro pochopení jiných chování sshd, jako je například způsob protínající se seznamy povolených a odepření .

Poznámka:

Pokud chcete zachovat rozložení tabulky, některé hodnoty buněk byly přesunuty do poznámek pod čarou pod tabulkou.

Název pravidla Výchozí hodnota Název parametru Zobrazovaný název parametru
Ujistěte se, že jsou nakonfigurované povolené skupiny pro SSH. <poznámka pod čarou 1> AllowGroups Povolené skupiny
Ujistěte se, že jsou nakonfigurovaní povolení uživatelé pro přístup SSH. "" AllowUsers Povolené uživatele
Ujistěte se, že je nakonfigurovaná metoda ověřování pro SSH. jakýkoliv AuthenticationMethods Metody ověřování
Ujistěte se, že jsou nakonfigurované odepřené skupiny pro SSH. "" DenyGroups Odepřené skupiny
Ujistěte se, že jsou nakonfigurovaní odepření uživatelé pro SSH. "" DenyUsers Odepření uživatelů
Ujistěte se, že je nakonfigurovaný kód zařízení použitý při protokolování zpráv pro SSH. LOCAL0 SyslogFacility Zařízení pro protokolování systému
Ujistěte se, že je nakonfigurované maxAuthTries SSH. 6 MaxAuthTries Maximální počet pokusů o ověření
Ujistěte se, že je nakonfigurovaný klíč hostitele SSH. <poznámka pod čarou 2> HostKey Klíč hostitele
Ujistěte se, že je nakonfigurovaný soubor autorizovaného klíče pro SSH. <poznámka pod čarou 3> AuthorizedKeysFile Soubor autorizovaného klíče
Ujistěte se, že je nakonfigurované ověřování GSSApiAuthentication pro SSH. Nepravda GSSAPIAuthentication Ověřování GSSAPI
Ujistěte se, že je nakonfigurovaný banner upozornění SSH. <poznámka pod čarou 4> Banner Korouhev
Ujistěte se, že se pro SSH používají příslušné šifry. aes128-ctr,aes192-ctr,aes256-ctr Ciphers Povolené šifry
Ujistěte se, že se používají jenom schválené algoritmy MAC. hmac-sha2-256 MACs Algoritmy MAC
Ujistěte se, že je nakonfigurovaný SSH ClientAliveCountMax. 0 ClientAliveCountMax Počet zpráv naživu klienta
Ujistěte se, že je nakonfigurovaný port SSH. 22 Port Přístav
Ujistěte se, že je nakonfigurovaná přihlašovací graceTime SSH. 60 LoginGraceTime Čas odkladu přihlášení
Ujistěte se, že je nakonfigurovaný protokol SSH ClientAliveInterval. 3600 ClientAliveInterval Interval živého klienta
Ujistěte se, že je nakonfigurovaná možnost SSH PermitEmptyPasswords. Nepravda PermitEmptyPasswords Prázdné oprávnění k heslu

Poznámky pod čarou tabulky:

  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. Poznámka: Zobrazí se koncovým uživatelům takto:
    #######################################################################
    
    Authorized access only!
    
    If you are not authorized to access or use this system, disconnect now!
    
    #######################################################################
    

Další parametry zásad (jiné než sshd)

Tyto další parametry zásad jsou k dispozici během přiřazování zásad. Tyto vliv mají na chování přiřazování služby Azure Policy na rozdíl od nastavení sshd na počítačích.

Název Popis Výchozí
Zahrnutí připojených serverů Arc Výběrem této možnosti souhlasíte s měsíčním účtováním na počítač připojený k Arc. NEPRAVDA
Účinek Povolení nebo zakázání provádění této zásady <Závisí na výběru chování pouze pro audit a konfiguraci.>

Definice zásad? Přiřazení zásad? Zadání hostů? Konfigurace počítače? Jak to všechno zapadá dohromady?

Pokud chcete začít používat řízení stavu SSH, je základní akcí vytvoření přiřazení zásad. Přiřazení zásad propojuje definici zásad (např. Audit řízení stavu SSH pro počítače s Windows) na obor (např. "my_factory_3_resource_group").

Při používání systému se setkáte s dalšími typy a terminologií prostředků, jak je shrnuto v následujícím příkladu.

Diagram znázorňující, jak přiřazení zásad propojuje počítače se službou Konfigurace počítače prostřednictvím přiřazení hostů

Popis
Definice zásad V rámci služby Policy jsou abstraktní data, která popisují cluster dostupných auditů nebo chování konfigurace. Například Audit kontroly stavu SSH na počítačích s Windows.
Přiřazení zásad Propojuje abstraktní definici zásad s konkrétním oborem, například se skupinou prostředků. Přiřazení zásady může obsahovat parametry a další vlastnosti, které jsou specifické pro toto přiřazení.
Konfigurace počítače Služba a agenty Azure, které zpracovávají konfiguraci auditování a nastavení na úrovni operačního systému.
Přiřazení hosta Prostředek, který funguje jako trojcestné propojení mezi přiřazením zásady, počítačem a službou Konfigurace počítače. Zásada podle potřeby vytváří a monitoruje prostředky přiřazení hostů.
Další informace o terminologii hosta vs. "machine" najdete v tématu Proč se na místech zobrazují termíny Konfigurace hosta a Automatická správa?
Stroj Počítač s podporou Arc nebo virtuální počítač Azure

Informace o kompatibilitě (implementace serveru SSH atd.)

Řízení stavu SSH je navržené pro standardní scénář pro obecné účely Windows Serveru jedné dlouhotrvající instance serveru SSH:

  • jehož životní cyklus spravuje inicializační systém, jako je Service Control Manager
  • jehož chování se řídí sshd_config souborem v souladu s chováním openSSH sshd
  • jehož efektivní konfigurace/stav se odhalí výstupem, který je konzistentní s chováním sshd -T sshd OpenSSH

Pro všechny podporované operační systémy (viz níže) se jedná o výchozí případ použití serveru SSH.

V zásadě může mít počítač libovolný počet instancí serveru SSH spuštěných s různými životnostmi na základě libovolného počtu základů kódu a převzetí konfigurace z libovolného počtu míst (konfigurační soubory, argumenty příkazového řádku, parametry doby kompilace atd.). Tyto případy nejsou v tuto chvíli omezené na řízení stavu SSH. Pokud vás takové případy zajímají v budoucnu, kontaktujte nás , abychom projednali.

Řízení stavu SSH je určené pro použití na počítačích s Windows Serverem 2025 podporovaných službou Azure Policy a konfigurací počítače –

Kompatibilita s jakýmkoli konkrétním počítačem v době běhu nemůže být zaručena, protože správci systému a tvůrci imagí mohou odebírat komponenty z operačního systému, vytvářet systémy souborů jen pro čtení atd.

Kompatibilita s direktivami sshd_config Include

Řízení stavu SSH se pokouší přizpůsobit a používat Include direktivy v sshd_config následujícím způsobem:

  • Pro akce auditu a čtení: Spoléháte se na -T sshd, aby odrážela síťovou konfiguraci z pohledu sshd – s ohledem na zahrnutí.
  • Pro akce konfigurace/zápisu:
    • Propojte nový soubor ovládacího prvku stavu SSH s sshd_config (jako zahrnutí). Následně umístěte všechny zápisy do propojeného souboru řízení stavu SSH. To zlepšuje hygienu systému a sledovatelnost systémových změn.

Kompatibilita s direktivami sshd_config Match

Řízení stavu SSH je navržené tak, aby auditování a konfigurace chování jádra sshd. Nepokoušá se interagovat s podmíněnými Match bloky (pokud existuje), které můžou použít různé konfigurace sshd pro konkrétní populace.

Kompatibilita s více hodnotami sshd_config

Řízení stavu SSH nepodporuje použití více hodnot pro pravidlo "port", tj. nastavení pravidla "port" na 22 a 33. Toto pravidlo by mělo být nakonfigurováno s jednou hodnotou, aby se zajistily správné funkce a dodržování předpisů pro auditování a konfiguraci scénářů. Další pravidla, jako je povolení nebo zamítnutí uživatelů a šifer, můžou mít více hodnot, pokud se přidají na jeden řádek.

Příklad:

  • Existující soubor sshd_config obsahuje řádek "port:22" a další řádek "port:33".
  • Zásady auditování SSH slouží k auditování očekávané hodnoty portu 33.
  • Výsledek: Audit může proběhnout nepředvídatelně nebo může selhat.
  • Doporučení: Tuto funkci nepoužívejte se scénáři, jako jsou tyto.

Jak se můžu dotazovat na výsledky prostřednictvím kódu programu?

Pomocí dotazů Azure Resource Graphu (ARG) můžete integrovat data o přiřazení a stavu do vlastních pracovních postupů. Tyto příklady se používají Search-AzGraph v PowerShellu ke spuštění dotazu ARG, ale PowerShell se nevyžaduje. ARG můžete použít z mnoha vstupních bodů, včetně webu Azure Portal, Azure CLI, volání REST atd.

  1. V nejvyšší výšce sumarizace můžete získat počty počítačů podle kontejneru stavu dodržování předpisů. Například:

    $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. Pokud chcete přejít k podrobnostem, abyste viděli celkový stav dodržování předpisů podle počítače, můžete použít následující:

    $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. Pokud chcete přejít k podrobnostem o nastavení podle nastavení, můžete použít následující:

    $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
    #>
    

Proč se na místech zobrazují termíny Konfigurace hosta a Automanage?

Služba Konfigurace počítače se také označuje jako Konfigurace hosta a jako Konfigurace počítače s automatickým správou. S těmito názvy se můžete setkat při interakci se službami a dokumentací. Například:

  • V příkladech dotazu Azure Resource Graphu v tomto článku se volá guestconfigurationresourcestabulka dat .
  • Na webu Azure Portal se užitečné zobrazení pro pozorování výsledků nazývá "Přiřazení hostů".
  • Když na webu Azure Portal použijete příslušné rozšíření virtuálního počítače pro povolení konfigurace počítače, název rozšíření je "Automatická konfigurace počítače".

Pro účely řízení stavu SSH neexistuje žádný smysluplný rozdíl mezi "hostem" a "počítačem". Počítače s podporou arc a virtuální počítače Azure jsou způsobilé.

Jaké jsou identifikátory předdefinovaných definic zásad?

V některých případech, jako je vytváření přiřazení zásad pomocí Azure CLI, může být užitečné nebo nutné odkazovat na definici zásady podle ID místo zobrazovaného názvu.

zobrazované jméno identifikační číslo

| Audit řízení stavu SSH na počítačích s Windows | ... | | Konfigurace řízení stavu SSH na počítačích s Windows | ... |