Ir para o conteúdo

Grupo Protected Users, autenticação Kerberos, segmentação de AD e posto de trabalho PAW

A segurança dos diretórios Active Directory é um desafio de primeira ordem na segurança das infraestruturas.

A ANSSI (a Agência Nacional de Cibersegurança francesa) dá particular ênfase à importância da compartimentação nesta segurança e à implementação da segmentação dos servidores com autenticação Kerberos. Isto é mencionado nas suas recomendações para a administração segura dos SI baseados em AD.

As nossas soluções CyberElements Bastion oferecem uma grande flexibilidade na implementação desta segurança, que pode ser dividida em quatro níveis diferentes de integração, aplicáveis progressivamente:

Configurar as aplicações RDP para o suporte de Kerberos

Atenção!

Para configurar uma aplicação RDP privilegiada ou HTML5 RDP privilegiada para suportar Kerberos, deve primeiro efetuar a configuração 1 do ou dos Edge Gateway que serão utilizados para as ligações RDP com Kerberos.

Para que uma aplicação RDP ou HTML5 RDP privilegiada se ligue a um servidor RDP com Kerberos, são necessárias quatro condições de configuração:

  1. A definição de SSO não pode estar em Disabled, pelo que deve ser Enabled, Fixed ou Request
  2. O modo sem agente deve estar ativado
  3. O nome do servidor introduzido deve ser um FQDN (introduzir o endereço IP do servidor fará com que a autenticação falhe).
  4. O Kerberos não deve estar desativado nas definições avançadas da aplicação RDP ou HTML5 RDP.
Example

Para configurar uma aplicação RDP privilegiada de modo a ligar-se ao servidor RDP my-rds-server com Kerberos, deverá:

  • Definir o nível de SSO para um valor diferente de Disabled, neste caso Enabled (1), ativar em seguida o modo sem agente (2) e, por último, introduzir o FQDN do servidor RDP (3).
  • Verificar que o Kerberos não está desativado (4)
Diagrama de fluxos
flowchart LR 
    subgraph WAN 
        USER(Posto de trabalho do utilizador)
    end 
    subgraph Cloud ou DMZ
        MEDIA(Mediation Controller) 
    end 
    subgraph LAN 
        GW(Edge Gateway) 
        KDC(Kerberos Domain Controller) 
        RDP(Servidor RDP)
    end

    USER --- |1| MEDIA --> |1| GW
    GW -.- |2| MEDIA -.-> |2| USER
    GW --> |3| KDC
    KDC -.-> |4| GW
    GW --> |5| KDC
    KDC -.-> |6| GW
    GW --> |7| RDP
    RDP -.-> |8| GW
Hold "Ctrl" to enable pan & zoom
  1. O utilizador abre uma aplicação RDP ou HTML5 RDP privilegiada com suporte de autenticação Kerberos.
  2. O utilizador está ligado ao Edge Gateway em modo sem agente
  3. O Edge Gateway pede um token TGT ao controlador de domínio Kerberos (KDC).
  4. O KDC devolve um TGT cifrado e assinado
  5. O Edge Gateway pede um ticket de serviço que inclui o TGT anterior
  6. O KDC devolve o ticket de serviço cifrado com a chave do serviço
  7. O Edge Gateway envia um pedido de acesso ao servidor RDP, incluindo o ticket de serviço.
  8. O servidor RDP aprova o acesso ao serviço e a ligação RDP é inicializada.

Configurar as aplicações RDP para suportar a blindagem Kerberos

Atenção!

Para configurar corretamente uma aplicação RDP ou HTML5 RDP privilegiada de modo a suportar a blindagem Kerberos, deve primeiro efetuar as configurações 1 e 2 dos Edge Gateway que serão utilizados para as ligações RDP com blindagem Kerberos.

Para que uma aplicação RDP ou HTML5 RDP privilegiada se ligue a um servidor RDP com blindagem Kerberos, são necessárias cinco condições de configuração:

  1. A definição de SSO não pode estar em Disabled, pelo que deve ser Enabled, Fixed ou Request
  2. O modo sem agente deve estar ativado
  3. O nome do servidor introduzido deve ser um FQDN (introduzir o endereço IP do servidor fará com que a autenticação falhe).
  4. O Kerberos não deve estar desativado nas definições avançadas da aplicação RDP ou HTML5 RDP.
  5. Indicar o nome da conta de computador de serviço a utilizar para a blindagem Kerberos, acrescentando um $ no final
