LDAP-Backup erstellen

Ich bin ein Freund vom Plain text. Damit laesst sich IMHO immer noch am besten Arbeiten. Man kann es in alle denkbaren Formate umwandeln, umbiegen, exportieren, was auch immer, und ist deswegen was Backups angeht das Ziel meiner Wahl. Natuerlich habe ich bei dem LDAP-Server das /var/lib/ldap/ im Backuppath mit drin, aber es geht nichts ueber eine Textdatei in der die Werte nochmal als Plain text drinstehen; gleiches gilt uebrigens fuer MySQL-Datenbanken…

Die Backupdatei erstelle ich mit slapcat. Wichtig dabei ist zu beachten, dass die slap* Tools ganz anders arbeiten als die entsprechenden ldap* Gegenstuecke. Beispiel slapadd und ldapadd. Die ldap* Tools sind LDAP-Clients die ueber das LDAP-Protokoll auf die Datenbank zugreifen. Die slap* Befehle aber greifen direkt auf die lokalen Datenbankdateien zu, die Berkley DB = *.bdb Dateien in /var/lib/ldap/. Da die slap* Befehle direkt darauf zugreifen koennen Sie natuerlich nur auf dem Rechner ausgefuehrt werden auf dem der LDAP-Server laeuft, und es ist wichtig, dass der LDAP-Daemon nicht laeuft. Entsprechend ist auch das Backup-Skript was fuer den LDAP laeuft, einmal taeglich per Cron aufgerufen:

#!/bin/bash
 
SLAPCAT=/usr/sbin/slapcat
GZIP=/bin/gzip
BACKUPDIR=/root/ldapbackup/
 
 
# Daemon stoppen
/etc/init.d/slapd stop > /dev/null 2>&1
if [ $? != "0" ]; then
  logger -t "LDAP-Backup:" "Fehler beim Stoppen des slapd Daemons."
  exit 1
fi
 
 
# Backup in Textdatei erzeugen
$SLAPCAT > $BACKUPDIR/$(date +%Y%m%d)-ldapbackup.ldif
if [ $? != "0" ]; then
  logger -t "LDAP-Backup:" "Fehler beim Schreiben der Backupdatei mit slapcat."
  exit 1
fi
 
 
# Textdatei komprimieren
$GZIP $BACKUPDIR/$(date +%Y%m%d)-ldapbackup.ldif
if [ $? != "0" ]; then
  logger -t "LDAP-Backup:" "Fehler beim Komprimieren der erstellten Backupdatei."
  exit 1
fi
 
 
# Daemon starten und wenn es ueberall keine Probleme gab dann Erfolgsmeldung in syslog
/etc/init.d/slapd start > /dev/null 2>&1
if [ $? != "0" ]; then
  logger -t "LDAP-Backup:" "Fehler beim Starten des slapd Daemons."
  exit 1
else
  logger -t "LDAP-Backup:" "Das Backup der LDAP-Datenbank wurde erfolgreich durchgefuehrt."
fi

Samba/LDAP: Benutzeraccount auf Rechner beschraenken

Wie Ihr merkt beschaeftige ich mich in der letzten Zeit vermehrt mit dem Thema, hier nochmal eben festgehalten wie man einen Benutzeraccount so beschraenkt, dass er sich nur an bestimmten Rechnern anmelden darf:

  • phpLDAPadmin oeffnen und den entsprechenden Benutzeraccount auswaehlen
  • Klick auf „Add new attribute
  • Im Dropdown Menue des Punkts „Add new attribute“ den Punkt „sambaUserWorkstations“ auswaehlen und als Parameter die Rechnernamen angeben an denen der User sich anmelden darf, Bsp: dnpw-ab-123$
  • Speichern, fertig

Loeschen kann man das ganze indem man einfach alle Attributparameter loescht und speichert. Mehrere Rechnernamen werden mit Komma getrennt hintereinander angegeben.

Evtl. ist noch interessant unter Windows in den Gruppenrichtlinien (Windows+R -> gpedit.msc) den Punkt „Computerkonfiguration -> Administrative Vorlagen -> System -> Benutzerprofile ->  Benutzer bei Fehlschlag des servergespeicherteten Profils abmelden“ zu aktivieren. Ansonsten bekommt der User eine Fehlermeldung das er sich nicht an der Domaene anmelden darf u wird temporaer mit einer lokalen Kopie angemeldet.

Samba Interdomain Trust

Wer Samba PDC-Server betreut, der weiss wovon ich nun rede: Man richtet einen entsprechenden PDC-Server ein, hebt die Clients in die Domaene. Nun kommt eine weitere Abteilung hinzu, es kommt ein weiterer PDC und beides laeuft friedlich nebeneinander her. Nun fangen die beiden Abteilungen an staerker zusammenzuarbeiten, User wechseln hin und her, Raeumlichkeiten werden gemeinsam genutzt, aber im Anmeldebildschirm von Windows erscheint neben dem lokalen Computer immer nur die Domaene in die der Client gehoben wurde.

Abhilfe schafft dort das einrichten eines entsprechenden Interdomain Trust. Dafuer muessen auf den PDC Servern jeweils vertraute Domaenenkontos (mit [I]-Flag) erstellt und anschliessend der Trust hergestellt werden. Dafuer (wenn Samba mit LDAP)

  • smbldap-useradd -i DOMAENENNAME
  • net rpc trustdom establish DOMAENENNAME

Wichtig ist noch, dass winbind laufen muss. Unter Debian muss das mit aptitude install winbind nachinstalliert werden. Ob dann alles funktioniert hat und ob die Benutzerkonten abfragbar sind kann man mit dem Befehl wbinfo -u nachpruefen. Es sollte dann eine Liste angezeigt werden nach dem Schema „DOMAENENNAME\USERNAME“

Zum Nachlesen in der Samba Doku:

DatenG(eorg)A(ugust)U(niversitaet)

Jetzt schreibe ich doch noch einen Eintrag in die alte DB vor dem Umzug, naja, dann mach ich den mysqldump halt nochmal. Aber den DatenGAU an unserer Uni kann ich nicht unerwaehnt lassen…

Himuro, alte Socke, gegen Dich haben wir doch auch immer unsere Studentendaten abgeglichen. Nun biste wech… Und nu is auch so einiges mehr wech. Zum Beispiel die Daten die Du weltweit oeffentlich verteilt hast.

Ich bin mal gespannt, wie es jetzt auch mit der Nutzerverwaltung des Studentenwerkes weitergeht, die waren ja schliesslich auch noch an Ihn angeschlossen. Es gibt bestrebungen eine eigene Nutzerverwaltung aufzubauen, obwohl es ein IdentityManagement der Uni/GWDG gibt… Naja, mal schaun…

Wer in der oben genannten Liste nach meinem Namen sucht wird auch bei diesem fuendig. Erfahren von der Luecke hab ich heute Nacht ueber eine Mail auf der Goettinger Chaosliste wo auf einen Artikel bei Netzpolitik aufmerksam gemacht wurde. Dort ist auch eine erste kurze Stellungnahme der Uni zu lesen. Inzwischen sind auch Artikel auf Heise und Golem zu finden. Mal gucken wie es weitergeht… ;-)

[Update]