Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ssh Posture Control consente di controllare e configurare il comportamento di sicurezza del server SSH in Windows Server 2025. Controllo comportamento SSH si integra perfettamente con i servizi di governance di Azure (Criteri, Configurazione computer) in modo da poter:
- Garantire la conformità agli standard sshd nell'organizzazione o nel settore
- Ridurre la superficie di attacco della gestione remota basata su sshd
- Garantire una configurazione sshd coerente nella flotta per la sicurezza e la produttività
Per illustrare la conformità ai revisori e per intervenire dove necessario, ogni controllo di conformità include prove tramite il campo Motivi che indica come è stata determinata la conformità o la mancata conformità.
È possibile personalizzare i parametri sshd (numero di porta, gruppi consentiti e così via) o usare i valori predefiniti dei criteri.
Documentazione per iniziare
- guida introduttiva: per un'esperienza pratica click-by-click, vedere Avvio rapido: Applicare controllo comportamento SSH a un computer di test.
- Panoramica e riferimento: per informazioni concettuali, informazioni di riferimento e domande frequenti, continuare con questo articolo.
Selezione del comportamento solo controllo e configurazione
Quando si assegnano criteri di controllo della postura SSH, è possibile scegliere il comportamento di sola controllo (ovvero "Audit") o il comportamento audit-and-configure (noto anche come "Configura").
Definizione di criteri | effetto Criteri di Azure | Note su cosa aspettarsi | |
---|---|---|---|
Comportamento di sola controllo | **Audit** SSH Posture Control on Windows machines |
auditIfNotExists | I criteri includono impostazioni più restrittive rispetto a molte immagini di sistema più diffuse. Ad esempio, negazione dell'accesso SSH radice. Di conseguenza, si prevede di visualizzare gli stati non conformi segnalati. |
Comportamento di controllo e configurazione | **Configure** SSH Posture Control on Windows machines |
deployIfNotExists | Come indicato in precedenza, è possibile che vengano visualizzati inizialmente gli stati non conformi . Successivamente, i computer verranno riconfigurati in modo che corrispondano ai criteri, determinando eventuali stati conformi . |
Per i computer esistenti, gli amministratori iniziano in genere con il comportamento di solo controllo per determinare lo stato esistente e individuare dipendenze come gli account consentiti per l'automazione dei sistemi. Dopo aver confrontato la flotta esistente con le impostazioni predefinite del controllo del comportamento SSH, è necessario decidere quali parametri di controllo del comportamento SSH personalizzare. Dopo questa analisi e pianificazione, si passa quindi al comportamento di controllo e configurazione (con procedure di distribuzione sicure, ad esempio anelli).
Per gli scenari greenfield o i computer di test usa e getta, è possibile scegliere di ignorare l'analisi e passare direttamente al comportamento di controllo e configurazione, a partire dalle impostazioni predefinite avanzate del controllo della postura SSH.
Attenzione
Prima di configurare i computer, prestare molta attenzione alla convalida della nuova configurazione. È possibile perdere accidentalmente l'accesso ai computer.
Alcuni esempi di blocco accidentale includono:
- Le impostazioni di autorizzazione net applicate (combinazione di
allowUsers
,denyGroups
e così via) non consentono gli account di accesso necessari - L'oggetto
port
configurato per sshd è bloccato da altri controlli nell'ambiente (regole del firewall host, regole del firewall di rete e così via)- Per evitare di superare i limiti del team aziendale, SSH Posture Control configurato solo sshd. Attualmente non tenta di modificare le regole del firewall sul computer e così via per supportare la porta sshd configurata. Per discutere questi scenari con Microsoft, contattare Microsoft (vedere Risorse aggiuntive di seguito).
Ambito di controllo del comportamento SSH: regole, impostazioni predefinite e personalizzazione
La tabella seguente elenca gli elementi che possono essere controllati o configurati con SSH Posture Control. Ognuno di questi è noto come regola.
La maggior parte delle regole può avere valori personalizzati, tramite parametri di assegnazione dei criteri per il controllo o la configurazione e il controllo. Ad esempio, se lo standard dell'organizzazione consiste nell'usare la porta 1111 (anziché 22) per sshd, impostare il parametro corrispondente nell'assegnazione dei criteri. Questi parametri hanno identificatori inclusi nella tabella seguente. In genere, il nome breve del parametro viene usato a livello di codice (ad esempio con az policy assignment create --params ...
), mentre il nome visualizzato del parametro più lungo viene usato nei flussi di lavoro del portale di Azure.
Quando si personalizzano i valori, prestare attenzione a fornire valori compatibili con sshd. Ad esempio, allowGroups
accetta un elenco delimitato da spazi di modelli di nomi di gruppo. Per informazioni di riferimento, vedere la pagina sshd_config man. Il riferimento sshd_config è utile anche per comprendere altri comportamenti sshd, ad esempio la modalità di intersezione tra elenchi consenti e nega .
Annotazioni
Per mantenere il layout della tabella, alcuni valori delle celle sono stati spostati nelle note a piè di pagina sotto la tabella.
Nome regola | Valore predefinito | Nome del parametro | Parameter display name (Nome visualizzato parametro) |
---|---|---|---|
Assicurarsi che i gruppi consentiti per SSH siano configurati | <nota a piè di pagina 1> | AllowGroups |
Gruppi consentiti |
Assicurarsi che gli utenti autorizzati per l'accesso SSH siano configurati | "" | AllowUsers |
Utenti consentiti |
Verificare che il metodo di autenticazione per SSH sia configurato | qualunque | AuthenticationMethods |
Metodi di autenticazione |
Assicurarsi che i gruppi negati per SSH siano configurati | "" | DenyGroups |
Gruppi negati |
Assicurarsi che gli utenti negati per SSH siano configurati | "" | DenyUsers |
Utenti negati |
Assicurarsi che il codice della struttura usato durante la registrazione dei messaggi per SSH sia configurato | LOCAL0 | SyslogFacility |
Funzionalità di registrazione del sistema |
Verificare che sia configurato SSH MaxAuthTries | 6 | MaxAuthTries |
Numero massimo di tentativi di autenticazione |
Assicurarsi che la chiave host SSH sia configurata | <nota a piè di pagina 2> | HostKey |
Chiave host |
Assicurarsi che il file di chiave autorizzata per SSH sia configurato | <nota a piè di pagina 3> | AuthorizedKeysFile |
File di chiave autorizzata |
Assicurarsi che GSSApiAuthentication per SSH sia configurato | falso | GSSAPIAuthentication |
Autenticazione GSSAPI |
Assicurarsi che il banner di avviso SSH sia configurato | <nota a piè di pagina 4> | Banner |
Striscione |
Assicurarsi che vengano usate crittografie appropriate per SSH | aes128-ctr,aes192-ctr,aes256-ctr | Ciphers |
Crittografie consentite |
Assicurarsi che vengano usati solo gli algoritmi MAC approvati | hmac-sha2-256 | MACs |
Algoritmi MAC |
Assicurarsi che il client SSHAliveCountMax sia configurato | 0 | ClientAliveCountMax |
Numero di messaggi attivi del client |
Assicurarsi che la porta SSH sia configurata | 22 | Port |
Porto |
Assicurarsi che l'account di accesso SSHGraceTime sia configurato | 60 | LoginGraceTime |
Tempo di tolleranza di accesso |
Assicurarsi che il client SSHAliveInterval sia configurato | 3600 | ClientAliveInterval |
Intervallo di durata del client |
Assicurarsi che l'opzione SSH PermitEmptyPasswords sia configurata | falso | PermitEmptyPasswords |
Autorizzazione password vuota |
Note a piè di pagina della tabella:
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
- Nota: viene visualizzato agli utenti finali come segue:
####################################################################### Authorized access only! If you are not authorized to access or use this system, disconnect now! #######################################################################
Parametri dei criteri aggiuntivi (non sshd)
Questi parametri di criteri aggiuntivi sono disponibili durante l'assegnazione dei criteri. Questi influiscono sul comportamento di assegnazione di Criteri di Azure, anziché sulle impostazioni sshd nei computer.
Nome | Descrizione | Predefinito |
---|---|---|
Includere i server connessi arc | Selezionando questa opzione, si accetta di essere addebitati mensilmente per ogni computer connesso Arc. | Falso |
Effetto | Abilitare o disabilitare l'esecuzione di questo criterio | <Dipende dalla selezione del comportamento solo controllo e configurazione> |
Definizioni di criteri? Assegnazioni di criteri? Assegnazioni guest? Configurazione del computer? Come si adatta tutto questo insieme?
Per iniziare a usare SSH Posture Control, l'azione principale consiste nel creare un'assegnazione di criteri. L'assegnazione dei criteri collega una definizione di criteri (ad esempio, "Controlla controllo comportamento SSH per i computer Windows") a un ambito (ad esempio, "my_factory_3_resource_group").
Quando si usa il sistema, si riscontrano tipi di risorse e terminologia aggiuntivi, come riepilogato nel codice seguente.
Descrizione | |
---|---|
Definizione criteri | All'interno del servizio Criteri, i dati astratti che descrivono un cluster di comportamenti di controllo e/o configurazione disponibili. Ad esempio, "Audit SSH Posture Control on Windows machines". |
Assegnazione di criteri | Collega una definizione di criteri astratta a un ambito concreto, ad esempio un gruppo di risorse. L'assegnazione dei criteri può includere parametri e altre proprietà specifiche di tale assegnazione. |
Configurazione macchina | Servizio e agente di Azure che gestiscono il controllo e l'impostazione della configurazione a livello di sistema operativo. |
Assegnazione guest | Risorsa che funge da collegamento a tre vie tra l'assegnazione dei criteri, il computer e il servizio Configurazione computer. I criteri creano e monitorano le risorse di assegnazione guest in base alle esigenze. Per altre informazioni sulla terminologia "guest" e "machine", vedere Perché vengono visualizzati i termini "Configurazione guest" e "Gestione automatica" nelle posizioni? |
Macchina | Un computer abilitato per Arc o una macchina virtuale di Azure. |
Informazioni sulla compatibilità (implementazioni del server SSH e così via)
Il controllo del comportamento SSH è progettato per lo scenario di Windows Server per utilizzo generico mainstream di un'unica istanza del server SSH a esecuzione prolungata :
- il cui ciclo di vita è gestito dal sistema init, ad esempio Service Control Manager
- il cui comportamento è regolato da sshd_config file, coerente con il comportamento sshd OpenSSH
- la cui configurazione/stato effettivo viene rivelato dall'output
sshd -T
, coerente con il comportamento sshd OpenSSH
Per tutti i sistemi operativi supportati (vedere di seguito), questo è il caso d'uso predefinito del server SSH.
In linea di principio, un computer potrebbe avere un numero qualsiasi di istanze del server SSH in esecuzione con durate variabili, in base a qualsiasi numero di codebase e prendendo la configurazione da qualsiasi numero di posizioni (file di configurazione, argomenti della riga di comando, parametri di compilazione e così via). Questi casi non rientrano nell'ambito per il controllo del comportamento SSH in questo momento. Se siete interessati a tali casi per il futuro, vi preghiamo di contattarci per discutere.
Il controllo del comportamento SSH è destinato all'uso nei computer Windows Server 2025 supportati da Criteri di Azure e configurazione del computer -
La compatibilità con qualsiasi computer specifico in fase di esecuzione non può essere garantita perché sysadmins e image builder sono liberi di rimuovere componenti dal sistema operativo, rendere i file system di sola lettura e così via.
Compatibilità con le direttive include sshd_config
Il controllo del comportamento SSH tenta di supportare e usare direttive Include
in sshd_config, come indicato di seguito:
- Per le azioni di controllo/lettura: fare affidamento su sshd -T per riflettere la configurazione della rete dal punto di vista di sshd, tenendo conto di eventuali include.
- Per le azioni di configurazione/scrittura:
- Collegare un nuovo file specifico del controllo del comportamento SSH a sshd_config (come inclusione). Successivamente, inserire tutte le scritture nel file SSH Posture Control collegato. Questo migliora l'igiene del sistema e la tracciabilità dei cambiamenti di sistema.
Compatibilità con le direttive match sshd_config
Ssh Posture Control è progettato per controllare e configurare il comportamento sshd principale. Non tenta di interagire con blocchi condizionali Match
(se presenti) che possono applicare configurazioni sshd diverse a popolazioni specifiche.
Compatibilità con più valori di sshd_config
Controllo comportamento SSH non supporta l'uso di più valori per la regola 'porta', ad esempio impostando la regola 'porta' su 22 e 33. Questa regola deve essere configurata con un singolo valore per garantire funzionalità e conformità appropriate per il controllo e la configurazione degli scenari. Altre regole, ad esempio consenti/negate, utenti e crittografie possono avere più valori, purché vengano aggiunti su una singola riga.
Esempio:
- Un file di sshd_config esistente include una riga "port:22" e un'altra riga "port:33".
- Il criterio "Audit SSH" viene usato per controllare il valore di porta previsto pari a 33.
- Risultato: il controllo può superare o non riuscire in modo imprevedibile.
- Raccomandazione: non usare questa funzionalità con scenari come questi.
Come è possibile eseguire una query sui risultati a livello di codice?
Usando le query di Azure Resource Graph (ARG) è possibile integrare i dati di assegnazione e stato nei propri flussi di lavoro. Questi esempi usano Search-AzGraph
in PowerShell per eseguire la query ARG, ma PowerShell non è obbligatorio. È possibile usare ARG da molti punti di ingresso, tra cui il portale di Azure, l'interfaccia della riga di comando di Azure, le chiamate REST e così via.
All'altitudine più elevata del riepilogo, è possibile ottenere i conteggi dei computer per ogni bucket di stato di conformità. Per esempio:
$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 #>
Per eseguire il drill-in modo che venga visualizzato lo stato di conformità complessivo in base al computer, è possibile usare quanto segue:
$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 #>
Per eseguire il drill-down fino ai dettagli delle impostazioni in base all'impostazione, è possibile usare quanto segue:
$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 #>
Perché vengono visualizzati i termini "Configurazione guest" e "Gestione automatica" nelle posizioni?
Il servizio Configurazione computer è stato noto anche come Configurazione guest e come Configurazione automatica del computer. Questi nomi possono essere riscontrati durante l'interazione con i servizi e la documentazione. Per esempio:
- Negli esempi di query di Azure Resource Graph in questo articolo la tabella dei dati è denominata
guestconfigurationresources
. - Nel portale di Azure una visualizzazione utile per osservare i risultati è denominata "Assegnazioni guest".
- Nel portale di Azure, quando si applica l'estensione vm pertinente per abilitare Configurazione computer, il titolo dell'estensione è "Gestione automatica configurazione computer".
Ai fini del controllo del comportamento SSH, non esiste alcuna distinzione significativa tra "guest" e "machine". I computer abilitati per Arc e le macchine virtuali di Azure sono idonei.
Quali sono gli identificatori per le definizioni di criteri predefinite?
In alcuni casi, ad esempio la creazione di assegnazioni di criteri con l'interfaccia della riga di comando di Azure, può essere utile o necessario fare riferimento a una definizione di criteri in base all'ID anziché al nome visualizzato.
nome visualizzato | Id |
---|
| Controllare il controllo del comportamento SSH nei computer Windows | ...
| | Configurare il controllo del comportamento SSH nei computer Windows | ...
|
" output is necessary.)
- Per assistenza con problemi e così via, contattare il supporto tecnico Microsoft
- Per fornire commenti e suggerimenti, discutere le richieste di funzionalità e così via: linux_sec_config_mgmt@service.microsoft.com