PAM_LDAP Falha de autenticação com credenciais corretas no freebsd

6

Eu preciso dos nossos servidores freebsd para autenticação via AD, mas isso está me dando problemas.

Ambiente: Backend do AD (Win 2k8r2). Isso funciona com outros hosts linux que auth via SSSD
FreeBSD 9.1 para servidores clientes

Configurei tudo o que posso imaginar, e acho que está correto, mas quando tento efetuar login com uma conta do AD, ele falha com:

pam_ldap: error trying to bind as user "CN=testuser,CN=Users,DC=example,DC=com" (Invalid credentials)

Então, sei que está passando da ligação inicial, pois o DN que está trazendo de volta está correto e veio do servidor do AD. Quando ele tenta se ligar com esse DN, isso não pode, o que faz com que o auth falhe. Eu testei os credenciais do usuário de teste no servidor do AD, usando ldapsearch e até defini-lo como o DN de ligação padrão no ldap.conf e ele funciona para todos os testes.

Eu não posso, por enquanto, entender por que a ligação inicial funciona, mas a ligação do usuário falha.

Para referência, aqui estão meus arquivos de configuração:

/usr/local/etc/ldap.conf

pam_login_attribute uid
base dc=example,dc=com
uri ldap://xxx.xxx.xxx.xxx/
ssl no
binddn CN=ro_user,CN=Users,DC=example,DC=com
bindpw somerandompw

/usr/local/etc/openldap/ldap.conf

pam_login_attribute uid
base dc=example,dc=com
uri ldap://xxx.xxx.xxx.xxx/
ssl no

/etc/pam.d/sshd

auth        sufficient  pam_opie.so     no_warn no_fake_prompts
auth        requisite   pam_opieaccess.so   no_warn allow_local
auth        sufficient  /usr/local/lib/pam_ldap.so  no_warn debug
auth        required    pam_unix.so     no_warn try_first_pass

account     required    pam_nologin.so
account     required    pam_login_access.so
account     required    pam_unix.so
account         required        /usr/local/lib/pam_ldap.so      no_warn ignore_authinfo_unavail ignore_unknown_user

session     required    pam_permit.so

password    required    pam_unix.so     no_warn try_first_pass

EDIT: Eu tive um pensamento - alguém sabe se pam_ldap definitivamente usa o mesmo processo de ligação / autenticação para a ligação inicial e a ligação de autenticação? Eu estou lutando para entender como a ligação pode ter sucesso quando é a ligação inicial, mas falha quando é uma ligação para autenticação.

    
por drinxy 26.02.2013 / 07:06

2 respostas

1

Algumas coisas:

1.) Se você faz um getent passwd $ username para um usuário que existe somente no ldap, ele retira a entrada correta?

2.) Como é o seu arquivo /etc/pam.d/system-auth?

3.) Retorna os resultados corretamente para

ldapsearch -D $BINDDN -W -H ldap://$HOST 'uid=$RANDOM_USER'

Por último, parece que o binddn que você tem em /usr/local/etc/ldap.conf está usando ro_user e o binddn pam está autenticando com o testuser. Por que a discrepância. Certifique-se de que ambos trabalhem com o ldapsearch

    
por 05.03.2013 / 17:42
0

Eu tenho lutado o dia todo com um erro muito semelhante ao acima. No meu caso, eu estava vendo mensagens assim:

Nov 26 15:19:25 digitalocean sshd[2373]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=60.196-30-62.static.virginmediabusiness.co.uk
Nov 26 15:19:25 digitalocean sshd[2373]: pam_ldap: error trying to bind as user "cn=dan.howard,ou=users,dc=example,dc=com" (Invalid credentials)
Nov 26 15:19:27 digitalocean sshd[2373]: Failed password for invalid user dan.howard from 62.30.196.60 port 63534 ssh2

'Credenciais inválidas' é um pouco falso aqui, e o importante era 'usuário inválido dan.howard'. Aparentemente, o NSS primeiro procurará o nome do usuário e, se ele não reconhecer o nome, a senha enviada ao servidor LDAP será a cadeia literal "INCORRECT", que obviamente está errada, e parece muito comportamento estranho para mim (mais informações link )

Eu tinha visto muitos tutoriais instruindo-me a colocar 'ldap' no meu arquivo /etc/nsswitch.conf para as linhas passwd, group e shadow, depois reinicie o nscd.

Eu fiz isso e ele disse [ok], então não pude ver o que estava errado.

Acontece que eu não tinha o módulo ldap nss instalado. Tudo que eu precisava fazer era isto:

apt-get instala o libnss-ldap

Em seguida, o NSS conseguiu identificar os usuários do LDAP, o que significava que o PAM enviaria as senhas corretas e eu era capaz de fazer o login. Espero que isso ajude outra pessoa.

    
por 26.11.2016 / 23:40