Não é possível entrar no Debian 7.7 com o usuário Kerberos / NIS

1

Eu tenho um sistema Debian 7.7 que eu estou tentando configurar para usar Kerberos e NIS, ambos servidos por um servidor Active Directory.

Eu tenho o kerberos configurado para que eu possa kinit um conjunto de credenciais do servidor do AD.

Eu tenho o NIS configurado para que eu possa su - $USER para um usuário AD e tudo funciona.

Não consigo fazer login como usuário.

Quando efetuo login no console, obtenho esses logs no auth.log:

Nov  5 10:22:41 debian login[3888]: pam_krb5(login:auth): pam_sm_authenticate: entry
Nov  5 10:22:45 debian login[3888]: pam_krb5(login:auth): (user dmackintosh) attempting authentication as dmackintosh@AD.$ZONE
Nov  5 10:22:45 debian login[3888]: pam_krb5(login:auth): user dmackintosh authenticated as dmackintosh@AD.$ZONE
Nov  5 10:22:45 debian login[3888]: pam_krb5(login:auth): (user dmackintosh) temporarily storing credentials in /tmp/krb5cc_pam_54ruC8
Nov  5 10:22:45 debian login[3888]: pam_krb5(login:auth): pam_sm_authenticate: exit (success)
Nov  5 10:22:45 debian login[3888]: Authentication failure

Quando entro no ssh, fico:

Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): pam_sm_authenticate: entry (nonull)
Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): (user dmackintosh) attempting authentication as dmackintosh@AD.$ZONE
Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): user dmackintosh authenticated as dmackintosh@AD.$ZONE
Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): (user dmackintosh) temporarily storing credentials in /tmp/krb5cc_pam_NQ9vhz
Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): pam_sm_authenticate: exit (success)
Nov  5 10:24:00 debian sshd[7641]: Failed password for dmackintosh from 10.8.0.21 port 47234 ssh2
Nov  5 10:24:00 debian sshd[7641]: fatal: Access denied for user dmackintosh by PAM account configuration [preauth]

Em ambos os casos, a tentativa de login é imediatamente expulsa. Eu sei que a senha está correta porque A) passa no teste kinit e B) se eu deliberadamente digitar a senha errada, recebo uma senha sua-senha-errada antes que a senha seja solicitada novamente.

A configuração do PAM é muito parecida com o /usr/share/doc/libpam-krb5/README.Debian. Apenas declarações de depuração do PAM foram adicionadas.

O SSH foi alterado para ativar as opções GSSAPIAuthentication e GSSAPICleanupCredentials, mas isso não pareceu fazer diferença.

Eu tenho isso trabalhando com o CentOS 5 e 6, então tem que ser um problema de configuração no sistema debian em algum lugar.

Eu sei que a internet quer que eu faça isso com o LDAP ao invés do NIS, mas eu tenho que manter o NIS por "razões".

Update : Descobri que, se houver uma entrada em / etc / shadow para o usuário, ela funcionará. Isso derrota totalmente o propósito de usar o NIS, mas de qualquer maneira. Isso me leva a acreditar que é um problema com o meu arquivo /etc/nsswitch.conf, que é assim:

passwd:         files nis
group:          files nis
shadow:         files nis

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

automount:      nis

Update2: Descobri que sem as informações extras em / etc / shadow, getent shadow não retorna as informações de sombra do NIS visíveis de ypcat shadow . Eu também descobri que o Gentoo e o Ubuntu são afetados da mesma forma; As distros da família RH não parecem ser, mesmo que os sistemas da família RH não retornem o conteúdo do mapa NIS sombra através de getent .

    
por David Mackintosh 05.11.2014 / 16:33

1 resposta

0

A resposta é ativar a funcionalidade broken_shadow para o pam_unix.

Em /etc/pam.d/common-account , encontre a linha pam_unix e adicione broken_shadow ao final dela:

account [success=1 new_authtok_reqd=done default=ignore]        pam_unix.so  broken_shadow

Descrição:

Some network setups include 'x' in a crypted password field, but have no shadow information. When this happens, pam_unix fails account management because it can't read this information. A 'brokenshadow' option assumes that errors reading the information mean that it doesn't exist, and allows the user to log in.

    
por 03.12.2014 / 16:17