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
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
Come creare, modificare e testare le password utilizzando PowerShell