Uso sicuro del Remoting PowerShell tramite Endpoint vincolati
Feb 11, 2015
PowerShell Remoting è abilitato di default in Windows Server 2012 (e versioni successive), e sebbene molte aziende IT lo considerino un potenziale rischio per la sicurezza, PowerShell è in realtà uno dei modi più sicuri per amministrare i server se si seguono le migliori pratiche. In questo articolo, vi mostrerò come configurare Windows Server 2012 R2 per accettare connessioni PowerShell remote da un gruppo specifico di utenti e come limitare i cmdlet che possono essere eseguiti.
Cosa sono gli Endpoint vincolati?
Gli endpoint remoti determinano gli utenti che possono connettersi a un dispositivo con PowerShell Remoting, così come ciò che possono fare una volta autenticati. L'endpoint PowerShell predefinito consente agli utenti che sono membri del gruppo Administrators e Remote Management Users di connettersi da remoto ed espone tutti i cmdlet e le funzioni disponibili sul dispositivo.
La buona notizia è che puoi creare i tuoi endpoint constrained e limitare ciò che gli utenti possono fare, permettendoti di minimizzare i rischi di consentire il PowerShell Remoting per scopi amministrativi.
Crea Endpoint vincolati in Windows Server 2012 R2
Creiamo il nostro endpoint vincolato in Windows Server 2012 R2. Accedi con i privilegi di amministratore locale e fai clic sull'icona blu di PowerShell nella barra delle applicazioni del desktop.
- Per visualizzare gli endpoint esistenti sul server, digitare
Get-PSSessionConfigurationnel prompt di PowerShell e premere INVIO. - Nella console PowerShell, dovresti vedere i quattro endpoint predefiniti.
Per limitare i cmdlet e le funzioni che un utente può eseguire quando si connette all'endpoint vincolato, dobbiamo creare un file di configurazione. Nella console di PowerShell, digitare il cmdlet mostrato di seguito e premere INVIO. New-PSSessionConfigurationFile crea un nuovo file di configurazione chiamato PrintAdmin.pssc e imposta restrizioni che includono la limitazione degli utenti remoti alle funzioni che fanno parte del modulo PowerShell PrintManagement.
New-PSSessionConfigurationFile – Path PrintAdmin.pssc – SessionType RestrictedRemoteServer -LanguageMode NoLanguage – ExecutionPolicy Restricted – ModulesToImport PrintManagement -VisibleFunctions Get-Printer
NoLanguage limita gli utenti all'esecuzione di soli cmdlet e funzioni, ovvero non possono essere utilizzati blocchi di script, variabili o operatori. Il valore –SessionType RestrictedRemoteServer limita gli utenti alle seguenti funzioni proxy: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Default, e Select-Object. Il valore Restricted per il parametro –ExecutionPolicy impedisce anche l'esecuzione di script. Notare che esiste anche un parametro –VisibleCmdlets che può essere utilizzato se i moduli che si desidera importare contengono cmdlet.
Ora che abbiamo un file di configurazione, possiamo registrare un nuovo endpoint chiamato Helpdesk:
Register-PSSessionConfiguration -Name Helpdesk -Path PrintAdmin.pssc –ShowSecurityDescriptorUI
Vi verrà chiesto di confermare che volete configurare il nuovo endpoint, riavviare il servizio WinRM e configurare i permessi di accesso all'endpoint. In questo esempio, sto per dare a un gruppo chiamato Helpdesk il permesso 'Esegui (Invoke)' sul nuovo endpoint. Non dimenticate di dare al gruppo Helpdesk il permesso di gestire le stampanti sul dispositivo remoto, altrimenti get-printer non funzionerà.
Se esegui Get-PSSessionConfiguration di nuovo, potrai vedere il nuovo endpoint nell'elenco.
Connettersi a un Endpoint vincolato
Ora connettiti all'endpoint da una macchina remota. Accedi a Windows 8 con un utente che sia membro del gruppo Helpdesk o del gruppo a cui hai assegnato i permessi sull'endpoint. Apri un prompt di PowerShell ed esegui il comando sottostante, sostituendo contososrv1 con il nome del server remoto:
Enter-PSSession -ComputerName contososrv1 -ConfigurationName Helpdesk
Una volta connessi al server remoto, il prompt cambierà di conseguenza per indicare che si sta lavorando con un dispositivo remoto. Digitare get-command e premere INVIO, e vedrai che l'elenco delle funzioni e cmdlet disponibili è limitato dall'endpoint. In questo esempio, ti restano le 7 funzioni proxy consentite dal tipo di sessione RestrictedRemoteServer e la funzione get-printer specificata nel file di configurazione dell'endpoint.
Contenuti correlati selezionati:
- Monitoraggio dei log degli eventi con PowerShell
- Notifica dei cambiamenti del gruppo di amministratori locali con PowerShell
- Filtraggio del registro eventi utilizzando PowerShell
- Interrogazione dei log degli eventi con PowerShell
- Inoltro del registro eventi di Windows in Windows Server 2008
- Come raccogliere l'inventario dei server
Condividi su
Scopri di più
Informazioni sull'autore
Russell Smith
Consulente IT
Consulente IT e autore specializzato in tecnologie di gestione e sicurezza. Russell ha più di 15 anni di esperienza nel settore IT, ha scritto un libro sulla sicurezza di Windows e ha coautore di un testo per la serie Microsoft’s Official Academic Course (MOAC).
Scopri di più su questo argomento
UEBA (User and Entity Behavior Analytics): guida completa a rilevamento, casi d'uso e implementazione
Gestione della configurazione per il controllo sicuro degli endpoint
Esempio di Analisi del Rischio: Come Valutare i Rischi
Il Triangolo CIA e la sua applicazione nel mondo reale
Creare utenti AD in massa e inviare le loro credenziali tramite PowerShell