Il s'agit de la commande msktutil qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks à l'aide de l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
msktutil - récupère et gère les keytabs kerberos dans un environnement Active Directory
SYNOPSIS
msktutil [commande 1] [commande 2] [commande 3] ...
DESCRIPTION
msktutil est un client keytab Unix/Linux pour les environnements Microsoft Active Directory. Cette
programme est capable de créer des comptes dans Active Directory, en ajoutant des principaux de service à
ces comptes et en créant des fichiers keytab locaux afin que les services Kerberizied puissent utiliser
Active Directory en tant que domaine Kerberos. msktutil créera et gérera les comptes de machine en
défaut. L'option --use-service-account permet à msktutil d'opérer sur les comptes de service.
msktutil nécessite que les bibliothèques clientes Kerberos soient correctement installées et configurées
pour utiliser Active Directory comme domaine.
Chaque fois qu'un principal est ajouté ou qu'un keytab est mis à jour, le mot de passe secret du
le compte correspondant est modifié. Par défaut, le mot de passe n'est pas stocké, il doit donc
être réinitialisé à chaque exécution de msktutil. Toutes les entrées dans le keytab seront automatiquement
mis à jour chaque fois que le mot de passe est réinitialisé. Les entrées précédentes seront laissées dans le keytab,
les sessions utilisant les anciennes versions de clés ne seront donc pas interrompues. Ce comportement est similaire au
façon dont les hôtes Windows gèrent les changements de mot de passe de la machine.
POUVOIRS
Il existe deux méthodes courantes d'utilisation de ce programme. La première consiste à « kiniter » avec
Des informations d'identification de type administrateur qui ont l'autorisation de créer des objets informatiques dans votre
Serveur Active Directory. Si vous invoquez le programme avec de telles informations d'identification, vous pouvez créer
un nouveau compte d'ordinateur ou un compte de service à partir de zéro.
La seconde consiste à pré-créer les comptes avec ces informations d'identification, puis à appeler msktutil
sur une machine sans aucune autorisation spéciale. Lorsque le compte ou le service informatique
compte existe déjà, msktutil tentera de s'authentifier en tant que compte en utilisant soit
le keytab existant, ou si cela échoue, un mot de passe par défaut. Lorsque ce mot de passe par défaut est
non spécifié avec l'option --old-account-password, msktutil utilisera la valeur par défaut
mot de passe machine. Il modifiera ensuite le mot de passe et mettra à jour le keytab de manière appropriée.
C'est généralement l'option la plus pratique lorsque vous joignez de nombreux ordinateurs au domaine.
Pour pré-créer un compte d'ordinateur, vous pouvez utiliser les utilisateurs et ordinateurs Active Directory
GUI, sélectionnez "nouvel ordinateur" dans le menu contextuel, et tapez le nom DNS court, puis
faites un clic droit sur l'objet nouvellement créé et sélectionnez "Réinitialiser le compte" pour définir le mot de passe sur
la valeur par défaut. Une autre alternative consiste à invoquer msktutil avec --precreate
argument. Les deux méthodes accomplissent la même chose.
Pour pré-créer un compte de service, vous pouvez utiliser l'interface graphique Utilisateurs et ordinateurs Active Directory,
sélectionnez "nouvel utilisateur" dans le menu contextuel, remplissez toutes les données requises, définissez le mot de passe
à une valeur spécifique et utilisez setspn.exe pour définir le(s) nom(s) de service souhaité(s). Tu
pouvez également sélectionner « doit changer le mot de passe à la prochaine connexion ».
MOT DE PASSE EXPIRATION
Sachez que les machines Windows vont, par défaut, changer automatiquement de compte
mot de passe tous les 30 jours, et donc de nombreux domaines ont une fenêtre d'expiration de mot de passe de 90 jours, après
lequel votre keytab cessera de fonctionner. Il y a deux façons de traiter cela :
a) (Préférable) : assurez-vous que vous exécutez une tâche cron quotidienne pour exécuter msktutil --auto-update,
qui changera le mot de passe automatiquement 30 jours après sa dernière modification et mettra à jour
le keytab.
b) (Pas préféré) : désactiver l'expiration du mot de passe pour le compte via le --dont-expire-password
option (ou sinon définir l'indicateur DONT_EXPIRE_PASSWORD dans userAccountControl dans AD).
MOT DE PASSE POLITIQUE QUESTIONS
Cette section s'applique uniquement à msktutil --use-service-account.
Alors que les mots de passe des comptes d'ordinateurs peuvent être modifiés à tout moment, les comptes de service sont
comptes et votre domaine Active Directory peuvent avoir des politiques de mot de passe spéciales pour ces
comptes utilisateur. Par exemple, « l'âge minimum du mot de passe » est généralement défini sur 1 jour, ce qui signifie que
vous devrez attendre que ce temps s'écoule jusqu'à ce que vous puissiez appeler msktutil --update --use-
compte-service.
AUTRES NOTES
Contrairement à d'autres implémentations Kerberos, Active Directory n'a qu'une seule clé pour l'ensemble de
les principaux associés à un compte. Donc, si vous créez un service HTTP/nom d'hôte
principal, il partagera la même clé que le principal hôte/nom d'hôte. Si tu veux
isoler (en termes de sécurité) différents principaux de service, vous souhaiterez peut-être créer un
compte de service pour eux (avec --use-service-account) et un fichier keytab séparé (avec
--keytab).
Notez également : kinit -k 'host/computername' *ne fonctionnera pas*, par défaut, même s'il s'agit d'un
principal de service valide existant dans votre keytab. Active Directory ne vous permet pas de
s'authentifier en tant que principal du service, donc ne l'utilisez pas comme test pour savoir si le service
le directeur travaille. Si vous souhaitez réellement vous authentifier en tant qu'utilisateur du compte d'ordinateur,
kinit -k 'nom_ordinateur$' à la place.
Si vous avez vraiment besoin de pouvoir vous authentifier en tant que « hôte/nom d'ordinateur », vous pouvez également utiliser le
--upn argument pour définir l'attribut userPrincipalName (nécessite généralement un administrateur
informations d'identification, pas les informations d'identification du compte d'ordinateur). 'nom_ordinateur$' et la valeur de
userPrincipalName sont traités comme des noms de compte valides à kiniter.
msktutil utilisera des opérations LDAP kerberisées pour communiquer avec les contrôleurs de domaine. Pour obtenir un
Ticket de service LDAP, le service DNS sera utilisé pour construire les contrôleurs de domaine LDAP
nom principal. Si DNS est mal configuré, cette construction peut échouer. Pour contourner
ce problème, vous pouvez spécifier le nom DNS complet de votre contrôleur de domaine avec
l'option --server et utilisez en plus l'option --no-reverse-lookups.
Samba (www.samba.org) fournit la commande net qui peut être utilisée pour gérer les keytabs kerberos
également. L'utilisation de msktutil et de commandes telles que "net ads join" ou "net ads keytab" ensemble peut
conduire à des ennuis. Avec l'option --set-samba-secret, msktutil peut être utilisé comme
remplacement du filet.
Active Directory inclut des données d'autorisation (par exemple, des informations sur les appartenances à des groupes) dans
Billets Kerberos. Cette information est appelée PAC et peut conduire à des billets de très grande taille.
Les services HTTP en particulier sont connus pour produire des échecs si cette taille dépasse le HTTP
taille de l'en-tête. Si votre service n'utilise pas ces informations PAC (ce qui est vrai pour
la plupart des services Unix/Linux), vous pouvez simplement le désactiver avec l'option --no-pac.
MODES
-v, --version
Affiche les informations de version
--help Affiche un message d'aide
-c, --créer
Crée un keytab pour l'hôte actuel ou un compte de service donné. Équivalent à
--update --service hôte.
-f, --flush
Vide tous les principaux pour le nom de compte actuel du keytab, et rend
modifications correspondantes de la machine ou du compte de service.
-u, --mise à jour
Force un changement de mot de passe et met à jour toutes les entrées de principal de service associées à partir du
Attributs servicePrincipalName et userPrincipalName. Met à jour dNSDomainName pour
comptes d'ordinateur et met toujours à jour les attributs msDS-supportedEncryptionTypes avec
valeurs actuelles et applique les autres modifications spécifiées.
--mise à jour automatique
Vérifie si le mot de passe date d'au moins 30 jours (à partir de l'attribut pwdLastSet) et
que l'expiration du mot de passe n'est pas désactivée pour le compte. Si ces conditions sont
rencontré, agit comme --update. Sera également mis à jour si le keytab n'a pas réussi à
s'authentifier mais le mot de passe par défaut a fonctionné (par exemple après avoir réinitialisé le compte dans
UN D). Sinon, quitte sans rien faire (même si les options de modification des attributs
sont donnés). Cette option est destinée à être utilisée à partir d'un crontab quotidien pour s'assurer que
le mot de passe est changé régulièrement.
--précréer
Pré-créez (ou mettez à jour) un compte pour l'hôte donné avec le mot de passe par défaut. Fait
ne pas utiliser ou mettre à jour le keytab local. Requiert l'argument -h ou --computer-name. Implique
--user-creds-only. Nécessite généralement des informations d'identification d'administrateur.
CONNEXION/INSTALLATION OPTIONS
-b, --base
Spécifie une base LDAP relative lors de la création d'un nouveau compte. Par exemple,
en spécifiant '-b OU=Unix' pour un ordinateur nommé SERVER dans un domaine Active Directory
example.com créerait un compte d'ordinateur dans le chemin LDAP :
CN=SERVEUR,OU=Unix,DC=EXEMPLE,DC=COM. Cette option peut également être spécifiée en définissant
la variable d'environnement MSTKUTIL_LDAP_BASE à la valeur souhaitée.
Si elle n'est pas spécifiée, la valeur par défaut est lue depuis AD (et la valeur par défaut là-bas, à moins que
modifié par un administrateur, est CN=Ordinateurs pour les comptes de machine et CN=Utilisateurs pour le service
comptes).
--Nom de l'ordinateur
Spécifie que le nouveau compte doit utiliser pour le nom du compte d'ordinateur et
le nom du compte SAM. Notez qu'un '$' sera automatiquement ajouté au SAM
Nom du compte. Par défaut le nom d'hôte de la machine, à l'exclusion du domaine, avec des points
remplacé par des tirets.
C'est-à-dire : si le domaine est EXAMPLE.COM et que le nom d'hôte est FOO.EXAMPLE.COM, le
le nom d'ordinateur par défaut est FOO. Si le nom d'hôte est FOO.BAR.EXAMPLE.COM, la valeur par défaut
le nom de l'ordinateur est FOO-BAR.
--nom du compte
Un alias pour --computer-name qui peut être utilisé lors de l'utilisation de comptes de service.
Notez qu'un « $ » ne sera pas automatiquement ajouté au nom du compte SAM lorsque
en utilisant des comptes de service.
--old-account-password
Utilisez le mot de passe du compte fourni pour l'authentification. Ceci est utile si le keytab
n'existe pas encore mais le mot de passe du compte ordinateur est connu. Cette
le mot de passe sera modifié par msktutil afin de créer ou de mettre à jour le keytab
--le mot de passe
Spécifiez le nouveau mot de passe du compte au lieu d'en générer un aléatoirement. Prendre en compte
paramètres de stratégie de mot de passe lors de la définition de la chaîne.
-h, --hostname
Remplace le nom d'hôte actuel à utiliser pour être . Si cela n'est pas spécifié,
le nom d'hôte local sera utilisé. Notez que le service de recherche de nom local sera
pour qualifier et résoudre les noms en noms pleinement qualifiés, y compris un domaine
extension. Cela affecte le nom d'hôte par défaut pour les autres arguments, et le nom par défaut
Nom de l'ordinateur. Le nom d'hôte est également utilisé pour définir l'attribut dNSDomainName.
-k, --keytab
Spécifie d'utiliser pour le keytab. Cette option peut également être spécifiée par
définir la variable d'environnement MSKTUTIL_KEYTAB sur le nom du keytab souhaité
déposer. Ce keytab est à la fois lu, afin de s'authentifier en tant que
compte, et écrit sur, après la mise à jour du mot de passe du compte. Défaut:
/etc/krb5.keytab --keytab-auth-as Spécifie quel nom principal nous devrions
essayez d'utiliser, lorsque nous nous authentifient à partir d'un keytab. Normalement, msktutil essaiera d'utiliser
le nom du compte ou le principal de l'hôte actuel. Si cette option est
spécifié, à la place, msktutil essaiera d'utiliser le nom principal donné en premier, et
ne revient au comportement par défaut que si nous ne parvenons pas à nous authentifier avec le
Nom. Cette option peut être utile si vous ne connaissez pas le mot de passe actuel du
compte concerné, n'avez pas de keytab avec le principal du compte, mais vous avez
un keytab avec un principal de service associé à ce compte.
--serveur
Spécifie d'utiliser en tant que contrôleur de domaine. Cela affecte à la fois kerberos et
opérations ldap. Le serveur peut également être spécifié en définissant le MSKTUTIL_SERVER
variable d'environnement. Par défaut : recherché dans DNS à partir du nom de domaine.
--server-derrière-nat
Lorsque le serveur est derrière un pare-feu qui effectue la traduction d'adresses réseau,
La validation des messages KRB-PRIV échoue. C'est parce que l'adresse IP dans le
la partie chiffrée du message ne peut pas être réécrite dans le processus NAT. Cette option
ignore l'erreur résultante pour le processus de changement de mot de passe, permettant aux systèmes
en dehors du pare-feu NAT pour rejoindre le domaine géré par les serveurs à l'intérieur du NAT
pare-feu.
--Royaume
Spécifie d'utiliser comme royaume de Kerberos. Par défaut : utilisez le default_realm de
section [libdefaults] de krb5.conf.
--placer
Recherchez et utilisez le contrôleur de domaine dans un site AD spécifique. Cette option est ignorée si
l'option --server est utilisée.
-N, --pas de recherche inversée
N'essayez pas de canoniser le nom du contrôleur de domaine via DNS reverse
recherches. Vous devrez peut-être le faire si votre client ne peut pas résoudre les enregistrements PTR pour
un contrôleur de domaine ou vos serveurs DNS stockent des enregistrements PTR incorrects. Par défaut : Utiliser
Recherches DNS inversées pour canoniser les noms de DC.
--user-creds-only
N'essayez pas de vous authentifier avec un keytab : utilisez uniquement les informations d'identification de l'utilisateur (de par exemple
kinite). Vous devrez peut-être le faire pour modifier certains attributs qui nécessitent
Informations d'identification de l'administrateur (description, userAccountControl, userPrincipalName, dans un
configuration AD par défaut).
--auto-update-interval
Nombre de quand --auto-update changera le mot de passe du compte. Par défaut à
30 jours.
--verbeux
Active les messages d'état détaillés. Peut être spécifié plus d'une fois pour obtenir LDAP
débogage.
OBJET PARAMETRAGE TYPE/ATTRIBUT OPTIONS
--use-service-compte
Créez et gérez des comptes de service au lieu de comptes de machine.
--délégation
Permet au compte d'être approuvé pour la délégation. Cette option peut également être activée
en définissant la variable d'environnement MSKTUTIL_DELEGATION. Cela modifie le
attribut userAccountControl. Nécessite généralement des informations d'identification d'administrateur.
--la description
Définit l'attribut de description du compte sur le texte donné (ou supprime si le texte est
''). Nécessite généralement des informations d'identification d'administrateur.
--disable-délégation
Désactive le compte d'être approuvé pour la délégation. Cela modifie le
attribut userAccountControl. Nécessite généralement des informations d'identification d'administrateur.
--disable-no-pac
Désactive l'indicateur qui désactive les KDC incluant un PAC dans le service de la machine
des billets. Cela modifie l'attribut userAccountControl. Nécessite généralement
informations d'identification de l'administrateur.
--dont-expire-mot de passe
Définit le bit DONT_EXPIRE_PASSSWORD dans l'attribut userAccountControl, qui
désactive l'expiration du mot de passe pour ce compte. Si vous n'exécutez pas de tâche cron pour
faites pivoter périodiquement le keytab, vous voudrez définir ce drapeau. Nécessite généralement
informations d'identification de l'administrateur.
--do-expire-mot de passe
Désactive l'indicateur DONT_EXPIRE_PASSWORD dans l'attribut userAccountControl.
Nécessite généralement des informations d'identification d'administrateur.
--enctypes
Définit les types de chiffrement pris en charge dans le champ msDs-supportedEncryptionTypes.
Vous pouvez OU ensemble les valeurs suivantes :
0x1=des-cbc-crc
0x2=des-cbc-md5
0x4=rc4-hmac-md5
0x8 = aes128-cts-hmac-sha1
0x10 = aes256-cts-hmac-sha1
Cette valeur est utilisée pour déterminer les types de cryptage que AD proposera d'utiliser, et
quels types de cryptage mettre dans le keytab.
Si la valeur est définie sur 0x3 (c'est-à-dire : uniquement les deux types DES), il tente également de
définissez l'indicateur DES uniquement dans userAccountControl.
Remarque : Windows 2008R2 refuse d'utiliser DES par défaut ; vous ne pouvez donc pas utiliser uniquement DES
clés à moins que vous n'ayez d'abord activé le cryptage DES pour votre domaine. Versions récentes
des clients MIT Kerberos refusent également d'utiliser DES par défaut.
Par défaut : définit la valeur sur 0x1C : c'est-à-dire, utilisez n'importe quoi sauf DES.
--allow-faible-crypto
Active l'utilisation des clés DES pour l'authentification. C'est l'équivalent du MIT
Paramètre krb5.conf allow_weak_crypto.
--pas de pac
Spécifie que les tickets de service pour ce compte ne doivent pas contenir de PAC. Cette
modifie l'attribut userAccountControl. Voir l'article de la base de connaissances Microsoft
#832575 pour plus de détails. Cette option peut également être spécifiée en définissant le
Variable d'environnement MSTKUTIL_NO_PAC. Nécessite généralement un administrateur
lettres de créance.
-s, --service
Spécifie un principal de service à ajouter au compte (et donc keytab, si
approprié). Le service est de la forme / . Si le nom d'hôte est
omis, suppose le nom d'hôte actuel. Peut être spécifié plusieurs fois.
--remove-service
Spécifie un principal de service à supprimer du compte (et keytab si
approprié).
--upn
Définit l'attribut userPrincipalName du compte d'ordinateur ou du compte de service sur
être .
Le userPrincipalName peut être utilisé en plus du sAMAccountName (par ex.
nom_ordinateur$ pour les comptes d'ordinateur) pour kinit.
peut être fourni sous une forme abrégée (par exemple host/hostname.example.com) ou dans
forme longue (par exemple hôte/[email protected]). En bref la valeur par défaut
domaine sera automatiquement ajouté.
Cette opération nécessite des privilèges d'administrateur.
--set-samba-secret
Utilisez la commande net changessecretpw de Samba pour définir localement le mot de passe du compte machine
dans le fichier secrets.tdb de Samba. $PATH doit inclure la commande net de Samba. Samba doit
être configuré de manière appropriée.
--non-tls
N'utilisez pas TLS sur LDAP. Le trafic LDAP dans Active Directory est déjà chiffré par
SASL/GSSAPI, donc pas besoin de TLS.
EXEMPLES
Pour les utilisateurs non privilégiés, les appels les plus courants sont :
msktutil --update --service hôte --service HTTP
Cela mettra à jour un compte d'ordinateur dans Active Directory avec un nouveau mot de passe, écrira un
new keytab, et assurez-vous qu'il contient à la fois les principaux de service "host" et "HTTP" pour
le nom d'hôte.
msktutil -- mise à jour automatique
Ceci est utile dans une tâche cron quotidienne pour vérifier et faire pivoter le mot de passe automatiquement lorsque
il a 30 jours.
Pour les utilisateurs disposant de privilèges d'administrateur dans AD, quelques utilisations courantes :
msktutil --create --service hôte --service HTTP
Cela créera un compte d'ordinateur dans Active Directory avec un nouveau mot de passe, écrira un
new keytab, et assurez-vous qu'il contient à la fois les principaux de service "host" et "HTTP" pour
le nom d'hôte.
msktutil --precreate --host ordinateur1.example.com
Cela pré-créera un compte pour ordinateur1 avec le mot de passe par défaut en utilisant votre
crédits. Cela peut être fait sur un hôte central, par exemple pour scripter l'ajout de plusieurs
hôtes. Vous pouvez ensuite utiliser msktutil --create sur les hôtes eux-mêmes (sans
informations d'identification) pour les joindre au domaine.
msktutil --host afs --service afs --enctypes 0x03
Cela créera un principal afs/cell.name@REALM et associera ce principal à un
compte informatique appelé 'afs'. Le principal sera marqué comme DES uniquement, ce qui est
requis pour AFS.
msktutil --create --use-service-account --service HTTP/hostname.example.com --keytab /etc/apache/krb5.keytab --account-name srv-http --no-pac
Cela créera un principal HTTP/hostname.example.com@REALM et l'associera
principal avec un compte de service appelé 'srv-http'. Les clés Kerberos correspondantes seront
écrit dans le fichier keytab /etc/apache/krb5.keytab. La taille des tickets Kerberos pour cela
le service restera petit car aucune information PAC ne sera incluse.
msktutil --create --service hôte/nom d'hôte --service hôte/nom d'hôte.example.com --set-samba-secret --enctypes 0x4
Cela créera un compte d'ordinateur dans Active Directory compatible avec Samba.
La commande crée un nouveau mot de passe, écrit un nouveau keytab et s'assure qu'il inclut
à la fois « hôte/nom d'hôte » et « hôte/nom d'hôte.exemple.com » en tant que principaux de service (ce qui est
équivalent à ce que setspn.exe -R ferait sous Windows). Le nouveau mot de passe de l'ordinateur sera
stocké dans la base de données secrets.tdb de Samba pour assurer l'interopérabilité avec Samba. Comme Samba
(version 3) ne prend en charge que les tickets Kerberos cryptés par arcfour, l'option --enctypes doit être
utilisé pour sélectionner uniquement ce type de cryptage.
Utiliser msktutil en ligne à l'aide des services onworks.net
