erro ao ler o arquivo keytab krb5.keytab

5

Eu notei essas mensagens de erro do kerberos keytab no SLES 11.2 e no CentOS 6.3:

sshd[31442]: pam_krb5[31442]: error reading keytab 'FILE: / etc/ krb5. keytab'

/etc/krb5.keytab não existe em nossos hosts, e pelo que entendi do arquivo keytab, não precisamos dele. Por esta introdução do keyer do kerberos :

A keytab is a file containing pairs of Kerberos principals and encrypted keys (these are derived from the Kerberos password). You can use this file to log into Kerberos without being prompted for a password. The most common personal use of keytab files is to allow scripts to authenticate to Kerberos without human interaction, or store a password in a plaintext file.

Isso parece algo que não precisamos e talvez seja melhor em termos de segurança para não tê-lo.

Como posso evitar que esse erro apareça em nossos registros do sistema? Aqui está o meu krb5.conf se é útil:

banjer@myhost:~> cat /etc/krb5.conf
# This file managed by Puppet
#
[libdefaults]
        default_tkt_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
        default_tgs_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
        preferred_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
        default_realm = FOO.EXAMPLE.COM
        dns_lookup_kdc = true
        clockskew = 300

[logging]
        default = SYSLOG:NOTICE:DAEMON
        kdc = FILE:/var/log/kdc.log
        kadmind = FILE:/var/log/kadmind.log

[appdefaults]
pam = {
        ticket_lifetime = 1d
        renew_lifetime = 1d
        forwardable = true
        proxiable = false
        retain_after_close = false
        minimum_uid = 0
        debug = false
        banner = "Enter your current"
}

Deixe-me saber se você precisa ver outras configurações. Obrigado.

EDITAR

Esta mensagem aparece em /var/log/secure sempre que um usuário não root efetua login via SSH ou console. Parece ocorrer apenas com autenticação baseada em senha. Se eu fizer um ssh baseado em chave para um servidor, não vejo o erro. Se eu fizer login com root, não vejo o erro. Nossos servidores Linux são autenticados no Active Directory, então é uma mistura saudável de PAM, samba, kerberos e winbind que é usada para autenticar um usuário.

    
por Banjer 08.11.2012 / 15:21

5 respostas

1

Para desativar a validação do keytab e, portanto, suprimir essas mensagens de log, adicione a opção no_validate às configurações do PAM. Por exemplo:

auth        sufficient    pam_krb5.so use_first_pass no_validate

Nos meus servidores CentOS 6, fiz essa alteração em qualquer lugar onde vi pam_krb5.so sendo referenciado nesses dois arquivos:

/etc/pam.d/password-auth-ac
/etc/pam.d/system-auth-ac

Tenho certeza de que o SLES é semelhante, mas estamos eliminando esse sistema, por isso não planejo testá-lo lá.

    
por 17.07.2013 / 15:42
4

Se você não tem um keytab no host, você realmente não está usando o Kerberos corretamente e está aberto a um ataque relativamente simples se o invasor puder envenenar seus caches DNS.

O Kerberos é um sistema secreto compartilhado e, para funcionar efetivamente, qualquer servidor que aceite tickets do Kerberos precisa ter uma cópia local do segredo compartilhado que o Kerberos Key Distribution Center (KDC) também possui. Isto é o que é um keytab, uma cópia local do segredo compartilhado para esse serviço.

Um keytab também pode ser usado como um cache para obter TGTs, mas isso é para quando você deseja que seu host atue como um cliente para um servidor Kerberos, não como um servidor.

p>

pam_krb5 usa o keytab para verificar se a senha digitada é a senha real no KDC. Se você não tem um keytab para permitir isso, então tudo que você está verificando é que alguma máquina em algum lugar respondeu a uma solicitação de protocolo Kerberos.

    
por 22.04.2014 / 22:03
1

Você pode desativar a validação para evitar a mensagem no log, como sugerido pelo Banjer, mas o objetivo da etapa de validação é evitar um ataque em que um bandido configura seu próprio KDC falso. Em outras palavras, você precisa de um host principal para validar o TGT dado pelo KDC é autêntico.

    
por 22.04.2014 / 20:40
1

Isso pode ser antigo, mas eu tive o mesmo problema e queria me livrar da mensagem. Eu segui estas instruções do ArchLinux e resolvi isso.

link

Apenas digite isto:

net ads keytab create -U administrator

Pode depender da sua configuração, no entanto.

    
por 26.10.2015 / 08:37
0

Como @ ryan-fisher mencionado em sua resposta, o host precisa de um arquivo keytab para poder recuperar um TGT para a pré-visualização.

A razão pela qual a mensagem não é vista para o root é porque esse usuário é local (não precisa do Kerberos para autenticação). Ao usar chaves-autorizadas de SSH, você também contorna o Kerberos, portanto, não haverá erro ao registrar o keytab ausente.

Agora, o que você precisa fazer é certificar-se de que /etc/krb5.keytab contenha as chaves para o principal host/domain.name.of.host da máquina. Supondo que o DNS reverso esteja configurado corretamente, você poderá efetuar login usando ssh sem digitar uma senha, supondo que você tenha um TGT válido.

    
por 22.11.2012 / 03:32