O Kerberos não é um cachorro de 3 cabeças!

Neste artigo procuro explicar de forma simples a estrutura do Kerberos, mostrando exemplos de cada etapa da configuração desse extraordinário sistema de segurança.

[ Hits: 134.240 ]

Por: Oscar Costa em 04/11/2005 | Blog: https://oscarcosta.dev/


Decisões do sistema



Como em todo sistema de segurança, antes de instalar o Kerberos é necessário definir algumas diretrizes.

4.1. Nome (s) do (s) realm (s)


Convenciona-se utilizar o mesmo nome do domínio em caixa alta para o realm. Se existirem mais de um realm, é aconselhado utilizar nomes descritivos para os realms filhos.

4.2. Mapeamento dos Hostnames


O método mais seguro de mapear os hostnames nos realms é setando as regras no arquivo de configuração krb5.conf. O mapeamento pode ser feito por domínios ou subdomínios inteiros ou para cada hostname.

4.3. Portas de acesso


A porta padrão utilizada pelo Kerberos v5 é a porta 88 para o KDC, a porta 749 para o servidor de administrador e a porta 754 para o servidor de propagação. Para a versão 4 do Kerberos é utilizada a porta 750 para o KDC e a porta 751 para o servidor de administrador.

4.4. KDC's escravos


KDC's escravos são úteis para auxiliar o KDC mestre a prover ticket ou até mesmo se o KDC mestre estiver inacessível. O número de KDC's escravos e a sua localização vão depender da rede em que eles atuarão.

Toda requisição de autenticação na rede será feita a um KDC, desta forma os hosts responsáveis por este serviço são muito acessados, sendo aconselhado ter pelo menos um KDC escravo para auxiliar o KDC mestre ou mesmo para ser utilizado como backup, caso o KDC mestre fique inalcançável por qualquer motivo.

4.5. Hostnames para KDC's


Normalmente se utilizam nomes semelhantes aos apelidos de DNS, por exemplo, Kerberos para o KDC mestre e Kerberos_1, Kerberos_2 e etc para os KDC's escravos.

No Kerberos V5 foi adicionado um mecanismo de localizar KDC's por DNS, através do parâmetro SRV do DNS. Esse parâmetro indica o nome do host e o número da porta do serviço, quando a localização for feita por nome de serviço e nome do domínio.

Utilizando este serviço de localização de nomes, o SRV, o nome de domínio utilizado é semelhante ao nome do realm. Isto é útil para utilização do Kerberos em ambientes fora da rede interna da organização, como na Internet.

Alguns nomes de serviços internos do Kerberos:
  • _kerberos._udp: Utilizado para contatar o KDC através de conexão UDP. Este é o tipo de conexão padrão e a conexão é feita pela porta 88 dos KDC's.
  • _kerberos._tcp: Para contatar um KDC através de conexão TCP. Por padrão o KDC do MIT não ouve conexões TCP's. Este serviço é utilizado se for utilizado um outro KDC. Esta conexão é estabelecida pela porta 88 TCP.
  • _kerberos-master._udp: Este serviço é utilizado para contatar o KDC mestre diretamente no caso do usuário estiver logando e sua senha secreta não for aceita porque o KDC que ele se refere normalmente ainda não tiver a base de dados atualizada. Se na rede existir somente um KDC, ou se o KDC mais próximo estiver atualizando a base de dados, este serviço não deve ser utilizado.
  • _kerberos-adm._tcp: Utilizado pelo programa kadmin, escuta a porta 749 no KDC mestre.
  • _kpasswd._udp: Utilizado para mudar senhas secretas, escuta a porta 464 no KDC mestre.
  • _kerberos-iv._udp: Refere-se aos KDC's do Kerberos v4, se este estiver habilitado.

4.6. Propagação da base de dados


A base de dados central do Kerberos fica armazenada no KDC mestre e deve ser propagada regularmente para os KDC's escravos. Este tempo de propagação pode ser definido no KDC mestre através de um "cron job". E deve ser feita toda vez que a base de dados for atualizada, por exemplo, ao alterar uma senha de usuário.

Se a base de dados for muito grande ou existirem muitos KDC's escravos, tornando o processo de propagação muito pesado para a rede, esta propagação pode ser feita aos poucos, onde o KDC mestre envia a base de dados para um grupo de KDC's escravos e estes reenviam para o restante dos KDC's escravos, em blocos.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Kerberos
   3. Segurança
   4. Decisões do sistema
   5. Instalação e configuração
   6. Utilização
   7. Conclusões e Bibliografia
Outros artigos deste autor

A teoria por trás do firewall

SSH - Uma breve abordagem

Automatizando a montagem de partições Windows (FAT e NTFS) no Linux

Leitura recomendada

Tornando seu Apache mais seguro com o ModSecurity

Administrando Linux via web (parte 1)

Acesso Remoto: Configurando e Iniciando o Servidor Telnet e SSH

Certificação CISSP

Cheops: uma ótima ferramenta de rede

  
Comentários
[1] Comentário enviado por chavesfelipe em 04/11/2005 - 08:57h

Muito bom!!! Exelente!

[2] Comentário enviado por augusto_hp em 04/11/2005 - 11:58h

Caramba meu ... este é um artigo ímpar no VOL !! A deficiência de material sobre o kerberos é enorme, e quando existe é em uma linguagem praticamente inacessível ....excelente artigo kilocan ....

Acho que temos muito o que ganhar com este artigoão aqui !!! ;D

[3] Comentário enviado por removido em 04/11/2005 - 17:39h

nem doeu.....he...he...he...
;-))

[4] Comentário enviado por removido em 04/11/2005 - 23:04h

como disse augusto_hp, quando se acha algo sobre kerberos a linguagem é compreenssível apenas pelos "iniciados" e este artigo de qualidade contribui muito para o esclarecimento e implementação de rotinas de segurança tão inexistentes em nossas intranets e elevar ainda mais a qualidade do site.
parabéns.

[5] Comentário enviado por jeffestanislau em 05/11/2005 - 00:02h

Tá show de bola o artigo... bem esclarecedor!!!
Parabéns!!!

[]'s
Jefferson

[6] Comentário enviado por casterman em 06/11/2005 - 13:35h

Realmente parabéns pelo seu artigo, ta bem completo muito bom mesmo!!!

[7] Comentário enviado por cassao em 07/11/2005 - 11:44h

Bem legal, parabéns.
Mas só comentando o post do augusto_hp, tem muito material na net sobre o Kerberos cara... Em inglês tem bastante, em português tem menos, mas tem.

[8] Comentário enviado por forrest1777 em 17/03/2006 - 18:23h

Gostei muito desse artigo :P
bem esclarecedor, linguagem fácil de entender, nota 10!!

só to com um problema... o Kilocan citou o seguinte: "o programa de login pode ser adicionado a inicialização do sistema"
será que alguem poderia me dizer como fazer isso???
[]'s

[9] Comentário enviado por EnzoFerber em 14/12/2006 - 00:38h

Cara, excelente artigo. Parabéns.

Só pra constar: kerberos realmente não é um cachorro de 3 cabeças... e sim Cerberus, o guardiao da entrada do Submundo. :) Pelo menos eles compartilham uma qualidade: ambos zelam pela segurança. :)

Parabéns novamente pelo artigo.
[]'s
Slackware_10

[10] Comentário enviado por EnzoFerber em 14/12/2006 - 00:45h

Qual algoritmo de criptografia o kerberos usa? DES? Triple-DES? Ou algum algoritmo próprio?

[11] Comentário enviado por yetlinux em 24/04/2009 - 06:19h

Kerberos é nome grego. Cerberus é latim. Cérbero é aportuguesamento.

http://pt.wikipedia.org/wiki/C%C3%A9rbero

[12] Comentário enviado por samuelbpc em 19/03/2014 - 09:48h

Amigo,

- Obrigado pelo seu tempo dedicado.
Foi de grande ajuda o seu artigo.

Apesar de não ter resolvido o meu problema, me deu algumas pistas.

Obrigado.


Contribuir com comentário