Temos um cluster que utiliza um domínio LDAP interno para autenticação de usuários que anteriormente utilizavam senhas armazenadas em LDAP. Agora movemos a máquina de login para usar krb5 para autenticação de senha em um kdc externo. Gostaríamos de remover as senhas LDAP locais, se pudermos. Existe um equivalente no ldap ao comando tradicional unix auth usermod -p '!' user
?
Responder1
Para OpenLDAP,remova o userPassword
atributode cada conta de usuário.
Infelizmente não existem comandos padrão para gerenciar contas de usuários LDAP, então você precisará ldapsearch | awk/sed/grep | ldapmodify
ou criar um script para a atualização em lote usando Perl/Python.
Alternativamente:Em vez de desabilitar totalmente a autenticação de senha LDAP, vocêpodefaça com que o servidor LDAP valide as senhas de ligação no Kerberos. Obviamente, isso não é tão bom quanto a autenticação Kerberos real (SASL GSSAPI), mas pode ser útil se você ainda tiver software que dependa da 'ligação simples' do LDAP.
Alterar o atributo de cada usuário userPassword
para {SASL}user@REALM
(contendo seu principal Kerberos) fará com que o OpenLDAP execute a validação de senha de passagem usando o daemon 'saslauthd' (do Cyrus SASL). Configure-o para ser iniciado como saslauthd -a krb5
e ele verificará as senhas em seu Kerberos KDC.
Observe que saslauthdrequero sistema tenha um principal 'host/' em sua keytab de máquina (/etc/krb5.keytab).