[GELÖST] OpenLDAP-DB an Squeeze-Version anpassen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Saxenpower

[GELÖST] OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von Saxenpower » 22.06.2012 15:23:23

Hallo,

beim Kollegen ist auf Debian Lenny der Server durch Plattencrash zusammengekracht. Hier lief ein OpenLDAP-Server. Der Kollege hatte jetzt Debian Squeeze aufgespielt, somit auch die aktuelle LDAP-Version, und hat die alten Konfig-Files und die LDAP-DB (/var/lib/ldap/) aus dem Backup eingespielt.
Wenn ich LDAP jetzt startet, erhalte ich immer die Syslog-Meldung:

Code: Alles auswählen

Jun 22 14:11:52 HK1-PDC slapd[32022]: => bdb_last_id: get failed: DB_BUFFER_SMALL: User memory too small for return value (-30999) 
Wie kann ich die alte LDAP-DB an die aktuelle OpenLDAP-Version anpassen? Weiß das jemand? Ich vermute, dass das mit slappadd gehen könnte, aber wie.

Viele Grüße

Saxenpower
Zuletzt geändert von Saxenpower am 27.06.2012 18:15:33, insgesamt 3-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von rendegast » 24.06.2012 12:49:30

Sowas wird in den preinst / postinst des Paketes Debianslapd gemacht.
Eventuell erst die alte DB hineinkopieren, und dann slapd installieren.
Ansonsten an diesen Konfigurationsdateien orientieren.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Saxenpower

Re: OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von Saxenpower » 24.06.2012 19:05:00

Okay,
diese Reihenfolge - Ursprungs /etc/ldap und /var/lib/ldap einspielen, dann installieren - könnte ich auch noch ausprobieren. Gerade bin ich dabei, nocheinmal
die Lenny-Pakete des slapd einzuspielen, um dann eine LDIF-Backup zu erstellen. Danach würde ich wieder die Squeeze-Pakete von slapd einspielen und dann mit ldapadd die LDIF-Datei einspielen. Ich hoffe nur, dass das klappt, die haben mir nämlich nicht das LDAP-Root-Passwort gegeben und in der slap.conf steht nur das Verschlüsselte drin.

Grüße

SaxenPower

Saxenpower

Re: OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von Saxenpower » 25.06.2012 09:24:05

Vielen Dank;

Dein Weg hat geklappt.
rendegast hat geschrieben:Sowas wird in den preinst / postinst des Paketes Debianslapd gemacht.
Eventuell erst die alte DB hineinkopieren, und dann slapd installieren.
Der LDAP läuft unter Squeeze auch ohne Lenny-SLapd-Pakete wieder.

MfG

SaxenPower

Saxenpower

Re: [DOCH UNGELÖST] OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von Saxenpower » 25.06.2012 20:07:41

Hallo Rendegast,

wie gesagt, Dein Tip hat den Server wieder zum Laufen gebracht. Allerdings habe ich jetzt ein Login-Problem. Wenn ich eine LDAP-Abfrage machen will oder
Samba sich anmelden will, dann geht das leider nicht:

Code: Alles auswählen

 ldapsearch -x -h localhost -D cn=admin,dc=herterkom,dc=de -W
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)
Und den Samba-Logfiles taucht "ldap_bind: Invalid credentials (49)" ebenfalls auf. Ich habe jetzt definitiv keine Lösung, wie ich LDAP dazu bringe das Passwort, das so funktioniert hatte, zu akzeptieren.

Viele Grüße

Andreas

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [DOCH UNGELÖST] OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von rendegast » 26.06.2012 04:20:23

Wenn Du nach
"ldap_bind: Invalid credentials (49)"
googlest,
kommen als walkaround einige Anleitungen,
ein neues Paßwort einzuspeisen.


Vielleicht sind im Log der Installation des slapd Meldungen diesbezüglich,
zBsp. sowas wie "fehlerhafte Transformation" o.ä.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Saxenpower

Re: [DOCH UNGELÖST] OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von Saxenpower » 26.06.2012 09:37:10

Nun, das
Wenn Du nach
"ldap_bind: Invalid credentials (49)"
googlest,
kommen als walkaround einige Anleitungen,
ein neues Paßwort einzuspeisen.
ist nicht sonderlich hilfreich, da ich vor und während dieses Threads hier das bereits ausgiebig gemacht hatte. Ehrlich gesagt ich sehe nicht das was Du vielleicht siehst. Bist Du ganz sicher, dass da die passende Anleitung steht? Ich habe seit Freitag nichts dergleichen gefunden.

