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_USER와 BE_REQ_INITGROUPS를 참조합니다(아래 로그 참조). 결과가 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)

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

관련 정보