Abschnitt 15.4.3 im Buch beschreibt, wie man über die grafischen Verwaltungswerkzeuge im AD ein Benutzerobjekt anlegen kann und Abschnitt 15.5.2 zeigt dann, wie das alternativ mit LDAP-Mitteln von Linux aus geht.
Häufig benötigt man solche Benutzerobjekte für
technische Accounts, beispielsweise um unter Linux nicht interaktiven
Programmen (wie Daemons oder Batchprozessen) Kerberos-Identitäten
zuzuordnen. Die Tickets stellt man solchen Programmen dann über
Tools wie kstart
zur Verfügung, die dazu allerdings eine Keytab
mit den Langzeitschlüsseln des Benutzerobjekts benötigen
(siehe Abschnitt 10.6.2). Alternativ kann man anstelle von kstart
auch kinit
mit der Option -k
einsetzen, muss dann allerdings mit
geringerem Funktionsumfang auskommen. Da die Keytab hier nicht
für einen Dienst eingesetzt wird spricht man von einer
Client-Keytab.
Auf den Seiten 316 und 317 findet man eine Beschreibung, wie sich
Keytabs grundsätzlich mit dem MIT-eigenen Werkzeug ktutil
erzeugen lässt. Selbstverständlich geht das auch mit
dem Microsoft-Tool ktpass.exe
(siehe Abschnitt 15.4.5). Eine
wesentlich komfortablere Alternative stellt msktutil
(https://code.google.com/p/msktutil) dar, um das es im vorliegenden
Abschnitt gehen soll.
Im Folgenden werden zwei Szenarien betrachtet. Ziel ist jeweils, ein
Benutzerobjekt mit dem Namen techuser01
(Kerberos Principal:
techuser01@ADS.EXAMPLE.COM
) anzulegen und dessen Keys in der Datei
/etc/krb5.keytab.techuser01
zu hinterlegen.
Gehen Sie wie in Abschnitt 15.4.3 beschrieben vor, um den Account für
techuser01
anzulegen. Dabei setzen Sie ein initiales Passwort (im
Beispiel ist das Start123
), das aber bei der ersten Anmeldung geändert werden muss.
Unter Linux führt folgendes Kommando die Passwortänderung durch und erzeugt dabei die Keytab:
# msktutil --update \
--use-service-account \
--account-name techuser01 \
--old-account-password Start123 \
--keytab /etc/krb5.keytab.techuser01
Man benötigen dazu keine weiteren Berechtigungen im AD, da dort
lediglich das Passwort geändert wird. Die Kenntnis des alten
Passwortes genügt. Ein wichtiger Punkt: an die
Passwortrichtlinien des AD muss man sich hier halten. Das betrifft
nicht die Komplexität, denn msktutil
erzeugt zufällige
Passwörter, die allen Komplexitätsanforderungen standhalten
sollten. Allerdings ist die Richtlinie Minimales Kennwortalter
(siehe Abbildung 15.16 auf Seite 309) hier zu beachten. Verwendet man
einen existierendes Benutzerobjekt mit einem bekanntem Passwort, das
nicht geändert werden muss, das aber vor kurzem geändert
wurde, dann muss man gegebenenfalls warten, bis dieses wieder
geändert werden darf. Das könnte eine Weile dauern, der
Default ist ein Tag.
Möchte man sich nicht mit diesen Richtlinien herumschlagen, so
kann man das Passwort einfach neu setzen anstatt es zu ändern.
Dazu benötigt man aber einen administrativen AD-Account (im
folgenden Beispiel Administrator
), für den man sich vorab mit
kinit
Tickets besorgen muss:
# kinit Administrator
# msktutil --update \
--use-service-account \
--account-name techuser01 \
--user-creds-only \
--keytab /etc/krb5.keytab.techuser01
# kdestroy
Das letzte Beispiel würde den Account techuser01
auch anlegen,
falls dieser noch nicht existiert. Das neue Benutzerobjekt würde dabei
an der Default-Stelle im AD landen (üblicherweise: cn=Users). Ein
etwas allgemeingültigeres Beispiel zeigt die folgende
Kommandozeile, bei der die Lage des neuen Benutzerobjekts auch gleich
mit --base
angegeben wird:
# kinit Administrator
# msktutil --create \
--use-service-account \
--account-name techuser01 \
--base cn=Service Accounts,ou=Unix \
--user-creds-only \
--keytab /etc/krb5.keytab.techuser01
# kdestroy
Die erzeugte Keytab kann nun einfach wie folgt getestet werden:
# kinit -k -t /etc/krb5.keytab.techuser01 techuser01@ADS.EXAMPLE.COM