Ich habe die Installation über die alten, vorhandenen Dateien soeben nocheinmal gemacht. Wenn ich gefragt werde, ob ich die alte DB behalten will und dieses bejahe - will ich ja auch - dann habe ich nach der Passworteingabe die Meldung, dass es hier diese Probleme gibt.

Saxenpower

Re: [DOCH UNGELÖST] OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von Saxenpower » 26.06.2012 09:50:29

Letztenendes sehen die Meldungen so aus:

Code: Alles auswählen

Entpacken von slapd (aus .../slapd_2.4.23-7.2_i386.deb) ...
Trigger für man-db werden verarbeitet ...
slapd (2.4.23-7.2) wird eingerichtet ...
  Moving old database directory to /var/backups:
  There are leftover files in /var/lib/ldap. This will probably break 
  creating the initial directory. If that's the case please move away
  stuff in there and retry the configuration.
  Creating initial configuration... done.
  Creating LDAP directory... failed.
Loading the initial configuration from the ldif file () failed with
the following error while running slapadd:
    hdb_db_open: database "dc=herterkom,dc=de": unclean shutdown detected; attempting recovery.
    bdb(dc=herterkom,dc=de): Program version 4.8 doesn't match environment version 0.6
    => bdb_last_id: get failed: DB_BUFFER_SMALL: User memory too small for return value (-30999)
   [b] hdb_db_open: database "dc=herterkom,dc=de": last_id(/var/lib/ldap) failed: DB_BUFFER_SMALL: User memory too small for return value (-30999).[/b]
    backend_startup_one (type=hdb, suffix="dc=herterkom,dc=de"): bi_db_open failed! (-30999)
    slap_startup failed
dpkg: Fehler beim Bearbeiten von slapd (--configure):
 Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück
configured to not write apport reports
                                      Fehler traten auf beim Bearbeiten von:
 slapd
E: Sub-process /usr/bin/dpkg returned an error code (1)
Ein Paket konnte nicht installiert werden. Versuche zu lösen:
slapd (2.4.23-7.2) wird eingerichtet ...
  Moving old database directory to /var/backups:
  There are leftover files in /var/lib/ldap. This will probably break 
  creating the initial directory. If that's the case please move away
  stuff in there and retry the configuration.
  Creating initial configuration... done.
  Creating LDAP directory... failed.
Loading the initial configuration from the ldif file () failed with
the following error while running slapadd:
  [b]  => bdb_last_id: get failed: DB_BUFFER_SMALL: User memory too small for return value (-30999)
    hdb_db_open: database "dc=herterkom,dc=de": last_id(/var/lib/ldap) failed: DB_BUFFER_SMALL: User memory too small for return value (-30999).[/b]
    backend_startup_one (type=hdb, suffix="dc=herterkom,dc=de"): bi_db_open failed! (-30999)
    slap_startup failed
dpkg: Fehler beim Bearbeiten von slapd (--configure):
 Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück
Fehler traten auf beim Bearbeiten von:
 slapd
Es liegt also nach wie vor dasselbe Problem wie eingangs hier beschrieben vor.

Ich stehe also vor demselben Problem einer Migration der LDAP-DB unter Lenny zu einer LDAP-DB unter Squeeze.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [DOCH UNGELÖST] OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von rendegast » 26.06.2012 17:15:34

Gerade bin ich dabei, nocheinmal
die Lenny-Pakete des slapd einzuspielen,
Der LDAP läuft unter Squeeze auch ohne Lenny-SLapd-Pakete wieder.
Sowas wird in den preinst / postinst des Paketes Debianslapd gemacht.
Eventuell erst die alte DB hineinkopieren, und dann slapd installieren.
Gerade nochmal die preinst/postinst überflogen,
sie unterscheiden sich (grob) dadurch, daß die preinst einen dump ausführen soll.
Für den Ablauf scheint ein installierter slapd vorrausgesetzt, zBsp. auch bei den Versionsvergleichen.
die haben mir nämlich nicht das LDAP-Root-Passwort gegeben und in der slap.conf steht nur das Verschlüsselte drin.
Läuft das ldap denn unter squeeze mit dem slapd aus lenny? Zugriffe, Abfragen usw.?
Dann ein upgrade auf die squeeze-Version?