Example

Para configurar uma aplicação RDP privilegiada de modo a ligar-se em modo blindado Kerberos ao servidor RDP my-rds-server utilizando a conta de computador svc_cyberelements, deverá:

  • Definir o nível de SSO para um valor diferente de Disabled, neste caso Enabled (1), ativar em seguida o modo sem agente (2) e, por último, introduzir o FQDN do servidor RDP (3).
  • Verificar que o Kerberos não está desativado (4) e que o nome da conta de computador de serviço está indicado, sem esquecer o carácter $ (5).
Diagrama de fluxos
flowchart LR 
    subgraph WAN 
        USER(Posto de trabalho do utilizador)
    end 
    subgraph Cloud ou DMZ
        MEDIA(Mediation Controller) 
    end 
    subgraph LAN 
        GW(Edge Gateway) 
        KDC(Kerberos Domain Controller) 
        RDP(Servidor RDP)
    end

    USER --- |1| MEDIA --> |1| GW
    GW -.- |2| MEDIA -.-> |2| USER
    GW --> |3| KDC
    KDC -.-> |4| GW
    GW --> |5| KDC
    KDC -.-> |6| GW
    GW --> |7| RDP
    RDP -.-> |8| GW
Hold "Ctrl" to enable pan & zoom
  1. O utilizador abre uma aplicação RDP ou HTML5 RDP privilegiada com suporte de autenticação Kerberos.
  2. O utilizador está ligado ao Edge Gateway em modo sem agente
  3. O Edge Gateway pede um token TGT ao controlador de domínio Kerberos (KDC) utilizando as informações da conta de computador de serviço
  4. O KDC devolve um TGT cifrado e assinado
  5. O Edge Gateway pede um ticket de serviço que inclui o TGT anterior
  6. O KDC devolve o ticket de serviço cifrado com a chave do serviço
  7. O Edge Gateway envia um pedido de acesso ao servidor RDP, incluindo o ticket de serviço.
  8. O servidor RDP aprova o acesso ao serviço e a ligação RDP é inicializada.

Particularidades da arquitetura num ambiente de AD segmentado

Atenção!

Num ambiente Active Directory segmentado, o Kerberos blindado está normalmente configurado para as contas de administrador. Por conseguinte, devem efetuar-se as configurações 1 e 2 dos Edge Gateway que serão utilizados para as ligações aos servidores RDP.

Quando o CyberElements Bastion é utilizado num ambiente AD em silos, a conta de computador de serviço utilizada para a blindagem Kerberos deve ser atribuída a um silo.
Isto significa que, se for necessário aceder a máquinas RDP pertencentes a diferentes tiers, será necessário criar tantas contas de computador de serviço colocadas nos diferentes tiers de destino.

A arquitetura do produto também pode ser afetada.
Esta alteração afeta principalmente o número de Edge Gateway implementados, sendo recomendado ter pelo menos um dedicado aos acessos de um tier específico. No entanto, se o contexto não permitir a implementação de tantos Edge Gateway, também é possível utilizar uma arquitetura com um único Edge Gateway:

flowchart LR
    subgraph WAN
        USER(Posto de trabalho do utilizador)
    end
    subgraph Cloud ou DMZ
        MED(Mediation Controller)
    end
    subgraph LAN
        subgraph T2
            GW-T2(Edge Gateway T2)
            RDP-T2(Servidor RDP T2)
        end
        subgraph T1
            GW-T1(Edge Gateway T1)
            RDP-T1(Servidor RDP T1)
        end
        subgraph T0
            GW-T0(Edge Gateway T0)
            KDC(Kerberos Domain Controller)
            RDP-T0(Servidor RDP T0)
        end
    end

    USER ==TLS/HTTPS==> MED

    MED ~~~ GW-T0
    MED ~~~ GW-T1
    MED ~~~ GW-T2

    GW-T0 ==TLS==> MED
    GW-T0 ~~~ MED
    GW-T0 ~~~ MED
    GW-T0 ~~~ MED
    GW-T0 --Kerberos/LDAPS--> KDC
    GW-T0 -..-> |RDP| RDP-T0

    GW-T1 ==TLS==> MED
    GW-T1 ~~~ MED
    GW-T1 ~~~ MED
    GW-T1 --Kerberos/LDAPS--> KDC
    GW-T1 -..-> |RDP| RDP-T1

    GW-T2 ==TLS==> MED
    GW-T2 ~~~ MED
    GW-T2 --Kerberos/LDAPS--> KDC
    GW-T2 -..-> |RDP| RDP-T2
