Existem dois servidores RHEL 8 que foram provisionados a partir do mesmo modelo, com algumas correções e ajustes manuais feitos manualmente apenas no primeiro servidor. Eles permitem a autenticação do usuário SSH por meio de um servidor LDAP remoto e foram configurados com authselect:
authselect select sssd --force
O primeiro servidor funciona perfeitamente, enquanto no segundo a autenticação SSH falha. Estou procurando encontrar a diferença entre eles, porque seus LDAP, PAM, sssd
e nscd
configs parecem os mesmos.
EDIT 11/6: O nslcd
daemon está inativo; tem a configuração padrão, idêntica nos dois servidores.
Também vale a pena notar que getent passwd
retorna corretamente todos os usuários LDAP, mas esses usuários não podem efetuar login via SSH. A sshd
configuração também é a mesma.
Ao ler os sssd
logs, descobri que o primeiro servidor chama (corretamente) ldap_search_ext
com
[(&(uid=dr01)(objectclass=posixAccount)(&(uidNumber=*)(!(uidNumber=0))))][dc=mydomain,dc=org]
enquanto o segundo usa (falha) a busca
[(&(uid=dr01)(objectclass=posixAccount)(uid=*)(&(uidNumber=*)(!(uidNumber=0))))][dc=mydomain,dc=org]
Portanto, no segundo servidor, a consulta inclui um arquivo (uid=*)
. Também se refere a BE_REQ_USER vs BE_REQ_INITGROUPS na primeira pesquisa (veja os logs abaixo). Isso retorna zero resultados.
Então, eu gostaria de saber onde a chamada para ldap_search_ext
está definida.
Aqui está um trecho dos logs do primeiro servidor:
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [dp_get_account_info_send] (0x0200): Got request for [0x3][BE_REQ_INITGROUPS][[email protected]]
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sss_domain_get_state] (0x1000): Domain mydomain.org is Active
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [dp_attach_req] (0x0400): DP Request [Initgroups #13]: New request. Flags [0x0001].
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [dp_attach_req] (0x0400): Number of active DP request: 1
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sss_domain_get_state] (0x1000): Domain mydomain.org is Active
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sdap_get_initgr_next_base] (0x0400): Searching for users with base [dc=mydomain,dc=org]
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x0400): calling ldap_search_ext with [(&(uid=dr01)(objectclass=posixAccount)(&(uidNumber=*)(!(uidNumber=0))))][dc=mydomain,dc=org].
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [objectClass]
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [uid]
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [userPassword]
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [uidNumber]
(Fri Jun 7 15:15:46 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [gidNumber]
(...)
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sdap_search_user_process] (0x0400): Search for users, returned 1 results.
e o segundo:
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [dp_get_account_info_send] (0x0200): Got request for [0x1][BE_REQ_USER][[email protected]]
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [dp_attach_req] (0x0400): DP Request [Account #8]: New request. Flags [0x0001].
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [dp_attach_req] (0x0400): Number of active DP request: 1
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sss_domain_get_state] (0x1000): Domain mydomain.org is Active
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sdap_search_user_next_base] (0x0400): Searching for users with base [dc=mydomain,dc=org]
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x0400): calling ldap_search_ext with [(&(uid=dr01)(objectclass=posixAccount)(uid=*)(&(uidNumber=*)(!(uidNumber=0))))][dc=mydomain,dc=org].
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [objectClass]
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [uid]
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [userPassword]
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [uidNumber]
(Fri Jun 7 15:20:50 2019) [sssd[be[mydomain.org]]] [sdap_get_generic_ext_step] (0x1000): Requesting attrs: [gidNumber]
Encontrou o problema. A
sssd
configuração contém a linhaem que hostname é o nome do host local para cada servidor. No entanto, o segundo servidor não foi referenciado no servidor LDAP, apenas o primeiro foi. Adicionar uma entrada para o segundo servidor no LDAP resolveu o problema.