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- sssd
und nscd
Konfigurationen gleich zu sein scheinen.
EDIT 11/6: Der nslcd
Daemon ist inaktiv; er hat die Standardkonfiguration, die auf beiden Servern identisch ist.
Es ist auch erwähnenswert, dass getent passwd
alle LDAP-Benutzer korrekt zurückgegeben werden, diese Benutzer sich jedoch nicht über SSH anmelden können. Die sshd
Konfiguration ist ebenfalls dieselbe.
Durch das Lesen der sssd
Protokolle fand ich heraus, dass der erste Server (korrekt) aufruft ldap_search_ext
mit
[(&(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_ext
definiert 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 sssd
Konfiguration 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.