Hold "Ctrl" to enable pan & zoom

Com esta arquitetura, a configuração das aplicações RDP é idêntica à do suporte da blindagem Kerberos.

flowchart LR
    subgraph WAN
        USER(Posto de trabalho do utilizador)
    end
    subgraph Cloud ou DMZ
        MED(Mediation Controller)
    end
    subgraph LAN
        GW(Edge Gateway)
        subgraph T2
            RDP-T2(Servidor RDP T2)
        end
        subgraph T1
            RDP-T1(Servidor RDP T1)
        end
        subgraph T0
            KDC(Kerberos Domain Controller)
            RDP-T0(Servidor RDP T0)
        end
    end

    USER ==TLS/HTTPS==> MED

    MED ~~~ GW

    GW ==TLS==> MED
    GW ~~~ MED
    GW --Kerberos/LDAPS--> KDC
    GW-.-> |RDP| RDP-T0
    GW -.-> |RDP| RDP-T1
    GW -.-> |RDP| RDP-T2
Hold "Ctrl" to enable pan & zoom

Com esta arquitetura, a configuração das aplicações RDP é idêntica à do suporte da blindagem Kerberos.
No entanto, deve também prever aplicar um ficheiro keytab que contenha várias contas de serviço ao Edge Gateway de ligação.

Particularidades da ligação a um posto de trabalho PAW

Um PAW (Privileged Access Workstation) é um posto de trabalho dedicado às tarefas de administração de um tier definido.
Devido ao caráter crítico deste posto de trabalho, são muito frequentemente aplicadas definições de segurança reforçadas. Entre os reforços aplicados, o princípio de não expor serviços na rede garante que não possa ser explorada nenhuma porta dos fundos nem nenhum serviço com vulnerabilidades de segurança.

Este princípio torna, por conseguinte, teoricamente impossível o acesso remoto ao posto de trabalho PAW. No entanto, o CyberElements Bastion permite estabelecer uma ligação ao posto de trabalho PAW sem que exista qualquer serviço à escuta na rede local, graças a:

  • A ativação dos serviços Remote Desktop
  • A configuração do firewall local para proibir o acesso ao serviço Remote Desktop a partir de qualquer endereço IP diferente dos do posto de trabalho PAW, ou de localhost
  • A instalação de um Edge Gateway embutido que permitirá o acesso local ao serviço Remote Desktop do posto de trabalho PAW
flowchart LR
    subgraph WAN
        USER(Posto de trabalho do utilizador)
    end
    subgraph Cloud ou DMZ
        MED(Mediation Controller)
    end
    subgraph LAN
        subgraph T1
            GW(Edge Gateway T1)
            subgraph PAW_T1 [PAW T1]
                RDP{{Servidor RDP}}
                GW-WIN{{Embeded Edge Gateway}}
            end
        end
        subgraph T0
            KDC(Kerberos Domain Controller)
        end
    end

    USER ==TLS/HTTPS==> MED

    MED ~~~ GW & GW-WIN
    GW & GW-WIN ==TLS==> MED
    GW & GW-WIN ~~~ MED

    GW & PAW_T1 --> |Kerberos/LDAPS| KDC

    GW-WIN -.-> |RDP| RDP

    GW --x |Nenhuma ligação disponível| PAW_T1
Hold "Ctrl" to enable pan & zoom
flowchart LR
    subgraph WAN
        USER(Posto de trabalho do utilizador)
    end
    subgraph Cloud ou DMZ
        MED(Mediation Controller)
    end
    subgraph LAN
        subgraph T1
            GW(Edge Gateway T1)
            subgraph PAW_T1 [PAW T1]
                RDP{{Servidor RDP}}
                GW-WIN{{Embeded Edge Gateway}}
            end
        end
        subgraph T0
            KDC(Kerberos Domain Controller)
        end
    end

    USER --- |1| MED --> |1| GW
    GW -.- |2| MED -.-> |2| USER
    GW --> |3| KDC
    KDC -.-> |4| GW
    GW --> |5| KDC
    KDC -.-> |6| GW
    MED --> |7| GW & GW-WIN
    GW --- |8| MED --- |8| GW-WIN --> |8| RDP
    RDP -.- |9| GW-WIN -.- |9| MED -.-> |9| GW
