Uso seguro do PowerShell Remoting com Endpoints Restritos
Feb 11, 2015
O PowerShell Remoting já vem habilitado no Windows Server 2012 (e versões posteriores) por padrão, e embora muitas equipes de TI vejam isso como um possível risco de segurança, o PowerShell é, de fato, uma das maneiras mais seguras de administrar servidores se as melhores práticas forem seguidas. Neste artigo, vou mostrar como configurar o Windows Server 2012 R2 para aceitar conexões remotas do PowerShell de um grupo específico de usuários e como restringir os cmdlets que podem ser executados.
O que são Pontos de Extremidade Restritos?
Os endpoints remotos determinam os usuários que podem se conectar a um dispositivo com o PowerShell Remoting, bem como o que eles podem fazer após a autenticação. O endpoint padrão do PowerShell permite que usuários que são membros do grupo Administrators e Remote Management Users se conectem remotamente e expõem todos os cmdlets e funções disponíveis no dispositivo.
A boa notícia é que você pode criar seus próprios endpoints constrained e restringir o que os usuários podem fazer, permitindo que você minimize os riscos de permitir o PowerShell Remoting para fins de administração.
Crie Endpoints Restritos no Windows Server 2012 R2
Vamos criar nosso próprio endpoint restrito no Windows Server 2012 R2. Faça login com privilégios de administrador local e clique no ícone azul do PowerShell na barra de tarefas da área de trabalho.
- Para ver os endpoints existentes no servidor, digite Get-PSSessionConfiguration no prompt do PowerShell e pressione ENTER.
- No console do PowerShell, você deve ver os quatro endpoints padrão.
Para restringir os cmdlets e funções que um usuário pode executar quando se conecta ao endpoint restrito, precisamos criar um arquivo de configuração. No console do PowerShell, digite o cmdlet mostrado abaixo e pressione ENTER. New-PSSessionConfigurationFile cria um novo arquivo de configuração chamado PrintAdmin.pssc e define restrições incluindo limitar usuários remotos a funções que fazem parte do módulo PowerShell PrintManagement.
New-PSSessionConfigurationFile – Path PrintAdmin.pssc – SessionType RestrictedRemoteServer -LanguageMode NoLanguage – ExecutionPolicy Restricted – ModulesToImport PrintManagement -VisibleFunctions Get-Printer
NoLanguage restringe os usuários a executar apenas cmdlets e funções, ou seja, blocos de script, variáveis ou operadores não podem ser usados. O valor –SessionType RestrictedRemoteServer limita os usuários às seguintes funções de proxy: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Default, e Select-Object. O valor Restricted para o parâmetro –ExecutionPolicy também impede a execução de scripts. Note que também existe um parâmetro –VisibleCmdlets que pode ser usado se os módulos que você deseja importar contêm cmdlets.
Agora que temos um arquivo de configuração, podemos registrar um novo endpoint chamado Helpdesk:
Register-PSSessionConfiguration -Name Helpdesk -Path PrintAdmin.pssc –ShowSecurityDescriptorUI
Será solicitado que confirme se deseja configurar o novo endpoint, reiniciar o serviço WinRM e configurar as permissões de acesso ao endpoint. Neste exemplo, vou conceder a um grupo chamado Helpdesk a permissão 'Executar (Invoke)' no novo endpoint. Não se esqueça de dar ao grupo Helpdesk permissão para gerenciar impressoras no dispositivo remoto, caso contrário, get-printer falhará.
Se você executar Get-PSSessionConfiguration novamente, poderá ver o novo endpoint listado.
Conectar a um Endpoint Restrito
Agora conecte-se ao endpoint de uma máquina remota. Faça login no Windows 8 com um usuário que seja membro do grupo Helpdesk ou do grupo ao qual você atribuiu permissões no endpoint. Abra um prompt do PowerShell e execute o comando abaixo, substituindo contososrv1 pelo nome do servidor remoto:
Enter-PSSession -ComputerName contososrv1 -ConfigurationName Helpdesk
Uma vez conectado ao servidor remoto, o prompt mudará de acordo para indicar que você está trabalhando com um dispositivo remoto. Digite get-command e pressione ENTER, e você verá que a lista de funções disponíveis e cmdlets é restrita pelo endpoint. Neste exemplo, você fica com as 7 funções proxy permitidas pelo tipo de sessão RestrictedRemoteServer e a função get-printer especificada no arquivo de configuração do endpoint.
Conteúdo relacionado selecionado:
- Monitoramento de logs de eventos com PowerShell
- Notificação de alterações no grupo de administradores locais com PowerShell
- Filtragem de log de eventos usando PowerShell
- Consulta de logs de eventos com PowerShell
- Encaminhamento de log de eventos do Windows no Windows Server 2008
- Como coletar inventário de servidores
Compartilhar em
Saiba Mais
Sobre o autor
Russell Smith
Consultor de TI
Consultor de TI e autor especializado em tecnologias de gestão e segurança. Russell tem mais de 15 anos de experiência em TI, escreveu um livro sobre segurança do Windows e coautorou um texto para a série Microsoft’s Official Academic Course (MOAC).
Saiba mais sobre este assunto
Gerenciamento de configuração para controle seguro de endpoint
Exemplo de Análise de Risco: Como Avaliar Riscos
O Triângulo da CIA e Sua Aplicação no Mundo Real
Criar usuários do AD em massa e enviar suas credenciais por e-mail usando PowerShell
Como criar, alterar e testar senhas usando PowerShell