# Habilitação Segura do WinRM

### Visão Geral

O **Windows Remote Management (WinRM)** é um protocolo baseado em WS-Management utilizado para execução remota de comandos e coleta de informações em sistemas Windows.

No contexto do **PAM DataDike (FSafer)**, o WinRM pode ser utilizado para:

* Execução remota segura de comandos
* Coleta de inventário e auditoria
* Integração com ativos Windows sem agente
* Automação de tarefas administrativas

> ⚠️ **Importante:** A habilitação do WinRM deve seguir boas práticas de segurança para evitar exposição indevida.

***

### Requisitos

* Sistemas Windows Server 2012 ou superior (recomendado)
* Permissões administrativas
* Ambiente em domínio (para uso via GPO)
* Firewall configurado adequadamente

***

## Boas Práticas de Segurança

Antes de configurar, garanta:

* Uso de **HTTPS (porta 5986)** ao invés de HTTP (5985)
* Restrição de acesso por IP (allowlist)
* Uso de contas com privilégio mínimo (least privilege)
* Auditoria habilitada
* Integração com cofre de credenciais do PAM

***

## Método 1: Habilitação via PowerShell (Manual)

### 1. Habilitar WinRM

```
winrm quickconfig
```

Ou de forma silenciosa:

```
Enable-PSRemoting -Force
```

***

### 2. Configurar WinRM para HTTPS (Recomendado)

#### Criar ou utilizar certificado

```
New-SelfSignedCertificate -DnsName "hostname" -CertStoreLocation Cert:\LocalMachine\My
```

#### Obter Thumbprint do certificado

```
Get-ChildItem -Path Cert:\LocalMachine\My
```

#### Criar listener HTTPS

```
winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="hostname"; CertificateThumbprint="THUMBPRINT"}
```

***

### 3. Restringir acesso (Security Hardening)

#### Permitir apenas IPs específicos

```
Set-Item WSMan:\localhost\Service\AllowUnencrypted $false
Set-Item WSMan:\localhost\Service\Auth\Basic $false
```

#### Configurar Trusted Hosts (se necessário)

```
Set-Item WSMan:\localhost\Client\TrustedHosts "IP_DO_SERVIDOR_PAM"
```

***

### 4. Configurar Firewall

```
New-NetFirewallRule -Name "WinRM HTTPS" -DisplayName "WinRM HTTPS" -Protocol TCP -LocalPort 5986 -Action Allow
```

***

### 5. Validar conectividade

```
Test-WsMan hostname
```

***

## Método 2: Habilitação via GPO (Recomendado para escala)

### 1. Criar nova GPO

No **Group Policy Management**:

* Nome: `GPO - Enable WinRM Secure`

***

### 2. Configurar WinRM Service

Caminho:

```
Computer Configuration
→ Policies
→ Administrative Templates
→ Windows Components
→ Windows Remote Management (WinRM)
→ WinRM Service
```

#### Ativar:

* **Allow remote server management through WinRM**

Configuração:

```
IPv4 filter: IP_DO_SERVIDOR_PAM
IPv6 filter: ::
```

***

### 3. Configurar Listener

Caminho:

```
Computer Configuration
→ Policies
→ Administrative Templates
→ Windows Components
→ Windows Remote Management (WinRM)
→ WinRM Service
```

Ativar:

* **Allow automatic configuration of listeners**

***

### 4. Configurar Firewall via GPO

Caminho:

```
Computer Configuration
→ Policies
→ Windows Settings
→ Security Settings
→ Windows Defender Firewall
→ Inbound Rules
```

Criar regra:

* Porta: **5986**
* Protocolo: TCP
* Ação: Allow
* Escopo: restringir ao IP do PAM

***

### 5. Configurar autenticação segura

Caminho:

```
Computer Configuration
→ Policies
→ Administrative Templates
→ System
→ Credentials Delegation
```

Configurar conforme necessidade:

* Permitir apenas métodos seguros (Kerberos recomendado)
* Evitar Basic Authentication

***

### 6. Aplicar GPO

```
gpupdate /force
```

***

## Validação após GPO

No host:

```
winrm enumerate winrm/config/listener
```

Teste remoto:

```
Test-WsMan HOSTNAME -UseSSL
```

***

## Recomendações para uso com DataDike PAM

Para integração segura com o PAM DataDike:

* Armazene credenciais no cofre seguro (FSafer)
* Utilize contas dedicadas por ativo
* Evite uso de contas administrativas globais
* Ative rotação automática de credenciais
* Monitore sessões via auditoria do PAM

***

## Erros Comuns

* Usar HTTP (5985) em produção
* Não restringir IP de origem
* Habilitar Basic Auth sem necessidade
* Não configurar firewall corretamente
* Certificados inválidos ou expirados