Hold "Ctrl" to enable pan & zoom
  1. O utilizador abre uma aplicação RDP ou HTML5 RDP privilegiada com suporte de autenticação Kerberos para um posto de trabalho PAW
  2. O utilizador está ligado ao Edge Gateway em modo sem agente
  3. O Edge Gateway pede um token TGT ao controlador de domínio Kerberos (KDC) utilizando as informações da conta de computador de serviço
  4. O KDC devolve um TGT cifrado e assinado
  5. O Edge Gateway pede um ticket de serviço que inclui o TGT anterior
  6. O KDC devolve o ticket de serviço cifrado com a chave do serviço
  7. O Mediation Controller informa o Edge Gateway e o Edge Gateway incorporado de que foi aberto um túnel entre eles, passando o túnel pelo Mediation Controller
  8. O Edge Gateway envia um pedido de acesso ao servidor RDP, incluindo o ticket de serviço, através do Mediation Controller e do Edge Gateway incorporado
  9. O servidor RDP aprova o acesso ao serviço e a ligação RDP é inicializada

Pré-requisitos no posto de trabalho PAW

Os pré-requisitos específicos a aplicar no posto de trabalho PAW (Privileged Access Workstation) para a ligação ao CyberElements Bastion resumem-se da seguinte forma:

  1. Ativar o serviço Remote Desktop
  2. Alterar o firewall local para recusar o acesso ao serviço Remote Desktop a todas as máquinas, exceto ao próprio posto de trabalho PAW
  3. Alterar o comportamento do Kerberos blindado para fornecer sempre as claims
  4. Instalar um Windows Edge Gateway em modo incorporado

Ativar o serviço Remote Desktop

O serviço Remote Desktop pode ser ativado manualmente conforme descrito na documentação da Microsoft Enable Remote Desktop on your PC.
No entanto, também é possível utilizar uma GPO para ativar o serviço:

  • Caminho da definição da GPO: Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
  • Definição: Allow users to connect remotely by using Remote Desktop Services
  • Valor: Enabled

Alterar as regras do firewall

Por razões de segurança, é importante restringir o acesso ao nível do firewall, a fim de impedir o acesso do exterior na porta RDP.

Por predefinição, quando o RDP está ativado, o Windows define 2 regras de firewall que autorizam o acesso à porta 3389 em UDP e em TCP.
Estas duas regras devem ser alteradas para autorizar apenas as ligações RDP a partir do endereço IP remoto 127.0.0.1.

Se estas regras não existirem, devem ser criadas manualmente no servidor ou através de uma GPO.

Alterar o comportamento do Kerberos blindado

É igualmente necessário alterar o comportamento do Kerberos.

Para isso, pode configurar a GPO seguinte:

  • Caminho da definição da GPO: Computer Configuration > Policies > Administrative Templates > System > KDC
  • Definição: KDC support for claims, compound authentication and Kerberos armoring
  • Valor: Enabled, Always provide claims

Esta alteração não tem impacto na segurança da segmentação de AD nem da implementação reforçada de Kerberos.

Instalar um Windows Edge Gateway em modo incorporado

Pré-requisitos

Antes de continuar, instale um Windows Edge Gateway no posto de trabalho PAW e ligue-o ao Mediation Controller: Instalar um Windows Edge Gateway

Depois de instalar o Windows Edge Gateway, é necessário passá-lo para o modo incorporado.

Aceda à interface web do servidor Mediation Controller com o URI /console.

Exemplos

Se o acesso ao Mediation Controller pelo seu endereço IP web for 10.0.10.10, a consola de administração é acessível em https://10.0.10.10/console.

Se o Mediation Controller estiver acessível por um nome DNS, por exemplo cyberelements-bastion.domain.local, a consola de administração é acessível em https://cyberelements-bastion.domain.local/console.

Uma vez ligado, não se esqueça de remover a declaração do Windows Edge Gateway do módulo Gateways Management.

O Windows Edge Gateway está agora pronto para ser utilizado como Edge Gateway incorporado.

