Como instalar o servidor e cliente Kerberos KDC no Ubuntu 18.04
- 5013
- 1542
- Howard Fritsch
Este tutorial aborda o guia gradual para configurar um cliente Kerberos Server (KDC) e Kerberos e depois testar a configuração obtendo um ticket kerberos do servidor KDC.
Neste tutorial, você aprenderá:
- O que é Kerberos e como funciona
- Configurar o servidor Kerberos (KDC)
- Configure o cliente
- Teste a autenticação Kerberos
- Criação de keytab
Visão geral de Kerberos.
Requisitos de software e convenções usadas
Categoria | Requisitos, convenções ou versão de software usada |
---|---|
Sistema | Ubuntu 18.04 |
Programas | Pacotes de servidor e administrador Kerberos |
Outro | Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando. |
Convenções | # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular |
O que é Kerberos e como funciona
Kerberos é um protocolo de autenticação de rede. Ele foi projetado para fornecer forte autenticação para aplicativos de cliente/servidor usando criptografia secreta-chave.
O cliente se autentica ao servidor de autenticação (As) que encaminha o nome de usuário para um centro de distribuição de chave (KDC). O KDC emite um bilhete de bilheteria (TGT), que é carimbado e o criptografa usando a chave secreta do Serviço de Tickets (TGS) e retorna o resultado criptografado para a estação de trabalho do usuário. Isso é feito com pouca frequência, normalmente no logon do usuário; O TGT expira em algum momento, embora possa ser renovado de forma transparente pelo gerente de sessão do usuário enquanto eles estão conectados.
Quando o cliente precisa se comunicar com outro nó ("principal" na linguagem de Kerberos) a algum serviço nesse nó que o cliente envia o TGT para o TGS, que geralmente compartilha o mesmo host que o KDC. O serviço deve ser registrado no TGT com um nome principal de serviço (SPN). O cliente usa o SPN para solicitar acesso a este serviço. Depois de verificar se o TGT é válido e que o usuário tem permissão para acessar o serviço solicitado, o TGS emitiu o ticket e as chaves da sessão para o cliente. O cliente envia o ticket para o Service Server (SS) junto com sua solicitação de serviço.
Configurar o servidor Kerberos (KDC)
A sincronização do tempo e o DNS desempenha um papel importante para trabalhar o KDC corretamente. Se a diferença de horário for superior a 5 minutos, a autenticação falhará. Os FQDNs devem resolver idealmente em um ambiente adequado, aqui temos a modificação da modificação /etc/hosts
mas o uso de DNS é recomendado corretamente.
Execute o comando abaixo para instalar o Kerberos Admin Server e o KDE (Centro de Distribuição de Chaves):
# APT Install KRB5-KDC KRB5-ADMIN-SERVER KRB5-CONFIG
Ele perguntará as três coisas seguintes uma a uma
- Reino de Kerberos. (Aqui eu usei ubuntuBox.Com)
- Kerberos Server HostName - KDC.Ubuntubox.com
- Nome do host do servidor administrativo (alteração de senha) para Kerberos Realm UbuntuBox.Com - kdc.Ubuntubox.com
Fornecendo fqdn do servidor de administração. Configurando o servidor de administração do KRB5.
Agora execute o comando abaixo para configurar o reino.
# krb5_newrealm
Ele pedirá para inserir uma senha para criação de banco de dados e, depois disso, começará a Kerberos KDC KRB5KDC e Kerberos Administrative Servers Processos Kadmind.
root@kdc: ~# krb5_newrealm Este script deve ser executado no mestre kdc/servidor admin para inicializar um reino Kerberos. Ele pedirá que você digite uma senha de chave mestre. Esta senha será usada para gerar uma chave que é armazenada em/etc/krb5kdc/stash. Você deve tentar se lembrar dessa senha, mas é muito mais importante que seja uma senha forte do que ela é lembrada. No entanto, se você perder a senha e/etc/krb5kdc/stash, não poderá descriptografar seu banco de dados Kerberos. Carregando dados aleatórios do banco de dados de inicialização.Com ', mestre nomes de chave' k/[email protected] 'você será solicitado para a senha mestre do banco de dados. É importante que você não esqueça esta senha. Digite KDC Database Master Key: Reentro KDC Database Master Key para verificar: Agora que seu reino está configurado, você pode criar um diretor administrativo usando o subcomando addPrinc do Kadmin.programa local. Então, esse diretor pode ser adicionado a/etc/krb5kdc/kadm5.ACL para que você possa usar o programa Kadmin em outros computadores. Os diretores administrativos de Kerberos geralmente pertencem a um único usuário e terminam em /admin. Por exemplo, se o JRUSER é um administrador de Kerberos, além do diretor normal do JRUSER, um diretor de Jruser/Admin deve ser criado. Não se esqueça de configurar as informações do DNS para que seus clientes possam encontrar seus servidores KDC e Admin. Fazer isso está documentado no Guia de Administração. root@kdc: ~#
Abrir /etc/krb5kdc/kadm5.ACL
Arquivo com qualquer editor de texto e descomamento a última linha para que o arquivo fosse.
vim/etc/krb5kdc/kadm5.ACL
# Este arquivo é a lista de controle de acesso para a administração KRB5. # Quando este arquivo é editado Run Service Krb5-Admin-Server Reinicialização para ativar a maneira comum de configurar a administração Kerberos é permitir que qualquer # principal que termine em /admin seja fornecido direitos administrativos completos. # Para habilitar isso, descomamento a seguinte linha: */admin *
cópia de Agora, o processo de configuração do servidor Kerberos concluiu com êxito.
Configure o cliente
Execute o comando abaixo para instalar e configurar o cliente Kerberos.
# APT Install Krb5-User
Novamente, ele pedirá 3 coisas uma por uma, como a configuração do servidor KDC.
- Reino de Kerberos - UbuntuBox.Com
- Nome do host para o servidor KDC - KDC.Ubuntubox.com
- Nome do host do servidor admin - KDC.Ubuntubox.com
Teste a autenticação Kerberos
Um diretor da Kebs é uma identidade única à qual Kerberos pode atribuir ingressos; portanto, criaremos um principal no servidor KDC, como abaixo.
AddPrinc "principal_name"
root@kdc: ~# kadmin.Autenticação local como principal raiz/[email protected] com senha. Kadmin.Local: AddPrinc Sandipb Aviso: Nenhuma política especificada para [email protected]; Definido para nenhuma política, insira senha para o diretor "[email protected] ": reenture a senha do principal" [email protected] ": diretor" [email protected] "criou. Kadmin.local:
Para excluir um diretor do KDC, execute o seguinte comando.
Delprinc "principal_name"
root@kdc: ~# kadmin.Local: Autenticação como principal raiz/[email protected] com senha. Kadmin.Local: Delprinc Sandipb tem certeza.Com "? (sim/não): sim diretor "[email protected] "Excluído. Certifique -se de remover este diretor de todas as ACLs antes de reutilizar. Kadmin.local:
Agora, para autenticar em Kerberos e obter um ingresso do servidor KDC, execute o seguinte comando no nó do cliente.
Observação: Os ingressos serão destruídos quando você reiniciar seu computador, quando você executar o comandoKDestroy, ou quando eles expirarem. Você precisará correr Kinit novamente depois que qualquer um deles ocorrer.
# Kinit Sandipb
root@kdcclient: ~# kinit sandipb senha para [email protected]: root@kdcclient: ~# root@kdcclient: ~# klist ticket cache: arquivo:/tmp/krb5cc_0 Principal Principal: [email protected] VALIDADE DE EXPPANHEIRA PRIVRADO DE SERVIÇO DE EXPPSÕES 2018-12-29T19: 38: 53 2018-12-30T05: 38: 53 KRBTGT/[email protected] renovar até 2018-12-30T19: 38: 38 raiz@kdcclient: ~#
Para verificar os detalhes do principal, execute o comando abaixo no servidor KDC.
getPrinc "principal_name"
root@kdc: ~# kadmin.Autenticação local como principal raiz/[email protected] com senha. Kadmin.Local: GetPrinc Sandipb Principal: [email protected] de vencimento: [nunca] Alteração da última senha: Sun 30 de dezembro 19:30:59 +04 2018 Data de expiração da senha: [nunca] Vida máxima do ingresso: 0 dias 10:00:00 Vida renovável máxima: 7 dias 00:00: 00 Último modificado: Sun 30 de dezembro 19:30:59 +04 2018 (raiz/[email protected]) Última autenticação bem-sucedida: Sun 30 de dezembro 19:38:53 +04 2018 Última falha da autenticação: [nunca] Tentativas de senha com falha: 0 Número de chaves: 2 Chave: VNO 1, AES256-CTS-HMAC-SHA1-96 Tecla: VNO 1, AES128-CTS-HMAC-SHA1-96 MKEY: VNO 1 Atributos: Requer_pre_auth Política: [Nenhum] Kadmin.local:
Criação de keytab
Um keytab é um arquivo que contém pares de diretores de Kerberos e teclas criptografadas (que são derivadas da senha de Kerberos). Você pode usar um arquivo keytab para autenticar para vários sistemas remotos usando Kerberos sem inserir uma senha. No entanto, quando você mudar sua senha do Kerberos, você precisará recriar todas as suas teclas.
root@kdc: ~# ktutil ktutil: add_entry -password -p [email protected] -k 1 -e aes256-cts-hmac-sha1-96.Com: ktutil: add_entry -password -p [email protected] -k 1 -e aes128-cts-hmac-sha1-96.Com: ktutil: wkt sandipkt.keytab ktutil: q root@kdc: ~#
raiz@kdc: ~# klist -kte sandipkt.Keytab Keytab Nome: Arquivo: Sandipkt.keytab kvno timestamp Principal ---- --------------------- ------------------------- -------------------------.Com (AES256-CTS-HMAC-SHA1-96) 1 2018-12-30T00: 35: 07 [email protected] (AES128-CTS-HMAC-SHA1-96) raiz@kdc: ~#
raiz@kdc: ~# kinit -k -t sandipkt.keytab sandipb root@kdc: ~# klist ticket cache: arquivo:/tmp/krb5cc_0 Principal padrão: [email protected] VALIDADE DE EXPPANHEIRA PRIVRADO DE SERVIÇO DE EXPERIDADE 2018-12-30T00: 36: 44 2018-12-30T10: 36: 44 KRBTGT/[email protected] renovar até 2018-12-31t00: 36: 34 root@kdc: ~#
Conclusão
Uma autenticação é fundamental para a segurança dos sistemas de computador, os métodos tradicionais de autenticação não são adequados para uso em redes de computadores.O sistema de autenticação Kerberos é adequado para autenticação de usuários em tais ambientes.
Tutoriais do Linux relacionados:
- Coisas para instalar no Ubuntu 20.04
- Uma introdução à automação, ferramentas e técnicas do Linux
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Mastering Bash Script Loops
- Arquivos de configuração do Linux: os 30 primeiros mais importantes
- Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
- Ubuntu 20.04 Guia
- Lista das melhores ferramentas Kali Linux para testes de penetração e…
- Ubuntu 20.04 truques e coisas que você pode não saber
- Coisas para instalar no Ubuntu 22.04