Moving old database directory to /var/backups:
There are leftover files in /var/lib/ldap. This will probably break
creating the initial directory. If that's the case please move away
stuff in there and retry the configuration.
Creating initial configuration... done.
Creating LDAP directory... failed.
Loading the initial configuration from the ldif file () failed with
the following error while running slapadd:
hdb_db_open: database "dc=herterkom,dc=de": unclean shutdown detected; attempting recovery.
bdb(dc=herterkom,dc=de): Program version 4.8 doesn't match environment version 0.6
=> bdb_last_id: get failed: DB_BUFFER_SMALL: User memory too small for return value (-30999)
hdb_db_open: database "dc=herterkom,dc=de": last_id(/var/lib/ldap) failed: DB_BUFFER_SMALL: User memory too small for return value (-30999).
backend_startup_one (type=hdb, suffix="dc=herterkom,dc=de"): bi_db_open failed! (-30999)
slap_startup failed
Die Fehler kommen dann durch den fehlenden Zugriff?


Gerade ein wenig mit dem slapd herumgespielt, install / remove/purge / dpkg-reconfigure.
In /etc/ldap/ gibt es zwar eine Datei olcDatabase={1}hdb.ldif mit einem Eintrag 'olcRootPW'.
Der scheint aber nicht benutzt zu werden,
denn nach 'dpkg-reconfigure' mit Ändern des ldap-admin-Paßwortes ändert sich nichts unterhalb von /etc/ldap/.
nur die Datenbank-Dateien unter /var/lib/ldap/, darin in der Form:

Code: Alles auswählen

# for i in *; do echo ______________ $i; strings $i | grep SS; done
______________ DB_CONFIG
______________ __db.001
______________ __db.002
______________ __db.003
&{SSHA}sxrr47s1E7rj31i2a6tPwdF/xCHc+4Jj
______________ __db.004
&{SSHA}sxrr47s1E7rj31i2a6tPwdF/xCHc+4Jj
______________ __db.005
______________ __db.006
______________ alock
______________ dn2id.bdb
______________ id2entry.bdb
&{SSHA}sxrr47s1E7rj31i2a6tPwdF/xCHc+4Jj
______________ log.0000000001
&{SSHA}sxrr47s1E7rj31i2a6tPwdF/xCHc+4Jj
______________ objectClass.bdb

# file *
DB_CONFIG:       ASCII text
__db.001:        Applesoft BASIC program data
__db.002:        data
__db.003:        data
__db.004:        data
__db.005:        data
__db.006:        data
alock:           data
dn2id.bdb:       Berkeley DB (Btree, version 9, native byte-order)
id2entry.bdb:    Berkeley DB (Btree, version 9, native byte-order)
log.0000000001:  Berkeley DB (Log, version 17, native byte-order)
objectClass.bdb: Berkeley DB (Btree, version 9, native byte-order)
(Dabei ist das default-backend 'hdb' gegenüber 'bdb' gewählt.)
Die hash-Werte könnten an einen Wert (salt) aus der alten Installation gebunden sein.

Ein walkaround vielleicht für das unbekannte admin-Paßwort:
Zunächst den slapd "frisch" installieren, dabei wird dann ja ein wohlbekanntes Paßwort erstellt.
dessen hash-String dann zBsp. mit hex-Editor in die Dateien aus dem backup eintragen.


Wenn es aber diese "Zu Fuß"-Variante nicht mehr reicht, geht es wohl an ldap-Interna.
Scotty, übernehmen Sie!







----------------------------------------------------
Zur Paßwort-Problematik
Von lenny->squeeze wurde pam geändert md5->sha512, /etc/pam.d/common-password:

Code: Alles auswählen

password        [success=1 default=ignore]      pam_unix.so obscure sha512
falls ldap auch hierauf konfiguriert ist (libpam-ldap[d], 'dpkg-reconfigure libpam-runtime' / 'pam-auth-update'),
eventuell den Eintrag ändern?
(obwohl das meiner Erfahrung nach nur bei neuem/geändertem Paßwort zum Tragen kommt)


bdb(dc=herterkom,dc=de): Program version 4.8 doesn't match environment version 0.6
Bei "4.8" denke ich an die Versionen der Berkeley-db-Pakete,
was aber ist dann das "0.6"?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Saxenpower

Re: [DOCH UNGELÖST] OpenLDAP-DB an Squeeze-Version anpassen

Beitrag von Saxenpower » 27.06.2012 18:15:11

Okay, Dankeschön.

Das sieht schon wesentlich besser aus. Ich versuche es mal auf diesem Weg. Ansonsten müssen wir noch einmal nach Lenny zurück.

MfG
SaxenPower

Antworten