Authentifizierung über LDAP: Wo ist ldap_search_ext definiert?

Authentifizierung über LDAP: Wo ist ldap_search_ext definiert?

Es gibt zwei RHEL 8-Server, die mit derselben Vorlage bereitgestellt wurden, wobei nur auf dem ersten Server einige manuelle Korrekturen und Optimierungen vorgenommen wurden. Sie ermöglichen die SSH-Benutzerauthentifizierung über einen Remote-LDAP-Server und wurden mit Authselect konfiguriert:

authselect select sssd --force

Der erste Server funktioniert einwandfrei, während beim zweiten die SSH-Authentifizierung fehlschlägt. Ich versuche, den Unterschied zwischen ihnen herauszufinden, da ihre LDAP-, PAM- sssdund nscdKonfigurationen gleich zu sein scheinen.

EDIT 11/6: Der nslcdDaemon ist inaktiv; er hat die Standardkonfiguration, die auf beiden Servern identisch ist.
Es ist auch erwähnenswert, dass getent passwdalle LDAP-Benutzer korrekt zurückgegeben werden, diese Benutzer sich jedoch nicht über SSH anmelden können. Die sshdKonfiguration ist ebenfalls dieselbe.


Durch das Lesen der sssdProtokolle fand ich heraus, dass der erste Server (korrekt) aufruft ldap_search_extmit

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

während der zweite (fehlgeschlagene) die Suche verwendet

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

Auf dem zweiten Server enthält die Abfrage also ein zusätzliches (uid=*). Es bezieht sich auch auf BE_REQ_USER vs. BE_REQ_INITGROUPS in der ersten Suche (siehe Protokolle unten). Dies gibt null Ergebnisse zurück.

Daher möchte ich wissen, wo der Aufruf ldap_search_extdefiniert ist.


Hier ein Auszug aus den Logs des ersten Servers:

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

und der zweite:

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

Antwort1

Das Problem wurde gefunden. Die sssdKonfiguration enthält die Zeile

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

WoHostnameist der lokale Hostname für jeden Server. Der zweite Server wurde jedoch nicht im LDAP-Server referenziert, nur der erste. Das Hinzufügen eines Eintrags für den zweiten Server im LDAP löste das Problem.

verwandte Informationen