16.04 Server: Wenn die LDAP-Authentifizierung aktiviert wird, schlägt systemd-logind fehl

7

Ich bin hier ratlos, tut mir leid, wenn mir etwas Offensichtliches fehlt. Ich hatte einen 16.04-Server, der sich gegen LDAP authentifizierte und beim letzten Ausführen von Updates nicht mehr funktionierte. Ich habe einen sauberen 16.04-Server von Grund auf neu erstellt, Standardupdates ausgeführt und funktioniert einwandfrei, bis ich die LDAP-Authentifizierung aktiviere. Ich kann LDAP deaktivieren und dann funktioniert es wieder.

me@myserver:/etc# systemctl status systemd-logind.service
● systemd-logind.service - Login Service
   Loaded: loaded (/lib/systemd/system/systemd-logind.service; static; vendor preset: enabled)
   Active: activating (start) since Tue 2016-07-12 15:13:07 EDT; 19s ago
     Docs: man:systemd-logind.service(8)
           man:logind.conf(5)
           http://www.freedesktop.org/wiki/Software/systemd/logind
           http://www.freedesktop.org/wiki/Software/systemd/multiseat
 Main PID: 2106 (systemd-logind)
    Tasks: 1
   Memory: 228.0K
      CPU: 2ms
   CGroup: /system.slice/systemd-logind.service
           └─2106 /lib/systemd/systemd-logind

Jul 12 15:13:07 myserver systemd[1]: Starting Login Service...

Es wird sich eine Weile drehen, scheitern und dann erneut in Endlosschleifen starten. Ich kann mich bei einem lokalen Konto anmelden, aber es dauert lange.

me@myserver:/etc# systemd-analyze blame
Bootup is not yet finished. Please try again later.

In der Zwischenzeit gibt journalctl -xe eine eigene ausführlichere Schleife zurück:

me@myserver:/etc# journalctl -xe
-- Subject: Unit systemd-logind.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-logind.service has failed.
-- 
-- The result is failed.
Jul 12 15:16:27 myserver systemd[1]: systemd-logind.service: Unit entered failed state.
Jul 12 15:16:27 myserver systemd[1]: systemd-logind.service: Failed with result 'exit-code'.
Jul 12 15:16:27 myserver systemd[1]: systemd-logind.service: Service has no hold-off time, scheduling restart.
Jul 12 15:16:27 myserver systemd[1]: Stopped Login Service.
-- Subject: Unit systemd-logind.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-logind.service has finished shutting down.
Jul 12 15:16:27 myserver systemd[1]: Starting Login Service...
-- Subject: Unit systemd-logind.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-logind.service has begun starting up.
Jul 12 15:16:52 myserver systemd-logind[2134]: Failed to enable subscription: Connection timed out
Jul 12 15:16:52 myserver systemd-logind[2134]: Failed to fully start up daemon: Connection timed out
Jul 12 15:16:52 myserver dbus[1012]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out
Jul 12 15:16:52 myserver systemd[1]: systemd-logind.service: Main process exited, code=exited, status=1/FAILURE
Jul 12 15:16:52 myserver systemd[1]: Failed to start Login Service.

Ich habe ungefähr zwei Dutzend 14.04-Server, die mit LDAP und derselben Konfiguration einwandfrei funktionieren.

Ich habe versucht, systemd-logind manuell neu zu starten, aber es schlägt fehl.

Irgendwelche Ideen? TIA.

(ETA: Ich habe gerade das gleiche System auf 14.04 erstellt und die LDAP-Authentifizierung funktioniert einwandfrei.)

Hinzufügen von dpkg.log-Informationen: Diese Datei enthält viel Rauschen. Sie sind sich also nicht sicher, was relevant und nützlich ist. Hier sind jedoch die Endverarbeitungszeilen für verwandte Pakete:

2016-07-11 13:52:08 status installed libldap-2.4-2:amd64 2.4.42+dfsg-2ubuntu3
2016-07-11 14:11:40 status installed libldap-2.4-2:amd64 2.4.42+dfsg-2ubuntu3.1
2016-07-11 15:02:45 status installed libnss-ldap:amd64 265-3ubuntu2
2016-07-11 15:02:45 status installed ldap-auth-client:all 0.5.3
2016-07-11 15:02:45 status installed ldap-auth-config:all 0.5.3
2016-07-11 15:02:45 status installed libpam-ldap:amd64 184-8.7ubuntu1
2016-07-11 15:04:12 status installed ldap-utils:amd64 2.4.42+dfsg-2ubuntu3.1

