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.