Samba DNS Update schlägt auf dem DC Backup fehl

samba-ad
kerberos
dns
diagnostic

#1

Hallo zusammen,

ich hatte gestern einen Zwischenfall auf dem Univention DC Master und war gezwungen ein 24h altes Backup einzuspielen. Der DC Backup lief in der Zwischenzeit weiter.

Auf den ersten Blick scheint alles wieder normal zu funktionieren. Jedoch am DC Backup wird beim Systemcheck der folgende Fehler ausgegeben:

Fehler traten auf bei der Ausführung von `kinit` oder `nsupdate`. `kinit` für den Principal dns-DCBACKUP mit der Password Tabelle /var/lib/samba/private/dns.keytab ist fehlgeschlagen.

Beim Ausführen von “samba_dnsupdate” ergibt sich folgende Fehlermeldung: “dns_tkey_negotiategss: TKEY is unacceptable”

Ein Domain-Rejoin sowie ein manuelles Neuerstellen des Machine Passwords brachten beide keine Veränderung.

Wo könnte hier der Fehler liegen ?

Beste Grüße,
Ludwig


#2

Hallo,

Sie haben das Backup nur von dem Master eingespielt, oder vom Master und Backup?
Die Systemzeit der beiden Server stimmt wieder überein?

Der Backupserver wurde mit einem univention-join neu gejoined? Die Serverversionen sind beide gleich?
univention-app info


#3

Korrekt.

Das Backup wurde nur vom Master eingespielt. Die Systemzeit stimmt ebenfalls und die UCS Version ist identisch UCS: 4.2-2 errata203.
Auch ein univention-join lief fehlerfrei durch.


#4

Moin,

Sie sollten die Keytab mit folgendem Befehl auf dem betroffenen Host neu erzeugen lassen können:

rm -f $keytab
samba-tool domain exportkeytab $keytab "--principal=dns-$(hostname)@$(ucr get domainname)"

Anschließend können Sie direkt auf der Kommandozeile testen, ob das funktioniert hat. Der erste folgende Befehl sollte nichts ausgeben, der zweite dann ein aktives Ticket für den Principal dns-<hostname> anzeigen:

kinit -t /var/lib/samba/private/dns.keytab dns-$(hostname)
klist

Gruß,
mosu


#5

Hallo Mosu,

der Befehl
samba-tool domain exportkeytab $keytab "--principal=dns-$(hostname)@$(ucr get domainname)"
scheint syntaktisch nicht korrekt:

# samba-tool domain exportkeytab $keytab "--principal=dns-$(hostname)@$(ucr get domainname)"
Usage: samba-tool domain exportkeytab <keytab> [options]
#

Manuell angepasst auf:
samba-tool domain exportkeytab dns.keytab --principal=dns-DCBACKUP@domain.com

Funktioniert es, klist zeigt auch ein Ticket, “samba_dnsupdate” bringt aber immer noch den gleichen Fehler und auch die Meldung im Systemcheck bleibt erhalten.

Viele Grüße,
Ludwig


#6

Moin,

ups, da hatte ich eine Zeile vergessen (war Copy & Paste aus meinem eigenen Wiki), die die Variable keytab setzt:

keytab=/var/lib/samba/private/dns.keytab

Anschließend mit rm… fortfahren.

Gruß,
mosu


#7

Ach ja, ich empfehle wirklich, genau meinen Befehl zu nehmen, und nicht etwa Teile wie $(hostname) manuell zu ersetzen. Warum? Weil Groß-/Kleinschreibung bei Kerberos wichtig ist. Und die automatisierten Prozesse, die die dns.keytab nutzen, greifen immer auf den abgefragten Hostnamen zu, und das muss nicht unbedingt derjenige sein, von dem wir Menschen denken, dass er es ist (backup vs BACKUP).


#8

Hallo Mosu,

mit der Deklaration der Variable im Vorfeld läuft der Befehl durch, der Fehler ist jetzt ein anderer:

Fehler traten auf bei der Ausführung von `kinit` oder `nsupdate`. `nsupdate` Prüfung für die Domänne DOMAIN.COM ist fehlgeschlagen.

Ein Kinit Ticket wird problemslos erstellt, was nicht funktioniert ist nsupdate.


#9

Hallo zusammen,

ich konnte das Problem nun lösen und zwar hat das folgende Vorgehen geholfen aus dem Samba Wiki

  1. Samba DNS Backend umstellen auf Samba Intern.
    samba_upgradedns --dns-backend=SAMBA_INTERNAL

  2. Samba DNS Backend wieder zurück auf BIND stellen.
    samba_upgradedns --dns-backend=BIND9_DLZ

  3. Samba DNS aktualisieren.
    samba_dnsupdate --verbose --all-names

Nun lief alles fehlerfrei durch und auch die Meldung beim Sytemcheck ist weg.

Schöne Grüße,
Ludwig