Mein LDAP-Server befindet sich an einer anderen Stelle. Dieser Server muss sich nur als Client authentifizieren. Die Konfigurationsdateien unter /etc/ldap.conf und /etc/ldap/ldap.conf sind identisch und scheinen sich zwischen 14.04 und 16.04 nicht geändert zu haben

Es ist erwähnenswert, dass die LDAP-Authentifizierung zwar nicht funktioniert, ich jedoch erfolgreich eine ldapsearch-Abfrage für den LDAP-Server durchführen kann.

Ochsen
quelle
1
Können Sie nachsehen, /var/log/dpkg.logob verwandte Pakete aktualisiert wurden? Wenn ja, können Sie diese Informationen zur Frage hinzufügen? Vielen Dank!
Jorge Castro
Hier finden Sie eine vollständige geführte Konfiguration von LDAP in Ubuntu 16.04, einschließlich Details zur Konfigurationsdatei /etc/ldap.conf. Sie könnten hilfreich sein. ubuntuforums.org/showthread.php?t=2322679
dpkg.log info hinzugefügt. Server ist nur ein LDAP-Client, aber konfiguriert alle Übereinstimmungsanweisungen und scheint sich nicht von 14.04
Ochsen
Könnten Sie versuchen, ein Downgrade durchzuführen libldap-2.4-2und ldap-utilsauf die Version zurückzukehren 2.4.42+dfsg-2ubuntu3?
Robie Basak
Beim Herabstufen dieser beiden Pakete bleibt das Verhalten unverändert. :( Vielen Dank für den Vorschlag! Als (wahrscheinlich nicht nützliche) Referenz hat das funktionierende 14.04-System 2.4.31-1 + nmu2ubuntu8.3 für beide Pakete.
Ochsen

Antworten:

4

Hatte das gleiche Problem mit meinen 16.04 Desktop Clients.

Schließlich wurde das Ersetzen des libnss-ldap-Pakets durch libnss-ldapd behoben .

Scheint das gleiche Problem wie in diesem Fehlerbericht zu sein: https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1024475

BEARBEITEN : Weitere Informationen zu diesen Paketen aus dem Debian-Wiki :

Derzeit sind zwei Pakete verfügbar, um NSS-Lookups über LDAP zu konfigurieren: das libnss-ldap-Paket und das libnss-ldapd-Paket. Welche Sie wählen müssen, hängt von den Bedürfnissen ab. Im Allgemeinen ist libnss-ldapd einfacher, aber neuer und libnss-ldap ist ausgereifter, aber komplexer. Außerdem hat libnss-ldap einige bekannte Probleme mit der Bereitstellung von Hostinformationen und Suchvorgängen während des Startvorgangs, die in libnss-ldapd behoben werden sollten . Darüber hinaus bricht libnss-ldap bei Verwendung von LDAP + SSL setuid-Programme (su, sudo) ab

Barotto
quelle
Ah, Danke! Ich begann mich zu fragen, ob es nur ich war. Werde das versuchen! (-:
Ochsen
3

Eine Möglichkeit, dieses Problem zu vermeiden, besteht darin, sicherzustellen, dass der nss_initgroups_ignoreusersParameter - in /etc/ldap.conf(oder /etc/libnss-ldap.conf, abhängig von Ihrem System) - mit allen (lokalen) Benutzern in gefüllt ist /etc/passwd:

NSS_IGNOREUSERS="$(cut -d: -f1 /etc/passwd | sort | tr '\n' ',' | sed 's|,$||')"
sed -i "s|^nss_initgroups_ignoreusers.*|nss_initgroups_ignoreusers ${NSS_IGNOREUSERS}|" /etc/ldap.conf

Auf diese Weise wird beim Starten des Systems und beim Abfragen der Benutzer- / Gruppennamensdienste zum Starten der lokalen Dienste kein "nss_ldap: LDAP-Server kann nicht kontaktiert werden" ausgegeben (da die entsprechenden lokalen Benutzer / Gruppen von NSS LDAP ignoriert werden). .

(Dieses Problem gibt es seit Jahren, unabhängig von systemd)

Cédric Dufour
quelle