これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド msktutil です。
プログラム:
NAME
msktutil - Active Directory 環境で kerberos キータブを取得して管理します
SYNOPSIS
msktutil [コマンド 1] [コマンド 2] [コマンド 3] ...
DESCRIPTION
msktutil は、Microsoft Active Directory 環境用の Unix/Linux キータブ クライアントです。 これ
プログラムは、Active Directory にアカウントを作成し、サービス プリンシパルを追加できます。
これらのアカウントを取得し、kerberized サービスが利用できるようにローカルのキータブ ファイルを作成します。
Kerberos レルムとしての Active Directory。 msktutil は、マシン アカウントを作成および管理します。
デフォルト。 --use-service-account オプションを使用すると、msktutil はサービス アカウントを操作できます。
msktutil では、Kerberos クライアント ライブラリが正しくインストールされ、構成されている必要があります。
Active Directory をレルムとして使用します。
プリンシパルが追加されるかキータブが更新されるたびに、
対応するアカウントが変更されました。 デフォルトでは、パスワードは保存されないため、
msktutil が実行されるたびにリセットされます。 キータブのすべてのエントリは自動的に
パスワードがリセットされるたびに更新されます。 以前のエントリはキータブに残ります。
そのため、古いキー バージョンを使用するセッションは中断されません。 この動作は、
Windows ホストがマシンのパスワード変更を処理する方法。
クレデンシャル
このプログラムを使用するには、XNUMX つの一般的な方法があります。 最初は「kinit」することです
でコンピューター オブジェクトを作成する権限を持つ管理者のような資格情報
アクティブ ディレクトリ サーバー。 そのような資格情報を使用してプログラムを呼び出すと、作成できます
新しいコンピューター アカウントまたはサービス アカウントをゼロから作成します。
XNUMX つ目は、そのような資格情報を使用してアカウントを事前に作成してから、msktutil を呼び出すことです。
特別な権限のないマシン上。 コンピューター アカウントまたはサービス
アカウントが既に存在する場合、msktutil はいずれかを使用してそのアカウントとして認証を試みます。
既存のキータブ、またはそれが失敗した場合はデフォルトのパスワード。 そのデフォルトのパスワードが
オプション --old-account-password で指定されていない場合、msktutil はデフォルトを使用します
マシンのパスワード。 次に、パスワードを変更し、キータブを適切に更新します。
これは通常、多数のコンピューターをドメインに参加させる場合により便利なオプションです。
コンピュータ アカウントを事前に作成するには、Active Directory ユーザーとコンピュータを使用できます。
GUI で、右クリック メニューから [新しいコンピュータ] を選択し、短い DNS 名を入力してから、
新しく作成されたオブジェクトを右クリックし、「アカウントのリセット」を選択してパスワードを設定します
デフォルト値。 もう XNUMX つの方法は、 --precreate を使用して msktutil を呼び出すことです。
口論。 どちらの方法でも同じことを達成できます。
サービス アカウントを事前に作成するには、Active Directory ユーザーとコンピューターの GUI を使用できます。
右クリックメニューから「新しいユーザー」を選択し、必要なすべてのデータを入力し、パスワードを設定します
特定の値に変更し、setspn.exe を使用して目的の servicePrincipalName を設定します。 あなた
「次回のログオン時にパスワードを変更する必要がある」を選択することもできます。
PASSWORD 期限切れ
デフォルトでは、Windows マシンは自動的にアカウントを変更することに注意してください。
パスワードは 30 日ごとに更新されるため、多くのドメインには 90 日間のパスワード有効期限があります。
キータブが機能しなくなります。 これに対処するには、次の XNUMX つの方法があります。
a) (推奨): msktutil --auto-update を実行する cron ジョブを毎日実行していることを確認します。
これにより、パスワードが最後に変更されてから 30 日後に自動的に変更され、更新されます
キータブ。
b) (非推奨): --dont-expire-password を介してアカウントのパスワードの有効期限を無効にします
オプション (または AD の userAccountControl で DONT_EXPIRE_PASSWORD フラグを設定)。
PASSWORD ポリシー 問題
このセクションは、msktutil --use-service-account にのみ適用されます。
マシン アカウントのパスワードはいつでも変更できますが、サービス アカウントはユーザー
アカウントと Active Directory ドメインには、それらのアカウント用の特別なパスワード ポリシーがある場合があります。
ユーザーアカウント。 たとえば、「最小パスワード有効期間」は通常 1 日に設定されます。つまり、
msktutil --update --use- を呼び出すまで、その時間が経過するのを待つ必要があります。
サービス アカウント。
その他 注意事項
他の kerberos 実装とは異なり、Active Directory にはすべてのサーバーに対して XNUMX つのキーしかありません。
アカウントに関連付けられたプリンシパル。 したがって、HTTP/ホスト名サービスを作成すると
プリンシパルは、ホスト/ホスト名プリンシパルと同じキーを共有します。 あなたがしたい場合は
(セキュリティ的に) 異なるサービス プリンシパルを分離するには、専用のサービス プリンシパルを作成することをお勧めします。
それらのサービス アカウント (--use-service-account を使用) と別のキータブ ファイル (を使用)
--keytab)。
また、注意してください: kinit -k 'host/computername' *デフォルトでは動作しません*。
キータブに存在する有効なサービス プリンシパル。 Active Directory では、次のことはできません。
サービス プリンシパルとして認証するため、サービスが
校長が働いています。 実際にコンピューターアカウントのユーザーとして認証したい場合は、
代わりに kinit -k 'computername$' を使用してください。
「host/computername」として認証できるようにする必要がある場合は、
--upn 引数を使用して userPrincipalName 属性を設定します (通常は管理者が必要です)。
資格情報であり、コンピューター アカウントの資格情報ではありません)。 「computername$」と値の両方
userPrincipalName は、kinit として有効なアカウント名として扱われます。
msktutil は、kerberized LDAP 操作を使用してドメイン コントローラーと通信します。 取得するには
LDAP サービス チケット。DNS サービスを使用してドメイン コントローラーの LDAP を構築します。
校長名。 DNS が誤って構成されている場合、この構築は失敗する可能性があります。 回避するには
この問題では、ドメイン コントローラの完全修飾 DNS 名を次のように指定できます。
--server オプションを使用し、さらに --no-reverse-lookups オプションを使用します。
Samba (www.samba.org) は、kerberos キータブの管理に使用できる net コマンドを提供します。
同じように。 msktutil と「net ads join」や「net ads keytab」などのコマンドを一緒に使用すると、
トラブルにつながります。 --set-samba-secret オプションを使用すると、msktutil を
ネットの交換。
Active Directory には、承認データ (グループ メンバーシップに関する情報など) が含まれています。
ケルベロスのチケット。 この情報は PAC と呼ばれ、チケット サイズが非常に大きくなる可能性があります。
特に HTTP サービスは、そのサイズが HTTP を超えると失敗することが知られています。
ヘッダーサイズ。 サービスがその PAC 情報を利用しない場合 (これは、
ほとんどの Unix/Linux サービス) --no-pac オプションで無効にすることができます。
モード
-v、-version
バージョン情報を表示します
--help ヘルプ メッセージを表示します
-c、--create
現在のホストまたは特定のサービス アカウントのキータブを作成します。 に相当
--update --service ホスト。
-f、--flush
キータブから現在の accountname のすべてのプリンシパルをフラッシュし、
マシンまたはサービス アカウントへの対応する変更。
-u、-update
パスワードの変更を強制し、関連するすべてのサービス プリンシパル エントリを
servicePrincipalName および userPrincipalName 属性。 の dNSDomainName を更新します
マシン アカウントを更新し、msDS-supportedEncryptionTypes 属性を常に更新します。
現在の値、および指定された他の変更を適用します。
- 自動更新
パスワードが少なくとも 30 日経過しているかどうかを確認します (pwdLastSet 属性から)。
アカウントでパスワードの有効期限が無効になっていないこと。 それらの条件があれば
--update のように動作します。 キータブが失敗した場合にも更新されます
認証しますが、デフォルトのパスワードは機能しました(たとえば、アカウントをリセットした後)
広告)。 それ以外の場合は、何もせずに終了します (属性を変更するオプションがあったとしても)
与えられます)。 このオプションは、毎日の crontab から使用して、
パスワードは定期的にローテーションされます。
--事前作成
デフォルトのパスワードを使用して、指定されたホストのアカウントを事前に作成 (または更新) します。 する
ローカルのキータブを使用または更新しないでください。 -h または --computer-name 引数が必要です。 示す
--user-creds-only。 通常、管理者の資格情報が必要です。
接続・設定 OPTIONS
-b, --base
新しいアカウントを作成するときに相対 LDAP ベースを指定します。 例えば、
Active Directory ドメイン内の SERVER という名前のコンピューターに「-b OU=Unix」を指定する
example.com は、LDAP パスにコンピューター アカウントを作成します。
CN=サーバー、OU=Unix、DC=例、DC=COM。 このオプションは設定で指定することもできます
MSKTUTIL_LDAP_BASE 環境変数を目的の値に変更します。
指定されていない場合、デフォルト値は AD から読み込まれます
管理者によって変更されました。マシン アカウントの CN=Computers とサービスの CN=Users です。
アカウント)。
- コンピュータネーム
新しいアカウントが使用する必要があることを指定しますコンピュータのアカウント名と
SAM アカウント名。 「$」が自動的に SAM に追加されることに注意してください
アカウント名。 デフォルトはマシンのホスト名 (レルムを除く) で、ドットが付いています
ダッシュに置き換えられます。
つまり、レルムが EXAMPLE.COM で、ホスト名が FOO.EXAMPLE.COM の場合、
デフォルトのコンピュータ名は FOO です。 ホスト名が FOO.BAR.EXAMPLE.COM の場合、デフォルト
コンピューター名は FOO-BAR です。
- アカウント名
サービス アカウントで操作するときに使用できる --computer-name のエイリアス。
SAM アカウント名に「$」が自動的に追加されないことに注意してください。
サービス アカウントの使用。
-- 古いアカウントのパスワード
指定されたアカウント パスワードを認証に使用します。 これは、キータブが
まだ存在していませんが、コンピュータ アカウントのパスワードはわかっています。 これ
キータブを作成または更新するために、パスワードは msktutil によって変更されます
- パスワード
ランダムなパスワードを生成する代わりに、新しいアカウント パスワードを指定します。 考えます
文字列を定義するときのパスワード ポリシー設定。
-h, --ホスト名
現在使用されているホスト名をオーバーライドします。 . これが指定されていない場合は、
ローカル ホスト名が使用されます。 ローカル名検索サービスは
名前を修飾して、ドメインを含む完全修飾名に解決する
拡大。 これは、他の引数のデフォルトのホスト名に影響します。
コンピュータネーム。 ホスト名は、dNSDomainName 属性の設定にも使用されます。
-k, --keytab
使用することを指定しますキータブ用。 このオプションは、
MSKTUTIL_KEYTAB 環境変数を目的のキータブの名前に設定する
ファイル。 このキータブは、指定されたものとして認証するために、両方から読み取られます
アカウントのパスワードを更新した後、アカウントに書き込まれ、書き込まれます。 デフォルト:
/etc/krb5.keytab --keytab-auth-as 必要なプリンシパル名を指定します
キータブから認証するときに使用してみてください。 通常、 msktutil は使用しようとします
現在のホストのアカウント名またはホスト プリンシパル。 このオプションが
代わりに、msktutil は指定されたプリンシパル名を最初に使用しようとします。
指定された認証に失敗した場合にのみ、デフォルトの動作にフォールバックします
名前。 このオプションは、現在のパスワードがわからない場合に役立ちます。
関連するアカウント、アカウントプリンシパルのキータブはありませんが、持っています
そのアカウントに関連付けられたサービス プリンシパルを含むキータブ。
- サーバ
使用することを指定しますドメインコントローラーとして。 これは、kerberos と
LDAP操作。 サーバーは、MSKTUTIL_SERVER を設定して指定することもできます。
環境変数。 デフォルト: レルム名から DNS で検索されます。
--nat の後ろのサーバー
サーバーがネットワーク アドレス変換を実行するファイアウォールの背後にある場合、
KRB-PRIV メッセージは検証に失敗します。 これは、
メッセージの暗号化された部分は、NAT プロセスで書き換えることができません。 このオプション
パスワード変更プロセスで発生したエラーを無視し、システムを許可します。
NAT ファイアウォールの外側で、NAT 内のサーバーが管理するドメインに参加する
ファイアウォール。
--レルム
使用することを指定しますkerberosレルムとして。 デフォルト: の default_realm を使用します。
krb5.conf の [libdefaults] セクション。
- サイト
特定の AD サイトでドメイン コントローラーを検索して使用します。 次の場合、このオプションは無視されます。
オプション --server が使用されます。
-N、--逆引きなし
DNS リバース経由でドメイン コントローラの名前を正規化しようとしないでください
ルックアップ。 クライアントが PTR レコードを解決できない場合は、これを行う必要があります。
ドメイン コントローラまたは DNS サーバーが誤った PTR レコードを保存している。 デフォルト: 使用
DC 名を正規化するための DNS 逆引き参照。
--user-creds-only
キータブで認証しようとしないでください。ユーザーの資格情報のみを使用してください (たとえば、
キニット)。 必要な特定の属性を変更するために、これを行う必要がある場合があります。
管理者の資格情報 (説明、userAccountControl、userPrincipalName、
デフォルトの AD 設定)。
-- 自動更新間隔
の数when --auto-update はアカウントのパスワードを変更します。 デフォルトは
30日。
-詳細
詳細なステータス メッセージを有効にします。 LDAP を取得するために複数回指定できます
デバッグ。
目的 タイプ/属性設定 OPTIONS
--サービスアカウントを使用
マシン アカウントではなく、サービス アカウントを作成して維持します。
--委任
委任に対してアカウントを信頼できるようにします。 このオプションも有効にできます
MSKTUTIL_DELEGATION 環境変数を設定します。 これにより、
userAccountControl 属性。 通常、管理者の資格情報が必要です。
- 説明
アカウントの説明属性を指定されたテキストに設定します (または、テキストが
'')。 通常、管理者の資格情報が必要です。
--無効化委任
アカウントが委任に対して信頼されないようにします。 これにより、
userAccountControl 属性。 通常、管理者の資格情報が必要です。
--no-pac を無効にする
マシンのサービスに PAC を含める KDC を無効にするフラグの設定を解除します
切符売場。 これにより、userAccountControl 属性が変更されます。 一般的に必要
管理者の資格情報。
--dont-expire-パスワード
userAccountControl 属性に DONT_EXPIRE_PASSSWORD ビットを設定します。
このアカウントのパスワードの有効期限を無効にします。 cron ジョブを実行しない場合
キータブを定期的にローテーションする場合は、このフラグを設定する必要があります。 一般的に必要
管理者の資格情報。
--do-expire-パスワード
userAccountControl 属性の DONT_EXPIRE_PASSWORD フラグを設定解除します。
通常、管理者の資格情報が必要です。
--enctypes
msDs-supportedEncryptionTypes フィールドで、サポートされている暗号化の種類を設定します。
次の値を OR で結合できます。
0x1=デス-CBC-CRC
0x2=des-cbc-md5
0x4=rc4-hmac-md5
0x8=aes128-cts-hmac-sha1
0x10=aes256-cts-hmac-sha1
この値は、AD が提供する暗号化の種類を決定するために使用されます。
キータブに入れる暗号化タイプ。
値が 0x3 (つまり、XNUMX つの DES タイプのみ) に設定されている場合、
userAccountControl で DES 専用フラグを設定します。
注: Windows 2008R2 はデフォルトで DES の使用を拒否します。 したがって、DES のみを使用することはできません
最初にドメインの DES 暗号化を有効にしていない限り、キーは暗号化されません。 最近のバージョン
MIT kerberos クライアントの多くは、同様にデフォルトで DES の使用を拒否しています。
デフォルト: 値を 0x1C に設定します。つまり、DES 以外のものを使用します。
--allow-weak-crypto
認証に DES キーを使用できるようにします。 これは MIT の
krb5.conf パラメータ allow_weak_crypto。
--ノーパック
このアカウントのサービス チケットに PAC を含めないことを指定します。 これ
userAccountControl 属性を変更します。 Microsoft サポート技術情報の記事を参照してください
詳細は #832575 をご覧ください。 このオプションは、
MSKTUTIL_NO_PAC 環境変数。 通常、管理者が必要です
資格情報。
-s, --service
アカウントに追加するサービス プリンシパルを指定します。
適切な)。 サービスは次の形式です。 / . ホスト名が
省略、現在のホスト名を想定。 複数回指定できます。
-- サービスの削除
アカウントから削除するサービス プリンシパルを指定します (場合によってはキータブも)
適切な)。
--upn
コンピューター アカウントまたはサービス アカウントの userPrincipalName 属性を
なれ.
userPrincipalName は、sAMAccountName に加えて使用できます (例:
コンピューター アカウントの場合は computername$)、kinit の場合。
短い形式 (例: host/hostname.example.com) または
長い形式 (例: host/[メール保護])。 要するにデフォルト
レルムが自動的に追加されます。
この操作には管理者権限が必要です。
--set-samba-secret
Samba の net changesecretpw コマンドを使用して、マシン アカウントのパスワードをローカルに設定します。
Samba の secrets.tdb にあります。 $PATH には、Samba の net コマンドを含める必要があります。 サンバはする必要があります
適切に構成されます。
--no-TLS
LDAP で TLS を使用しないでください。 Active Directory の LDAP トラフィックは、すでに暗号化されています。
SASL/GSSAPI であるため、TLS は必要ありません。
例
非特権ユーザーの場合、最も一般的な呼び出しは次のとおりです。
msktutil --update --service ホスト --service HTTP
これにより、Active Directory のコンピューター アカウントが新しいパスワードで更新されます。
新しいキータブを作成し、「ホスト」と「HTTP」の両方のサービス プリンシパルがその上にあることを確認します。
ホスト名。
msktutil --auto-update
これは、毎日の cron ジョブでパスワードを自動的にチェックしてローテーションするのに役立ちます。
30日経っています。
AD で管理者権限を持つユーザーの一般的な用途:
msktutil --create --service ホスト --service HTTP
これにより、新しいパスワードを使用して Active Directory にコンピューター アカウントが作成されます。
新しいキータブを作成し、「ホスト」と「HTTP」の両方のサービス プリンシパルがその上にあることを確認します。
ホスト名。
msktutil --precreate --hostcomputer1.example.com
これにより、コンピュータ 1 のアカウントがデフォルトのパスワードで事前に作成されます。
資格。 これは、中央ホストで実行できます。たとえば、多くの追加をスクリプト化するために
ホスト。 その後、ホスト自体で msktutil --create を使用できます (特別な設定は必要ありません)。
資格情報) を使用してドメインに参加させます。
msktutil --host afs --service afs --enctypes 0x03
これにより、afs/cell.name@REALM プリンシパルが作成され、そのプリンシパルが
「afs」と呼ばれるコンピューターアカウント。 プリンシパルは DES 専用としてマークされます。
AFS に必要です。
msktutil --create --use-service-account --service HTTP/hostname.example.com --keytab /etc/apache/krb5.keytab --account-name srv-http --no-pac
これにより、HTTP/hostname.example.com@REALM プリンシパルが作成され、関連付けられます。
「srv-http」というサービス アカウントを持つプリンシパル。 対応する Kerberos キーは
キータブ ファイル /etc/apache/krb5.keytab に書き込まれます。 そのための Kerberos チケットのサイズ
PAC 情報が含まれないため、サービスは小さいままです。
msktutil --create --service ホスト/ホスト名 --service ホスト/ホスト名.example.com --set-samba-secret --enctypes 0x4
これにより、Samba と互換性のある Active Directory にコンピューター アカウントが作成されます。
このコマンドは、新しいパスワードを作成し、新しいキータブを書き出し、それが含まれていることを確認します
"host/hostname" と "host/hostname.example.com" の両方をサービス プリンシパルとして (これは
Windows で setspn.exe -R が行うことと同等です)。 新しいコンピュータのパスワードは
Samba との相互運用性を提供するために、Samba の secrets.tdb データベースに格納されます。 サンバとして
(バージョン 3) arcfour で暗号化された Kerberos チケットのみをサポートします --enctypes オプションは
その暗号化タイプのみを選択するために使用されます。
onworks.net サービスを使用してオンラインで msktutil を使用する
