Configuração do agente de gravação Windows¶
O agente de gravação Windows é utilizado pelo CyberElements Bastion para adicionar novas funcionalidades às sessões RDP:
- Possibilidade de filtrar os fluxos TCP e UDP acessíveis ao utilizador
- Possibilidade de desencadear a gravação da sessão de qualquer utilizador que se ligue ao servidor sem passar pelo portal de utilizador nem pelo cliente Desktop (funcionalidade
direct access)
Além disso, durante as sessões dos utilizadores são capturados eventos adicionais:
- Abertura de janelas
- Fecho de janelas
- Início de programas
- Fecho de programas
- Conteúdo da área de transferência
- Atividade do utilizador
Pré-requisitos¶
Compatibilidade do cliente
Para saber se o agente é compatível com os diferentes sistemas operativos Microsoft Windows, consulte a matriz de compatibilidade.
O agente de gravação exige alguns pré-requisitos para funcionar corretamente. Alguns dizem apenas respeito à funcionalidade de gravação com agente das aplicações RDP e HTML5 RDP, outros ao acesso direto com agente.
Pré-requisitos gerais¶
O agente de gravação envia a gravação da sessão do utilizador para o CyberElements Bastion, ligando-se ao Edge Gateway na porta TCP 8443. Para isso, é necessário que o fluxo de rede entre as duas máquinas esteja aberto.
Para devolver a gravação ao Edge Gateway de forma segura, o agente de gravação estabelece com ele uma ligação segura através de TLS. O TLS baseia-se na utilização de certificados e devem ser cumpridas as restrições seguintes para que a ligação seja considerada fiável e segura:
- O certificado do servidor, neste caso o Edge Gateway, não deve estar expirado (data máxima de validade).
-
O certificado do servidor, neste caso o Edge Gateway, deve ser emitido por uma autoridade de certificação reconhecida como de confiança pela máquina onde o agente de gravação está instalado.
Informação adicional
O servidor onde o agente de gravação está instalado deve ter, no mínimo, a autoridade de certificação (CA) raiz do certificado do servidor de gravação no seu armazém local de autoridades de certificação de confiança.
Por conseguinte, é necessário:
- Recuperar a CA raiz do certificado do serviço de gravação no Edge Gateway.
- Carregar essa CA no servidor onde o agente de gravação está instalado.
- Instalar a CA no armazém de certificados «Trusted Root Certification Authorities» da máquina local.
Exemplo com PowerShell
Um certificado em formato
.cerpode ser facilmente importado através do PowerShell.
Para isso, abra um terminal PowerShell como administrador da máquina e execute o comando seguinte:Substitua1Import-Certificate -FilePath "<PAHT_TO_CERT>" -CertStoreLocation "Cert:\LocalMachine\Root"<PATH_TO_CERT>pelo caminho do ficheiro do certificado.Exemplo com PowerShell para o certificado Systancia, sem enviar ficheiros
Este exemplo consiste em instalar a CA raiz da Systancia, que é utilizada pelos clientes CyberElements Bastion que empregam certificados fornecidos pela Systancia.
Também é possível importar o certificado sem ter de enviar ou transferir o ficheiro para a máquina onde o agente de gravação está instalado.
Para isso, abra um terminal PowerShell como administrador da máquina e execute os comandos seguintes:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
# Systancia Root certificate $base64Cert = "MIIFIDCCBAigAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCRlIx FDASBgNVBAoTC0lQZGl2YSBSb290MR0wGwYDVQQLExRJUGRpdmEgU2VjdXJpdHkg RGVwdDEqMCgGA1UEAxMhSVBkaXZhIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 MR0wGwYJKoZIhvcNAQkBFg5wa2lAaXBkaXZhLmNvbTAeFw0wNTA4MjIxNTAwMzla Fw0zMDA4MjIxNTAwMzlaMIGNMQswCQYDVQQGEwJGUjEUMBIGA1UEChMLSVBkaXZh IFJvb3QxHTAbBgNVBAsTFElQZGl2YSBTZWN1cml0eSBEZXB0MSowKAYDVQQDEyFJ UGRpdmEgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHTAbBgkqhkiG9w0BCQEW DnBraUBpcGRpdmEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA ua59tx+RkIPZbGaSwkV0w5fuPBpY3sbLTk/eR2uN7j9zMu0pq38LfibCVsNGlifh GfT5CEbrNL7KvlEVY/It1QluYxNgknlcBP1roJG/xHNcUNmbvCFYLy9N3Nd0J/gC Vd8tdB4exqyKEoNuqX18rLpSJJOUZdQCeGdF9r+w6vmHdRMeVS44qIiBPv9Bxzgf GXBxAlSqfuDDJ3eZEMsWF/kJrbm4Uhav2ACl5qjHgSSTKMoGoEWOJNkB7Mq/khxc TnixIpM2s1rpEfhIetPo4BHsyKv7wqWrS6ouwu5AbzT5t3UqaN77CLqcZJGQ3vC0 IGKBuEcwigd7W6qkX1/XMwIDAQABo4IBhzCCAYMwDwYDVR0TAQH/BAUwAwEB/zAd BgNVHQ4EFgQU+lu7XBGohR2DKD+D+abZEODRHjkwgboGA1UdIwSBsjCBr4AU+lu7 XBGohR2DKD+D+abZEODRHjmhgZOkgZAwgY0xCzAJBgNVBAYTAkZSMRQwEgYDVQQK EwtJUGRpdmEgUm9vdDEdMBsGA1UECxMUSVBkaXZhIFNlY3VyaXR5IERlcHQxKjAo BgNVBAMTIUlQZGl2YSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTEdMBsGCSqG SIb3DQEJARYOcGtpQGlwZGl2YS5jb22CAQAwCwYDVR0PBAQDAgEGMBkGA1UdEQQS MBCBDnBraUBpcGRpdmEuY29tMBkGA1UdEgQSMBCBDnBraUBpcGRpdmEuY29tMBEG CWCGSAGG+EIBAQQEAwIABzA+BglghkgBhvhCAQ0EMRYvSVBkaXZhIFJvb3QgQ2Vy dGlmaWNhdGlvbiBBdXRob3JpdHkgQ2VydGlmaWNhdGUwDQYJKoZIhvcNAQEFBQAD ggEBACaAgBQK7TATXieb9OdKm+l7/GpePo8f2bRKnkqeRS+HXBKYkvqVJdbJnhJm YPOdmhr9ATzt+488tQREAGzqPCp5eiVExPgvomNeG77X57KqbgCA1F7zGJqjP1FL 771FIWvFXp80ReM/zhcM+MY3sa5LADgOEl5NhoMNHT8AhLKwZ81j5nuwxyG9ICCN 5GjwgsnK/agmum4+RKeybIWuC/JTsSnu5OImXsmrlUiakp2l+VsZ1rRRNRNUlSbg Q3T8kj5ajB0lv2I0kj4fN9wDxzdHEn7nEAmv0t6Y5Te0g/VK3VWhuqeLStaahgip hmOVxbu5Ijfug5/3Eemep34NsYk=" # Convert the certificate and store it in memory $certBytes = [Convert]::FromBase64String($base64Cert) # Create a certificate object $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $cert.Import($certBytes) # Open the trusted root certificate store on the local machine and add the Systancia root certificate $store = New-Object System.Security.Cryptography.X509Certificates.X509Store("Root", "LocalMachine") $store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite) $store.Add($cert) $store.Close()Para utilizar este método com outra CA, altere o valor da variável
base64Certpara o certificado da sua escolha codificado em base 64. -
O certificado do servidor, neste caso o Edge Gateway, não deve estar revogado.
- A máquina onde o agente de gravação está instalado deve poder contactar o servidor, neste caso o Edge Gateway, com um nome DNS ou um endereço IP coberto pelo certificado do servidor através do seu Common Name (CN).
Pré-requisitos específicos das aplicações RDP com agente utilizadas num posto de utilizador macOS ou Ubuntu¶
Atenção
Os pré-requisitos seguintes só são necessários se o utilizador iniciar uma aplicação RDP com agente e o seu posto não for Windows (macOS ou Ubuntu).
Se os utilizadores do CyberElements Bastion tiverem postos de trabalho exclusivamente Windows ou, na sua falta, utilizarem exclusivamente aplicações HTML5 RDP, os pré-requisitos seguintes podem ser ignorados.
As chaves de registo seguintes são necessárias no servidor de destino onde o agente de gravação está implementado.
Em primeiro lugar, a primeira chave desativa a lista de programas de arranque autorizados (documento da Microsoft). Por predefinição, uma máquina Windows apenas autoriza explorer.exe como programa de arranque.
1 2 | |
Se a máquina não for um servidor RDS, recomenda-se sempre aplicar a chave de registo seguinte para permitir que o agente de gravação abra como programa de arranque:
1 2 | |
Requisitos específicos do acesso direto¶
Funcionalidade de acesso direto
A funcionalidade de acesso direto permite desencadear uma gravação da sessão do utilizador nos acessos RDP ou de consola (ligação física à máquina ou através do modo consola do hipervisor) que não passam diretamente pelo CyberElements Bastion.
Se o utilizador tiver permissão para aceder ao servidor, a sua sessão será gravada. Se não for o caso, por predefinição o utilizador será desligado.
Para que o agente de gravação funcione em modo de acesso direto, é necessário um certificado x509. Esse certificado deve cumprir os requisitos seguintes:
- O certificado deve continuar válido (período de validade não expirado).
- O certificado deve ser do tipo (campo de utilização avançada de chave)
client authentication(OID: 1.3.6.1.5.5.7.3.2). - O certificado não deve estar revogado.
- As restrições decorrentes do nível de segurança 2 do OpenSSL implicam que:
- O certificado deve ter uma chave privada de, no mínimo, 2048 bits com as cifras RSA, DSA e DH; nas chaves de curva elíptica (ECC), devem ter no mínimo 224 bits.
- A assinatura do certificado não deve ser MD5 nem SHA-1 (é preferível SHA-512).
- O servidor de gravação utilizará o campo
Common Name(CN) para identificar o certificado e, por conseguinte, a máquina onde é desencadeada uma gravação direta. Este campo deve estar preenchido.
Configurações através de chaves de registo¶
Alguns parâmetros globais estão disponíveis em chaves de registo e afetam o funcionamento do agente de gravação, tanto na utilização com aplicações como em acesso direto.
1 2 3 | |
DisconnectOnError-
Define o comportamento do agente de gravação quando o gravador de sessão é fechado. Se for indicado o valor
0(comportamento predefinido), ao fechar o gravador a sessão do utilizador será fechada. Se for indicado o valor1, a sessão do utilizador será desligada ao fechar o gravador. SessionEndTimeout-
Definição do tempo (em segundos) de fecho da sessão do utilizador antes de ser forçada a sua paragem. Por predefinição, este parâmetro está definido para 10 segundos.
Configuração para o funcionamento com aplicações RDP e RDP HTML5¶
Neste modo de funcionamento, as trocas entre o Mediation Controller, o Edge Gateway e o agente de gravação são as seguintes:
sequenceDiagram
autonumber
participant MED as Mediation Controller
participant GW as Edge Gateway
participant AGENT as Servidor RDP<br/>Agente de gravação
MED->>+GW: Envio das informações de ligação para <br/>o servidor RDP com as informações de <br/>ligação para o agente de gravação
GW->>AGENT: Inicialização da ligação RDP
GW->>-AGENT: Envio das informações de ligação ao <br/>serviço de gravação da Edge Gateway
AGENT->>+GW: Ligação ao serviço de gravação
GW->>-AGENT: Envio das informações de filtragem de rede
Note over AGENT: Aplicação das restrições <br/>de rede ao utilizador
loop Gravação contínua da sessão
AGENT->>+GW: Envio contínuo da gravação de vídeo <br/>+ eventos de sessão
Note over GW: Adição contínua da gravação de vídeo <br/>ao diretório de armazenamento temporário
GW->>-MED: Envio dos eventos de sessão recebidos
Note over MED: Registo dos eventos <br/>na base de dados da organização
end
break Fim da sessão
AGENT->>GW: Envio da informação de que <br/>o utilizador terminou a sua sessão RDP
Note over GW: A gravação de vídeo é movida <br/>para o diretório de arquivo
GW->>MED: Indicação do fim da sessão do utilizador
Note over MED: A sessão do utilizador passa <br/>do streaming em direto para o arquivo
end
- O Mediation Controller transmite ao Edge Gateway as informações de ligação ao servidor RDP de destino. Inclui também as informações de ligação de que dispõe para se ligar ao serviço de gravação (FQDN do Edge Gateway).
- O Edge Gateway inicializa a ligação ao servidor RDP.
- O Edge Gateway envia ao agente de gravação as informações de ligação ao seu serviço de gravação.
- O agente de gravação inicializa a ligação ao serviço de gravação.
- Uma vez ligado o agente, o serviço de gravação devolve-lhe a lista das restrições de fluxo de rede a aplicar à sessão. Após a receção, o agente de gravação aplica-as à sessão do utilizador.
- O agente de gravação envia de forma contínua e em tempo real a gravação de vídeo da sessão do utilizador e todos os eventos da sessão (por exemplo, as pressões de teclas ou o início de programas) ao serviço de gravação. O serviço de gravação armazena a gravação de vídeo num diretório temporário.
- O serviço de gravação comunica os diversos eventos da sessão ao Mediation Controller, que os regista na base de dados da organização.
- Quando a sessão RDP do utilizador termina, o agente de gravação comunica a informação ao serviço de gravação. O serviço de gravação move então o vídeo gravado para o diretório de arquivo das gravações do utilizador.
- O serviço de gravação comunica o fim da sessão do utilizador ao Mediation Controller. A sessão deixa, por conseguinte, de estar visível no Live Streaming do Control Center e passa para os Archives.
Com esta sequência, é indispensável que o agente de gravação receba as informações de ligação corretas ao serviço de gravação do Edge Gateway. Estas informações constam dos parâmetros do Edge Gateway, no campo FDQN: 
Neste campo, indique um nome DNS que os servidores RDP consigam resolver.
Importante
O certificado atribuído ao serviço de gravação Careserver deve cobrir o nome indicado no campo FQDN. Caso contrário, o agente de gravação considerará que a ligação não é segura e não desencadeará a gravação da sessão.
Configuração para o funcionamento em acesso direto¶
Neste modo de funcionamento, as trocas entre o Mediation Controller, o Edge Gateway e o agente de gravação são as seguintes:
sequenceDiagram
autonumber
participant MED as Mediation Controller
participant GW as Edge Gateway
participant AGENT as Servidor RDP<br/>Agente de gravação
Note over AGENT: Deteção de uma nova <br/>sessão a gravar
AGENT->>+GW: Ligação ao serviço de gravação
GW->>-MED: Indicação de uma nova ligação <br/>com acesso direto para o utilizador X
alt Se o utilizador X estiver autorizado
MED->>+GW: Envio da informação de que o utilizador X <br/>está autorizado a ligar-se e envio <br/>da lista dos filtros de rede a aplicar
GW->>-AGENT: Envio das informações de filtragem <br/>de rede e da autorização de ligação <br/>para o utilizador X
Note over AGENT: Aplicação das restrições <br/>de rede ao utilizador X
loop Gravação contínua da sessão
AGENT->>+GW: Envio contínuo da gravação de vídeo <br/>+ eventos de sessão
Note over GW: Adição contínua da gravação de vídeo <br/>ao diretório de armazenamento temporário
GW->>-MED: Envio dos eventos de sessão recebidos
Note over MED: Registo dos eventos <br/>na base de dados da organização
end
break Fim da sessão
AGENT->>GW: Envio da informação de que <br/>o utilizador X terminou a sua sessão RDP
Note over GW: A gravação de vídeo é movida <br/>para o diretório de arquivo.
GW->>MED: Indicação do fim da sessão do utilizador
Note over MED: A sessão do utilizador passa <br/>do streaming em direto para o arquivo
end
else If user X is not authorized
MED->>+GW: Envio da informação de que o utilizador <br/>X não está autorizado a iniciar sessão
GW->>-AGENT: Envio da notificação de <br/>recusa de ligação do utilizador X
Note over AGENT: Encerramento da sessão do utilizador X
end
- O agente de gravação deteta uma nova sessão e inicia uma ligação ao serviço de gravação de um Edge Gateway.
- O Edge Gateway envia as informações de ligação (nome de utilizador e CN do certificado utilizado pelo agente de gravação) ao Mediation Controller. O Mediation Controller responderá de duas formas diferentes em função da configuração dos direitos de acesso.
- Se o utilizador estiver autorizado a ligar-se ao servidor, o Mediation Controller comunica ao Edge Gateway o acesso possível para este utilizador e a lista de filtros de rede a aplicar.
- O Edge Gateway devolve estas informações ao agente de gravação. Após a receção, o agente de gravação aplica os filtros de rede à sessão do utilizador.
- O agente de gravação envia de forma contínua e em tempo real a gravação de vídeo da sessão do utilizador e todos os eventos da sessão (por exemplo, as pressões de teclas ou o início de programas) ao serviço de gravação. O serviço de gravação armazena a gravação de vídeo num diretório temporário.
- O serviço de gravação comunica os diversos eventos da sessão ao Mediation Controller, que os regista na base de dados da organização.
- Quando a sessão RDP do utilizador termina, o agente de gravação comunica a informação ao serviço de gravação. O serviço de gravação move então o vídeo gravado para o diretório de arquivo das gravações do utilizador.
- O serviço de gravação comunica o fim da sessão do utilizador ao Mediation Controller. A sessão deixa, por conseguinte, de estar visível no Live Streaming do Control Center e passa para os Archives.
- Se o utilizador não estiver autorizado a ligar-se ao servidor, o Mediation Controller comunica ao Edge Gateway que o acesso não está autorizado para esse utilizador.
- O Edge Gateway transmite a informação ao agente de gravação, que desliga a sessão do utilizador.
Chaves de registo¶
Independentemente do seu modo de instalação, o agente de gravação dispõe de todos os componentes necessários a todos os seus modos de funcionamento previstos. Por conseguinte, para funcionar em modo de acesso direto, lê as seguintes chaves de registo a fim de determinar a sua configuração:
1 2 3 4 | |
MachineName-
Nome do certificado que o agente de gravação utilizará para se ligar ao serviço de gravação de um Edge Gateway. Por predefinição, e se não estiver definido, o agente tentará utilizar um certificado com o nome da máquina.
LogOffOnFailure-
Indicação do comportamento do agente quando não consegue ligar-se a um Edge Gateway ou quando o utilizador não está autorizado a ligar-se à máquina. Com
0não ocorre nenhuma desconexão; com1o utilizador será desligado (comportamento predefinido). RecordedSessions-
Definição dos tipos de sessão sujeitos a gravação:
none: não será efetuada nenhuma gravação dos acessos diretos (configuração predefinida).remote: qualquer acesso RDP à máquina desencadeará uma gravação.all: os acessos RDP e os acessos por consola (acesso físico à máquina ou a partir do modo consola do hipervisor) desencadearão a gravação.
Que valores de chave são necessários para o acesso direto?
O único valor de chave necessário para ativar o mecanismo de acesso direto é RecordedSessions, com o valor remote ou all. Tenha em conta que, em função do ambiente, o valor de chave MachineName também pode ser necessário.
Certificado de máquina¶
O agente de gravação tentará utilizar um certificado para se autenticar junto do serviço de gravação. Este certificado deve ter sido instalado nos certificados pessoais do computador.
O agente utilizará o certificado cujo nome corresponda ao valor de chave MachineName (ver capítulo anterior) e, se não estiver definido, tentará utilizar um certificado com o nome da máquina.
Declaração dos Edge Gateway que o agente pode contactar¶
O agente de gravação utiliza informação local para determinar a lista de servidores Edge Gateway a contactar para carregar as gravações das sessões dos utilizadores.
Para modificar a lista de servidores Edge Gateway que podem ser contactados, é necessário parar previamente o serviço CleanroomAgent.
Atenção!
A interrupção do serviço CleanroomAgent provoca o fim da gravação das sessões em curso no servidor, e as novas sessões abertas no servidor não serão gravadas.
O serviço pode ser parado através do PowerShell (são necessários direitos de administrador):
1 | |
Após parar o serviço, modifique ou crie o ficheiro [RECORDING_AGENT_DIR]\gateways.xml seguinte, em que [RECORDING_AGENT_DIR] é o diretório de instalação do agente de gravação. Com o diretório de instalação predefinido, o ficheiro deve estar presente ou ser criado nesta localização:
- CyberElements Bastion:
C:\Program Files (x86)\Systancia\Safe\gateways.xml
Este ficheiro XML é composto por uma etiqueta gateways e por tantas etiquetas element quantos os Edge Gateway que podem ser contactados.
Exemplo
Se o agente de gravação tiver de contactar um Edge Gateway cujo FQDN é edge-gateway-1.domain.local, o ficheiro XML seria o seguinte:
1 2 3 4 | |
Em contrapartida, se houvesse dois Edge Gateway a contactar, edge-gateway-1.domain.local e edge-gateway-2.domain.local, o ficheiro seria o seguinte:
1 2 3 4 5 | |
Após modificar corretamente o ficheiro gateways.xml, reinicie o serviço CleanroomAgent:
1 | |
Configurar o serviço de gravação para autenticar certificados de uma PKI de terceiros¶
Por predefinição, o serviço de gravação apenas considera válidos os certificados emitidos pela PKI da Systancia. Para utilizar certificados de outra autoridade de certificação (CA), é necessário seguir as etapas de adicionar uma CA ao diretório específico do Edge Gateway.
Uma vez que o certificado ou os certificados de CA estejam na localização correta, resta apenas reiniciar o serviço de gravação, novamente como superutilizador root:
Atenção!
O reinício deste serviço interrompe as sessões em curso e termina a quase totalidade delas. Execute o comando seguinte apenas quando nenhuma sessão de utilizador passar pelo Edge Gateway, para não afetar os utilizadores.
1 | |
Após reiniciar o serviço de gravação, pode verificar que as novas CA foram corretamente tidas em conta consultando os logs do serviço:
1 | |
Os logs obtidos indicam, no final da linha, os nomes dos ficheiros de certificado que o serviço de gravação carregou.
Exemplo
Após adicionar duas CA denominadas MY-CA-ROOT.pem e MY-INTERMEDIATE-CA.pem, os logs obtidos terão o seguinte aspeto (o início do log foi truncado, mas contém, entre outras coisas, a data e o nome da máquina):
1 2 3 4 | |