Asegurar el remoto de PowerShell usando puntos finales restringidos
Feb 11, 2015
PowerShell Remoting está habilitado en Windows Server 2012 (y versiones posteriores) por defecto, y aunque muchas empresas de TI lo ven como un posible riesgo de seguridad, PowerShell es de hecho una de las formas más seguras de administrar servidores si se siguen las mejores prácticas. En este artículo, voy a mostrarte cómo configurar Windows Server 2012 R2 para aceptar conexiones remotas de PowerShell de un grupo específico de usuarios y cómo restringir los cmdlets que se pueden ejecutar.
¿Qué son los Endpoints restringidos?
Los endpoints remotos determinan los usuarios que pueden conectarse a un dispositivo con PowerShell Remoting, así como lo que pueden hacer una vez autenticados. El endpoint de PowerShell predeterminado permite a los usuarios que son miembros del grupo de Administrators y Remote Management Users conectarse de forma remota y expone todos los cmdlets y funciones disponibles en el dispositivo.
La buena noticia es que puedes crear tus propios endpoints constrained y restringir lo que los usuarios pueden hacer, lo que te permite minimizar los riesgos de permitir PowerShell Remoting para fines de administración.
Crear Endpoints restringidos en Windows Server 2012 R2
Creemos nuestro propio endpoint restringido en Windows Server 2012 R2. Inicie sesión con privilegios de administrador local y haga clic en el ícono azul de PowerShell en la barra de tareas del escritorio.
- Para ver los puntos finales existentes en el servidor, escriba
Get-PSSessionConfigurationen el símbolo del sistema de PowerShell y presione ENTER. - En la consola de PowerShell, debería ver los cuatro endpoints predeterminados.
Para restringir los cmdlets y funciones que un usuario puede ejecutar cuando se conecta al endpoint restringido, necesitamos crear un archivo de configuración. En la consola de PowerShell, escriba el cmdlet que se muestra a continuación y presione ENTER. New-PSSessionConfigurationFile crea un nuevo archivo de configuración llamado PrintAdmin.pssc y establece restricciones que incluyen limitar a los usuarios remotos a funciones que son parte del módulo de PowerShell PrintManagement.
New-PSSessionConfigurationFile – Path PrintAdmin.pssc – SessionType RestrictedRemoteServer -LanguageMode NoLanguage – ExecutionPolicy Restricted – ModulesToImport PrintManagement -VisibleFunctions Get-Printer
NoLanguage restringe a los usuarios a ejecutar solo cmdlets y funciones, es decir, no se pueden utilizar bloques de scripts, variables u operadores. El valor –SessionType RestrictedRemoteServer limita a los usuarios a las siguientes funciones proxy: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Default, y Select-Object. El valor Restricted para el parámetro –ExecutionPolicy también impide la ejecución de scripts. Cabe destacar que también existe un parámetro –VisibleCmdlets que se puede utilizar si los módulos que desea importar contienen cmdlets.
Ahora que tenemos un archivo de configuración, podemos registrar un nuevo punto final llamado Helpdesk:
Se le solicitará confirmar que desea configurar el nuevo punto final, reiniciar el servicio WinRM y configurar los permisos de acceso al punto final. En este ejemplo, voy a darle a un grupo llamado Helpdesk permiso de 'Ejecutar (Invocar)' en el nuevo punto final. No olvide dar al grupo Helpdesk permiso para gestionar impresoras en el dispositivo remoto, de lo contrario get-printer fallará.
Si ejecuta Get-PSSessionConfiguration de nuevo, podrá ver el nuevo punto de conexión en la lista.
Conéctese a un Endpoint restringido
Ahora conéctese al endpoint desde una máquina remota. Inicie sesión en Windows 8 con un usuario que sea miembro del grupo Helpdesk o del grupo al que asignó permisos en el endpoint. Abra un símbolo del sistema de PowerShell y ejecute el comando a continuación, reemplazando contososrv1 con el nombre del servidor remoto:
Enter-PSSession -ComputerName contososrv1 -ConfigurationName Helpdesk
Una vez conectado al servidor remoto, el indicador cambiará en consecuencia para indicar que estás trabajando con un dispositivo remoto. Escribe get-command y presiona ENTER, y verás que la lista de funciones y cmdlets disponibles está restringida por el punto final. En este ejemplo, te quedas con las 7 funciones proxy permitidas por el tipo de sesión RestrictedRemoteServer y la función get-printer especificada en el archivo de configuración del punto final.
Contenido relacionado seleccionado:
- Monitoreo de registros de eventos con PowerShell
- Notificación de cambios en el grupo de administradores locales con PowerShell
- Filtrado del registro de eventos utilizando PowerShell
- Consulta de registros de eventos con PowerShell
- Reenvío del registro de eventos de Windows en Windows Server 2008
- Cómo recopilar inventario de servidores
Compartir en
Aprende más
Acerca del autor
Russell Smith
Consultor de TI
Consultor de TI y autor especializado en tecnologías de gestión y seguridad. Russell tiene más de 15 años de experiencia en TI, ha escrito un libro sobre seguridad en Windows y ha coescrito un texto para la serie de Cursos Académicos Oficiales de Microsoft (MOAC).
Aprende más sobre este tema
Gestión de configuración para el control seguro de Endpoint
Ejemplo de Análisis de Riesgos: Cómo Evaluar los Riesgos
El Triángulo de la CIA y su Aplicación en el Mundo Real
Crear usuarios de AD en masa y enviar sus credenciales por correo electrónico usando PowerShell
Cómo crear, cambiar y probar contraseñas usando PowerShell