Configurações para o suporte da blindagem Kerberos¶
Atenção!
Para que a blindagem Kerberos seja utilizada, as contas de administrador devem ser colocadas no grupo Protected Users.
Isto obriga a utilizar o protocolo de autenticação Kerberos em vez do NTLM. O Edge Gateway deve ser previamente configurado para suportar a autenticação Kerberos.
A blindagem Kerberos fornece uma cifra adicional para as trocas iniciais entre o cliente e o KDC (Kerberos Domain Controller), a partir de informações associadas a uma conta de computador.
O CyberElements Bastion é executado preferencialmente em máquinas Debian não ligadas a um domínio AD, o que significa que não dispõe de qualquer informação de conta de computador no AD.
A configuração para suportar a blindagem Kerberos consiste em duas etapas:
- A criação de uma conta de computador de serviço no AD
- A configuração da blindagem Kerberos no Edge Gateway a partir da conta criada previamente
Criar uma conta de computador de serviço¶
Informação
Esta página utiliza como exemplo uma conta de serviço denominada svc_cyberelements. Adapte os comandos seguintes ao nome da sua conta de serviço.
Atenção!
Se quiser utilizar postos de trabalho PAW, coloque esta conta de serviço no mesmo silo que os postos de trabalho PAW de destino.
A partir do controlador de domínio, comece por criar uma conta de computador com uma palavra-passe utilizada para gerar os tickets Kerberos.
Para criar esta conta, pode utilizar o comando Powershell seguinte a partir de um controlador de domínio (adapte o nome da conta de serviço, svc_cyberelements no exemplo, e a OU desejada, OU=Service_accounts,DC=domain,DC=local no exemplo, para criar a conta de serviço):
1 | |
Utilize o comando seguinte para verificar que a conta de computador foi criada (substitua svc_cyberelements pelo nome da conta criada previamente):
1 | |
Utilize depois a ferramenta ktpass do Windows para exportar um ficheiro keytab que conterá as chaves de cifra que permitirão ao gateway recuperar o TGT.
Exemplo
Exemplo de criação de um ficheiro svc_cyberelements.keytab com a conta de computador:
1 | |
$ no fim dos nomes de conta nem de escrever o nome do domínio em maiúsculas (obrigatório).
Aceite os eventuais pedidos de confirmação que possam aparecer introduzindo y.
Volte depois a definir o valor do atributo UserPrincipalName com o comando PowerShell seguinte:
1 | |
Configurar a blindagem Kerberos no Edge Gateway¶
Recupere o ficheiro keytab gerado previamente e copie-o para o servidor Edge Gateway.
Num contexto em que tenham sido gerados vários ficheiros keytab que devam ser utilizados no mesmo Edge Gateway, combine os ficheiros keytab num único ficheiro.
Atenção
O ficheiro keytab contém chaves de cifra. Se um atacante o obtiver, pode fazer-se passar pela conta de computador associada, reduzindo assim a segurança da infraestrutura.
Por isso, este ficheiro não deve ser conservado em nenhum outro local além do Edge Gateway.
Coloque o ficheiro no diretório /etc/ipdiva/cleanroom/.
Altere os proprietários do ficheiro keytab para ipdivacareuser no caso do utilizador e carerecord no caso do grupo, e modifique depois as permissões do ficheiro (adapte o nome do ficheiro keytab ao seu próprio ficheiro):
1 2 | |
Modifique o ficheiro de configuração /etc/ipdiva/cleanroom/xrdprecord.ini do Edge Gateway para indicar, através do parâmetro keytab=, o caminho do ficheiro keytab preparado previamente.
Exemplo
2 | |
Nesta fase, a ligação às aplicações RDP privilegiadas em modo sem agente (HTML5 ou não) deve funcionar com contas de utilizador pertencentes a Protected Users e que exigem, por conseguinte, uma autenticação forte Kerberos. A configuração da aplicação RDP deve cumprir determinados pré-requisitos.
Testar a configuração Kerberos¶
Depuração
Os comandos kinit seguintes podem fornecer mais logs após a execução do comando seguinte (válido até à desligação da sessão SSH ou de consola):
1 | |
Comecemos por recuperar um ticket Kerberos com um comando semelhante ao seguinte:
1 | |
Não se esqueça de substituir a localização do ficheiro keytab, o nome da conta de serviço criada e o respetivo domínio associado.
Se a recuperação do ticket Kerberos tiver sido concluída com êxito, o comando seguinte deve indicar a existência de um ticket para a conta de serviço:
1 | |
Se a recuperação for concluída com êxito, é necessário tentar recuperar um ticket para um utilizador com um comando semelhante ao seguinte:
1 | |
Substitua user@DOMAIN.LOCAL por um utilizador suscetível de se ligar através de RDP e blindagem Kerberos. Tenha em conta que será solicitada a palavra-passe desse utilizador.
Se a recuperação do ticket for concluída com êxito, o comando seguinte apresenta-o:
1 | |
Se for apresentado o erro KDC policy rejects request while getting initial credentials, significa que o KDC recusou o pedido de ticket. Causas possíveis:
- o
kinitnão conseguiu utilizar o ticket/tmp/test_kerberos(se okinitnão o conseguir utilizar, continua sem mensagem de erro com um pedido de ticket básico) - A conta de serviço não está presente no silo do utilizador testado. Isto ocorre quando o AD está compartimentado e exige colocar a conta de computador de serviço no silo adequado.
Podem encontrar-se informações adicionais nos logs de eventos Security do controlador de domínio (KDC) utilizado.
Após os testes, recomenda-se eliminar os tickets gerados:
1 2 | |
Combinar vários ficheiros keytab num único ficheiro¶
Se a arquitetura CyberElements Bastion se basear num único Edge Gateway que dará acesso a vários terceiros, é necessário fundir num único ficheiro keytab todos os ficheiros keytab gerados para as diferentes contas de serviço.
Nota
Nesta secção, partimos dos seguintes ficheiros keytab: /root/t0.keytab, /root/t1.keytab e /root/t2.keytab.
Estes ficheiros devem ter sido enviados para o Edge Gateway.
Para fundir os ficheiros keytab, ligue-se ao Edge Gateway como root e utilize depois os comandos seguintes:
1 2 3 4 5 | |
Os comandos rkt permitem carregar tantos ficheiros keytab quantos forem necessários, e o comando wkt gera um novo ficheiro keytab.
Adapte os caminhos dos ficheiros aos que tem na sua posse.
Prima a tecla q para sair do utilitário ktutil.
Recupere o ficheiro unified.keytab e siga a secção Configurar a blindagem Kerberos no Edge Gateway.