LDAP를 통한 인증: ldap_search_ext는 어디에 정의되어 있나요?

LDAP를 통한 인증: ldap_search_ext는 어디에 정의되어 있나요?

동일한 템플릿으로 구성된 두 개의 RHEL 8 서버가 있으며 일부 수동 수정 및 조정은 첫 번째 서버에서만 수동으로 수행됩니다. 원격 LDAP 서버를 통해 SSH 사용자 인증을 허용하고 authselect를 사용하여 구성됩니다.

authselect select sssd --force

첫 번째 서버는 제대로 작동하지만 두 번째 서버에서는 SSH 인증이 실패합니다. LDAP, PAM sssdnscd구성이 동일해 보이기 때문에 차이점을 찾고 있습니다 .

편집 11/6: nslcd데몬은 비활성 상태입니다. 두 서버 모두에서 동일한 기본 구성이 있습니다. 모든 LDAP 사용자가 올바르게 반환되지만 이러한 사용자는 SSH를 통해 로그인할 수 없다는
점도 주목할 가치가 있습니다 . getent passwd구성은 sshd동일합니다.


sssd로그를 읽음으로써 첫 번째 서버가 (올바르게) ldap_search_ext호출하는 것을 발견했습니다.

[(&(uid=dr01)(objectclass=posixAccount)(&(uidNumber=*)(!(uidNumber=0))))][dc=mydomain,dc=org]

두 번째는 (실패한) 검색을 사용하는 동안

[(&(uid=dr01)(objectclass=posixAccount)(uid=*)(&(uidNumber=*)(!(uidNumber=0))))][dc=mydomain,dc=org]

따라서 두 번째 서버의 쿼리에는 추가 가 포함됩니다 (uid=*). 또한 첫 번째 검색에서 BE_REQ_INITGROUPS를 사용하여 BE_REQ_USER를 참조합니다(아래 로그 참조). 그러면 0개의 결과가 반환됩니다.

ldap_search_ext그래서 호출이 어디에 정의되어 있는지 알고 싶습니다 .


다음은 첫 번째 서버에서 발췌한 로그입니다.

(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.

두번째:

(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]

답변1

문제가 발견되었습니다. 구성에 sssd줄이 포함되어 있습니다.

ldap_access_filter = (host=<hostname>.mydomain.org)

어디CPU 이름각 서버의 로컬 호스트 이름입니다. 그러나 두 번째 서버는 LDAP 서버에서 참조되지 않고 첫 번째 서버만 참조됩니다. LDAP에 두 번째 서버에 대한 항목을 추가하면 문제가 해결되었습니다.

관련 정보