3.6.5. Configurando o Servidor Kerberos 5
Antes de configurar o Kerberos, instale o KDC. Se for preciso configurar servidores escravos (secundários), instale primeiro um mestre (primários).
Para configurar um servidor Kerberos básico, siga estes passos:
Certifique-se de que a sincronização do relógio e DNS estejam funcionando em todas as máquinas cliente e servidor antes de configurar o Kerberos. Preste atenção especial à sincronização do horário entre o servidor Kerberos e seus clientes. Se a diferença entre os relógios do servidor e do cliente for maior que cinco minutos (essa quantidade padrão é configurável no Kerberos 5), os clientes do Kerberos não poderão se autenticar no servidor. Essa sincronização do relógio se faz necessária para evitar que um atacante use um ticket antigo do Kerberos para se mascarar como um usuário válido.
É aconselhável configurar um Protocolo de Horário de Rede (Network Time Protocol - NTP) compatível com a rede cliente/servidor mesmo se o Kerberos não estiver sendo usado. O Red Hat Enterprise Linux inclui o pacote ntp para este propósito. Consulte o /usr/share/doc/ntp-<version-number>/index.html (onde <version-number> é o número da versão do pacote ntp instalado no seu sistema) para obter detalhes sobre a configuração de servidores de Protocolo de Horário de Rede e http://www.ntp.org para informações adicionais sobre NTP.
Instale os pacotes krb5-libs, krb5-server, e krb5-workstation na máquina dedicada que executa o KDC. Essa máquina precisa ser muito segura — se possível, não deve executar nenhum outro serviço além do KDC.
Edite os arquivos de configuração /etc/krb5.conf e /var/kerberos/krb5kdc/kdc.conf para refletir o nome do território e o mapeamento de domínio-território. Um território simples pode ser construído substituindo as instâncias de EXEMPLO.COM e exemplo.com pelo nome de domínio correto — certificando de manter os nomes em caixas alta e baixa no formato correto — e alterando o KDC de kerberos.exemplo.com para o nome do servidor do Kerberos. Por convenção, todos os nomes de território são escritos em caixa alta e todos os nomes DNS de máquinas e de domínio são escritos em caixa baixa. Para uma explanação completa sobre os formatos destes arquivos, consulte as respectivas páginas man.
Crie o banco de dados usando o utilitário kdb5_util em uma janela de comandos:
/usr/kerberos/sbin/kdb5_util create -s
O comando create cria o banco de dados usado para armazenar as chaves para o território do Kerberos. A opção -s força a criação de um arquivo stash no qual a chave do servidor mestre está armazenada. Se não houver nenhum arquivo stash a partir do qual pode-se ler a chave, o servidor do Kerberos (krb5kdc) pede ao usuário a senha do servidor mestre (que pode ser usada para recriar a chave) toda vez que este iniciar.
Edite o arquivo /var/kerberos/krb5kdc/kadm5.acl. Este arquivo é usado pelo kadmind para determinar quais principais têm acesso administrativo ao banco de dados do Kerberos e seus níveis de acesso. A maioria das empresas podem fazer isso com uma única linha:
*/admin@EXAMPLE.COM *
A maioria dos usuários é representada no banco de dados por um único principal (com uma instância NULA ou vazia, como joe@EXEMPLO.COM). Com esta configuração, usuários com um segundo principal com a instância admin (joe/admin@EXEMPLO.COM, por exemplo) são capazes de exercer controle total sobre o banco de dados Kerberos do território.
Uma vez iniciado o kadmind no servidor, qualquer usuário pode acessar seus serviços, executando kadmin em quaisquer clientes ou servidores no território. Entretanto, somente os usuários listados no arquivo kadm5.acl podem modificar o banco de dados de qualquer maneira, exceto alterar suas próprias senhas.
O utilitário kadmin se comunica com o servidor kadmind através da rede e usa o Kerberos para autenticação. Por este motivo, o primeiro principal já deve existir antes de conectar ao servidor através da rede para administrá-lo. Crie o primeiro principal com o comando kadmin.local, que é especificamente desenvolvido para ser usado na mesma máquina que o KDC e não utiliza o Kerberos para autenticação.
Digite o seguinte comando kadmin.local no terminal do KDC para criar o primeiro principal:
/usr/kerberos/sbin/kadmin.local -q "addprinc nome-de-usuário/admin"
Inicie o Kerberos usando os seguintes comandos:
/sbin/service krb5kdc start /sbin/service kadmin start /sbin/service krb524 start
Adicione principais para os usuários com o comando addprinc do kadmin. O kadmin e o kadmin.local são interfaces de linha de comando do KDC. Conseqüentemente, muitos comandos — como o addprinc — tornam-se disponíveis após o lançamento do programa kadmin. Consulte a página man do kadmin para mais informações.
Verifique se o KDC está emitindo tickets. Primeiro, execute kinit para obter um ticket e armazená-lo em um arquivo cache de credenciais. Em seguida, use o klist para visualizar a lista de credenciais no cache e use o kdestroy para destruir o cache e as credenciais ali contidas.
Por padrão, o kinit tenta autenticar usando o nome de login da conta usada ao logar no sistema (não no servidor do Kerberos). Se este nome não corresponde a um principal no banco de dados do Kerberos, o kinit emite uma mensagem de erro. Se isto ocorrer, forneça ao kinit o nome correto do principal como um argumento na linha de comando (kinit <principal>).
Uma vez que estes passos estejam completos, o servidor do Kerberos deve estar pronto e funcionando.