Búsqueda de sitios web

PowerShell: Implementación de la administración justa (JEA), paso a paso


¿Siempre has soñado con ajustar los permisos? PowerShell JEA lo hace posible. El usuario sólo ve lo que debería ver y sólo puede hacer lo que debería hacer. Con unos sencillos pasos todo está listo. Profundicemos.

¿Qué es JEA (Administración suficiente)?

El objetivo principal de JEA es limitar los privilegios. Podemos especificar lo que un usuario puede hacer de forma muy granular. Por ejemplo, desea restringir a un usuario para que reinicie únicamente el servicio de cola y luego opte por JEA. Desafortunadamente, esto sólo funciona con PowerShell. Por lo tanto, tenga en cuenta lo siguiente que el usuario objetivo no debe trabajar con PowerShell por primera vez.

¿Qué hay en este artículo?

En este artículo restringiré al usuario de Active Directory petra para que ejecute solo Restart-Service spooler y whoami en DC01. Para esto usaré un Windows Server 2016 (DC01) que está configurado como controlador de dominio de Active Directory para sid-500.com. Además, utilizaré una estación de trabajo con Windows 10 unida al dominio sid-500.com. Todas las pruebas se realizan desde esta computadora.

El artículo se divide en 4 pasos:

  • Crear un archivo de configuración de sesión de PS
  • Creando una carpeta para JEA
  • Crear un archivo de capacidad
  • Registro de la configuración

Y finalmente la prueba de Petra. Creo que es hora de empezar ahora.

Creación de un archivo de configuración de sesión PS para el grupo de administradores de cola de impresión (archivo pssc)

Es mejor si creamos el archivo de inmediato y hablamos de él más tarde, si ya está ahí. A veces tiene más sentido hacer primero el ejercicio y luego hablar de lo que estamos haciendo. ? Y como siempre en mi blog, todo con capturas de pantalla.

He iniciado sesión en mi controlador de dominio DC01.


New-PSSessionConfigurationFile -Path 'C:\Program Files\WindowsPowerShell\spooler_conf.pssc'

¿Qué hemos hecho ahora? Se ha creado un archivo predeterminado. Analicemos este archivo.


notepad 'C:\Program Files\WindowsPowerShell\spooler_conf.pssc'

En este archivo puede especificar si se registrará todo y para qué usuarios o grupos estará disponible su configuración. Para cambios, elimine el # de las líneas.

Mi objetivo es que solo los usuarios que sean miembros del grupo Spooler_Admins puedan reiniciar el servicio de cola y ejecutar whoami. Eso significa que tengo que modificar este archivo.

Primero cambio el autor. Poco espectacular.

Luego cambio el tipo de sesión a RestrictedRemoteServer. Esto permite la ejecución de los siguientes comandos: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Default y Select-Object.

Luego, especifico una carpeta de registro (todas las sesiones de usuario se registrarán en esta carpeta con el registro de transacciones de PowerShell) y activo la función RunAsVirtualAccount (opcional). Si un usuario inicia sesión, este usuario trabaja con una cuenta virtual temporal.

¡Asegúrese de que exista el Directorio de transcripciones!

Ahora llegamos a la parte más importante: especificar el nombre de la configuración de Capacidad.

Tenga en cuenta que el nombre de RoleCapabilities debe coincidir con el nombre del archivo en la tercera parte.

Guarde el archivo y ciérrelo.

Creando una carpeta para JEA

En esta parte creamos una carpeta para el archivo de configuración JEA que se utilizará en la siguiente parte.


New-Item -Path 'C:\Program Files\WindowsPowerShell\Modules\JEA\RoleCapabilities' -ItemType Directory

Eso es todo por esta sección.

Creación del archivo de capacidad de función de PS para los administradores de cola de impresión (archivo psrc)

Esta es la parte más interesante. Aquí configuramos lo que se les permite hacer. Es importante que le pongas a este archivo el nombre spooler_admins. Recuerde que hemos configurado el archivo de configuración de la sesión con el rol capacidades=spooler_admins.


New-PSRoleCapabilityFile -Path 'C:\Program Files\WindowsPowerShell\Modules\JEA\RoleCapabilities\spooler_admins.psrc'

Luego abra el archivo.


notepad 'C:\Program Files\WindowsPowerShell\Modules\JEA\RoleCapabilities\spooler_admins.psrc'

No dudes en cambiar el autor, la descripción y más. Me concentraré en el escenario más importante. Queremos restringir a los administradores de Spooler que solo puedan ejecutar Restart-Service y el comando whoami. Para ello, tengo que modificar la sección Cmdlets para que el comando apropiado sea visible para el grupo Administradores de cola de impresión.

A continuación quiero permitir la ejecución de whoami. Whoami no es un cmdlet, sino un comando externo.

Eso es todo. Guarde el archivo y ciérrelo.

Registrar la configuración

Finalmente, tenemos que activarlo. Elija un nombre e ingrese la ruta al archivo de configuración. ¡Asegúrate de que el grupo ya exista!


Register-PSSessionConfiguration -Name Spooler_Admins -Path 'C:\Program Files\WindowsPowerShell\spooler_conf.pssc'

Los lectores saben más. Tenemos que reiniciar el Servicio de Gestión Remota de Windows.


Restart-Service WinRM

Hemos terminado. Ahora se acerca la prueba.

Probando la configuración

La usuaria petra ha iniciado sesión en una computadora con Windows 10 que está unida a mi dominio. Recuerda que petra es miembro del grupo spooler_admins. Empecemos.

Petra intenta iniciar sesión mediante una sesión remota de PowerShell. Para hacer esto, debe especificar el nombre de la configuración.


Enter-PSSession -ComputerName dc01 -ConfigurationName spooler_admins

Sorpresa... sorpresa en la que se encuentra. Pero, ¿qué se le permite hacer? Es bueno que el servicio de reinicio esté ahí.

y el reinicio de la cola de impresión funciona...

¿Se le permite reiniciar algún otro servicio? No.

Ella debería poder ejecutar whoami...

Hemos configurado un registro de transcripción... ubicado en C:\Transcripts...

Eso es todo. Hemos terminado.

Conclusión

La única desventaja de esta característica de seguridad es que todo debe hacerse en PowerShell. Como ya mencioné en una de mis contribuciones, mi experiencia docente es que 7/10 aún no están familiarizados con PowerShell. Es hora de cambiarlo. ?

Espero que esto haya sido útil e interesante.

Artículos relacionados