En aquest tema, explorarem les consideracions de seguretat que cal tenir en compte quan es treballa amb PowerShell, especialment en entorns de remotització. La seguretat és un aspecte crític per garantir que els scripts i les operacions no comprometen la integritat del sistema ni la confidencialitat de les dades.

Conceptes Clau

  1. Autenticació i Autorització:

    • Autenticació: Verificació de la identitat de l'usuari o sistema.
    • Autorització: Determinació dels permisos que té un usuari autenticat.
  2. Execució de Scripts:

    • Política d'Execució: Configuració que determina quins scripts es poden executar en un sistema.
  3. Seguretat de les Sessions Remotes:

    • CredSSP (Credential Security Support Provider): Protocol que permet la delegació de credencials.
    • SSL/TLS: Protocols per assegurar la comunicació entre el client i el servidor.
  4. Gestió de Credencials:

    • Emmagatzematge Segur de Credencials: Utilització de mètodes segurs per emmagatzemar i gestionar credencials.

Autenticació i Autorització

Autenticació

PowerShell suporta diversos mètodes d'autenticació per a sessions remotes, incloent:

  • Kerberos: Utilitzat en entorns de domini.
  • NTLM: Utilitzat en entorns no dominis.
  • CredSSP: Permet la delegació de credencials.

Autorització

Després de l'autenticació, PowerShell verifica els permisos de l'usuari per determinar si pot executar les accions sol·licitades. Això es fa mitjançant:

  • Roles i Grups: Assignació de permisos basats en el rol o grup de l'usuari.
  • Polítiques de Seguretat: Configuracions específiques que determinen els permisos.

Execució de Scripts

Política d'Execució

La política d'execució de PowerShell determina quins scripts es poden executar en un sistema. Les opcions inclouen:

  • Restricted: No es permet l'execució de cap script.
  • AllSigned: Només es permet l'execució de scripts signats per un editor de confiança.
  • RemoteSigned: Els scripts descarregats d'Internet han d'estar signats per un editor de confiança.
  • Unrestricted: Es permet l'execució de tots els scripts, però es mostra una advertència per als scripts no signats.
# Comprovar la política d'execució actual
Get-ExecutionPolicy

# Establir la política d'execució a RemoteSigned
Set-ExecutionPolicy RemoteSigned

Seguretat de les Sessions Remotes

CredSSP

CredSSP permet la delegació de credencials, la qual cosa és útil per a operacions que requereixen autenticació en múltiples salts.

# Configurar una sessió remota utilitzant CredSSP
$session = New-PSSession -ComputerName "Server01" -Authentication Credssp

SSL/TLS

Per assegurar la comunicació entre el client i el servidor, és recomanable utilitzar SSL/TLS.

# Configurar una sessió remota utilitzant SSL/TLS
$session = New-PSSession -ComputerName "Server01" -UseSSL

Gestió de Credencials

Emmagatzematge Segur de Credencials

És important emmagatzemar les credencials de manera segura per evitar accessos no autoritzats.

# Emmagatzemar credencials de manera segura
$cred = Get-Credential

# Utilitzar les credencials emmagatzemades per a una sessió remota
$session = New-PSSession -ComputerName "Server01" -Credential $cred

Exercici Pràctic

Exercici 1: Configurar una Sessió Remota Segura

  1. Objectiu: Configurar una sessió remota segura utilitzant SSL/TLS i CredSSP.
  2. Passos:
    • Configura la política d'execució a RemoteSigned.
    • Crea una sessió remota utilitzant SSL/TLS.
    • Utilitza CredSSP per a la delegació de credencials.
# Establir la política d'execució a RemoteSigned
Set-ExecutionPolicy RemoteSigned

# Emmagatzemar credencials de manera segura
$cred = Get-Credential

# Configurar una sessió remota utilitzant SSL/TLS i CredSSP
$session = New-PSSession -ComputerName "Server01" -UseSSL -Authentication Credssp -Credential $cred

Solució

# Establir la política d'execució a RemoteSigned
Set-ExecutionPolicy RemoteSigned

# Emmagatzemar credencials de manera segura
$cred = Get-Credential

# Configurar una sessió remota utilitzant SSL/TLS i CredSSP
$session = New-PSSession -ComputerName "Server01" -UseSSL -Authentication Credssp -Credential $cred

Resum

En aquesta secció, hem explorat les consideracions de seguretat en PowerShell, incloent l'autenticació i autorització, la política d'execució de scripts, la seguretat de les sessions remotes i la gestió segura de credencials. Aquests conceptes són fonamentals per garantir que les operacions de PowerShell es realitzin de manera segura i eficient.

Curs de PowerShell

Mòdul 1: Introducció a PowerShell

Mòdul 2: Scripting Bàsic

Mòdul 3: Treballant amb Objectes

Mòdul 4: Tècniques Avançades de Scripting

Mòdul 5: Automatització i Programació de Tasques

Mòdul 6: Remotització amb PowerShell

Mòdul 7: Funcions Avançades de PowerShell

Mòdul 8: PowerShell i DevOps

Mòdul 9: Millors Pràctiques i Consells Avançats

© Copyright 2024. Tots els drets reservats