Quando é aberta uma sessão, o monitor do Windows Edge Gateway inicia-se automaticamente (visível com o ícone type:inline na barra de tarefas). Como este início automático não é necessário nos postos de trabalho PAW, deve ser desativado:

  1. Abra o editor de chaves de registo regedit.exe como administrador
  2. Vá à chave de registo HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
  3. Elimine a chave IPdivaGateway Monitor
  4. Reinicie o posto de trabalho PAW

Configurar as aplicações RDP para a ligação a um posto de trabalho PAW

Atenção!

Para configurar uma aplicação RDP ou HTML5 RDP privilegiada de modo a ligar-se a um posto de trabalho PAW, deve primeiro efetuar as configurações 1 a 3 dos Edge Gateway que serão utilizados para as ligações aos postos de trabalho PAW.

Para que uma aplicação RDP ou HTML5 RDP privilegiada se ligue a um posto de trabalho PAW, devem estar reunidas seis condições de configuração:

  1. A definição de SSO não pode estar em Disabled, pelo que deve ser Enabled, Fixed ou Request
  2. O modo sem agente deve estar ativado
  3. O nome do servidor introduzido deve ser um FQDN (introduzir o endereço IP do servidor fará com que a autenticação falhe).
  4. Configurar o encaminhamento através de um Edge Gateway incorporado
  5. O Kerberos não deve estar desativado nas definições avançadas da aplicação RDP ou HTML5 RDP.
  6. Indicar o nome da conta de computador de serviço a utilizar para a blindagem Kerberos, acrescentando um $ no final

A condição 4 resulta da configuração dos postos de trabalho PAW, que não devem ter nenhum serviço à escuta na rede local. Ao instalar um Edge Gateway sob a forma de um programa Windows, este só pode aceder aos serviços à escuta em localhost.

Example

Para configurar uma aplicação RDP privilegiada de modo a ligar-se em modo blindado Kerberos ao servidor RDP my-rds-server utilizando a conta de computador svc_cyberelements, deverá:

  • Definir o nível de SSO para um valor diferente de Disabled, neste caso Enabled (1), ativar em seguida o modo sem agente (2), introduzir o FQDN do servidor RDP (3) e, por último, ativar o modo de Edge Gateway embutido e indicar o nome do Windows Edge Gateway que foi instalado no posto de trabalho PAW (4).
  • Verificar que o Kerberos não está desativado (5) e que o nome da conta de computador de serviço está indicado, sem esquecer o carácter $ (6).

Depuração das aberturas de aplicações RDP com autenticação Kerberos

Para realizar uma primeira análise ou obter as informações de que a Systancia necessita para uma análise avançada das falhas de autenticação Kerberos, realize as ações seguintes:

  1. Ativar os logs de depuração: para isso, mude o parâmetro debug sob a etiqueta [Kerberos] para true no ficheiro /etc/ipdiva/cleanroom/xrdprecord.ini do servidor Edge Gateway utilizado para a ligação. Esta ação pode ser realizada com o comando seguinte:

    1
    sed -i "3s/false/true/" /etc/ipdiva/cleanroom/xrdprecord.ini
    
  2. Inicie sessão no portal de utilizador e inicie uma aplicação privilegiada, RDP ou HTML5 RDP, em modo sem agente e configurada para utilizar Kerberos. Anote as informações seguintes:

    • Hora de abertura da aplicação
    • O nome de utilizador utilizado para se ligar ao servidor RDP
  3. No Edge Gateway utilizado para a ligação anterior, recupere os ficheiros seguintes:

    • /var/log/syslog: este ficheiro contém, em particular, os logs de início da sessão em modo sem agente.
    • /var/lib/ipdiva/carerecord/log/freerdpout-<USER>-<DATE>.txt: substitua <USER> pelo nome de utilizador e <DATE> pela data e hora de abertura da aplicação, obtidas no passo anterior. Este ficheiro contém os logs relativos ao estabelecimento da sessão RDP, incluindo a fase de autenticação Kerberos.
  4. Desativar os logs de depuração: para isso, mude o parâmetro debug sob a etiqueta [Kerberos] para false no ficheiro /etc/ipdiva/cleanroom/xrdprecord.ini do servidor Edge Gateway utilizado para a ligação. Esta ação pode ser realizada com o comando seguinte:

    1
    sed -i "3s/true/false/" /etc/ipdiva/cleanroom/xrdprecord.ini