2014年10月22日水曜日

セキュアチャネル破損の真相と衝撃

昨日の投稿にて紹介しました、Viewデスクトップをスナップショットから復元した場合に仮想デスクトップのステータスが『プロトコル障害』となる問題については、セキュアチャネルの破損が原因だったのですが、どうにも気になって、、調べてみました。

セキュアチャネルについて纏めると・・・
・ドメインコントローラとクライアント間の通信を保護するために確立される。
・確立するためには、コンピュータアカウントのパスワードを用いた認証が必要。
・コンピュータアカウントのパスワードは定期的(デフォルト:30日)に更新される。
・コンピュータアカウントのパスワードの更新は、クライアント側から行われる。

今回、私がミスした最たる要因は、『更新の仕組み』でした。

スナップショットやバックアップなどの静止点を取り、その後も継続してクライアントを起動していると、そのうちコンピュータアカウントのパスワードが更新され、静止点時点のクライアントが持つパスワードとドメインコントローラが持つパスワードが一致しないという状況になります。

更新間隔はデフォルトだと30日なので、前回更新された日時より30日経つと更新されます。
前回の更新が静止点を取得する『29日前』だったとすると、翌日には更新されてしまいます。

静止点を取得した日時からの有効期限ではないということです。
# 私は勝手に有効期限だと思い込んでいました。。皆さんはそんなことないですかね?(笑

更新日時を確認する方法なども調べてみましたので、興味のある方はつづきをどうぞ。



重要なのは、いつ更新されたのか、と、いつ更新されるのか、です。

◆いつ更新されたのか
ドメインコントローラでADSIエディターを起動し、対象コンピューターアカウントのプロパティ [pwdLastSet]で確認出来ます。

今回のケースだと、『2014/10/14 11:03:56』になっています。

なので、この日よりも前に取得したスナップショットを復元した場合、セキュアチャネルの破損が発生することになります。。。納得です。
# 私が昨日復元したスナップショットはおよそ2週間ほど前に取得したものなので。

◆いつ更新されるのか
グループポリシーの、[コンピューターの構成]-[ポリシー]-[Windowsの設定]-[セキュリティの設定]-[ローカルポリシー]-[セキュリティオプション]-[ドメインメンバー: 最大コンピューターアカウントのパスワードの有効期間]で定義されています。

今回のケースだと、未定義なので、既定値である『30日』になっています。

尚、コンピューターアカウントのパスワードは、クライアントコンピュータでnltestコマンドを
使って即座に更新することも可能です。

nltest /SC_CHANGE_PWD:<ドメイン名>

実行するとこんな感じです。

ドメインコントローラで再度 [pwdLastSet]を確認すると、ちゃんと更新されています。

静止点を取得する前に意図的にセキュアチャネルを更新しておくと、最も長い期間(次に更新されるまで)、スナップショットやバックアップデータなどが使えるということになります。

と、ここまでセキュアチャネルの仕組みを紹介し、極力破損させないように考えきましたが、、衝撃です
セキュアチャネルの破損を修復するコマンドがあるようです。
えええええw

Test-ComputerSecureChannel -Repair

Windows PowerShell 2.0とローカルの管理者権限が必要なようですが、ドメイン再参加に
比べれば簡単かつリスクも少なそうなので、今度同じ症状が出た時には試してみます。

修復出来るとなるともはや余談ですが、グループポリシーを使ってコンピューターアカウントのパスワード更新を無効化することも出来るようなので、検証環境だといいかもしれません。

セキュアチャネルに関する参考サイト
http://blogs.technet.com/b/jpntsblog/archive/2009/06/05/3250724.aspx
http://technet.microsoft.com/ja-jp/library/cc163040.aspx
http://technet.microsoft.com/ja-jp/library/hh849757(v=wps.620).aspx

1 件のコメント: