Adam the Automator

現在、ローカルのWindows管理者パスワードをどのように扱っていますか? すべてのWindowsシステムにはあり、各PCの王国への鍵を持っています。 ローカル管理者パスワードは Active Directory (AD) の一部ではないので、すべてのコンピュータの各アカウントを個別に管理する必要があります。 それは面倒なことです。

多くの場合、組織はあまり深く考えず、各 Windows マシンに標準の管理者パスワードを設定するだけです。 この方法は便利ですが、その 1 つのマスター パスワードが悪用された場合、組織はより大きな問題に直面することになります。 各コンピュータに個別のローカル管理者パスワードを設定することは、必ずしも悪意のある個人が1台のPCにアクセスすることを防ぐわけではありませんが、他のPCの横方向の搾取をかなり防ぐことができるのです。

Microsoft Local Administrator Password Solution (LAPS) が役に立ちます。

この記事では、LAPSを設定することによって、AD接合したコンピューターを保護する方法を学びます。

目次

Microsoft LAPSとは何か?

LAPSは、Windows環境を安全に保つために不可欠なものです。 LAPS は巧妙な方法で機能するツールで、LAPS を有効にしたすべてのドメイン コンピュータのローカル管理者パスワードを自動的にランダム化し、それぞれのパスワードを定期的に変更します。

LAPSにより、ドメイン全体でローカル管理者パスワードがランダムになり、ハッカーやマルウェアからの横の動きを防止することができます。 さて、クライアント上の長いローカル管理者パスワードで保護できると思うかもしれませんが、そうではありません。

ハッカーは Pass-The-Hash 法を使用してドメイン内で急速に拡散し、同じ方法を使用してドメイン管理者クレデンシャルに出くわすこともできます。

LAPS in Practice

LAPSには3つの主要な部分があります:

Locked-Down AD Attributes

LAPSはms-Mcs-AdmPwdというAD内のすべての制御対象コンピューターに対するそれぞれのローカル管理者のパスワードを保存しています。 LAPSはまた、パスワードを変更するためにパスワードの有効期限を知る必要があるため、ms-Mcs-AdmPwdExpirationTimeという別のAD属性も保存しています。 これらのAD属性は、グループやユーザーなどの指定されたADプリンシパルによってのみ読み取り/書き込みが可能で、パスワードを使用しているコンピュータアカウントによっても書き込み可能です。

GPO設定

コンピュータ上でLAPSをプロビジョニングしてパスワードを変更するために、LAPSにはGPO設定のセットも用意されています。 GPOが一連のコンピュータにリンクされている場合、LAPSの設定は各コンピュータに配布されます。

LAPS は、現在の日付がパスワードの有効期限を過ぎていることを確認すると、次のことを行います。

  • 新しいパスワードをランダムに作成し、それをローカル管理者パスワードとして設定します。
  • 新しい有効期限をms-Mcs-AdmPwdExpirationTimeに書き込みます。

この巧妙かつシンプルな方法を使用することにより、ドメインコンピュータはさらに安全に保たれます。

LAPSの設定

情報は十分ですので、実際にLAPSでできることを見ていきましょう!

  • 新しい有効期限は、Mcs-AdmPwdに書き込みます。 LAPSのセットアップは複雑ではありませんが、このチュートリアルで学ぶいくつかの手順が必要です。
    1. 管理マシンにLAPS管理ツールをインストールする。
    2. ADスキーマを拡張して、LAPSが使用する2つのカスタムAD属性を追加する。
    3. AD内の各種コンポーネントに適切な権限を設定する。
    4. Windowsコンピュータに適用されるLAPS GPOを構築する。
    5. LAPS GPO Extensionを適用するWindowsコンピューターに展開します。

    上記の手順が完了したら、完全に機能するLAPS環境をセットアップして準備完了です!

    Prerequisites

    この記事では、実際にLAPSをセットアップすることを説明します。

    • ADドメイン(2003以上)
    • Windows(10またはServer 2012+を推奨)が動作するコンピューターにRSAT for Active Directoryをインストールしていること
    • ADドメイン管理者およびスキーマ管理者グループの両方のメンバーであるアカウントへのアクセス権を持っていること
    • ADドメイン管理者グループとスキーマ管理者グループの両方のメンバーが、ADドメイン管理者グループに属していること。

    この記事のすべての例では、contoso.comというADドメインを使用します。

    schema adminグループのベストプラクティスは、権限が必要なときだけそのメンバーになることです。

    Microsoft LAPS Management Toolsのインストール

    開始するには、まず管理コンピュータにLAPS Management Toolsをインストールする必要があります。 これらの管理ツールは、LAPS GPO拡張機能(選択した場合)とLAPSを構成するための管理ツールの両方をインストールします。

    1. LAPS.x64.msi ファイルをダウンロードして、管理者としてそれを起動し、[次へ]をクリックすることから開始してください。
    Installing Microsoft LAPS

    2. カスタムセットアップになるまで次を押して、管理ツールと全体の機能は、ローカルハードドライブにこれらの両方のコンポーネントをインストールするにインストールされます]をクリックしてください。 現在のマシンをLAPSで管理したくない場合は、AdmPwd GPO Extensionを選択します。

    Management Tools

    3をクリックします。 インストールが終了するまでNextをクリックして、インストーラーを終了して下さい。

    これでLAPS GPO extensions(選択した場合)とその管理ツールがインストールされましたので、ADスキーマの拡張とGPOの追加を開始できます。

    1. アカウントがまだメンバーでない場合、ドメイン管理者グループのメンバーをスキーマ管理者グループに追加することから始めてください。 これを「管理者アカウント」と呼ぶことにします。
    2. 管理者アカウントとしてPowerShellを起動し、Import-module AdmPwd.PSを実行してAdmPwd PowerShellモジュールをインポートします。
    3. モジュールをインポートしたら、コマンドUpdate-AdmPwdADSchemaを実行してADスキーマに二つのAD属性を追加して更新します。
    Powershell Admin Account

    これで、AD スキーマを拡張して LAPS をサポートし、 Active Directory で権限を設定する準備ができました。

    Active Directory 権限の構成

    それぞれのコンピューターにはローカル管理者のパスワードと有効期限 AD属性を更新できる能力が必要です。 これを行うには、各コンピュータが ms-Mcs-AdmPwd および ms-Mcs-AdmPwdExpirationTime AD 属性への自己書き込み権限を持っている必要があります。

    Allowing Machines to Save Their Password

    最初に、各コンピュータが自分のパスワードを ms-Mcs-AdmPwd AD属性に保存でき、そのパスワードが ms-Mcs-AdmPwdExpirationTime AD属性で有効期限が切れたときに更新できることを確認します。 AdPwd PowerShellモジュールには、組織単位(OU)ごとにSet-AdmPwdComputerSelfPermissionというこれらの権限を設定するコマンドがあり、すべての子OUに適用されます。

    PowerShellで、特定のOUとドメイン名を更新することを忘れずにSet-AdmPwdComputerSelfPermission -OrgUnit 'OU=Workstations,DC=contoso,DC=com'を実行します。

    Update OU and Domain Name

    LAPSがより多くのOUを制御したい場合、AD内の各OUについて上記のコマンドを繰り返してください。

    各コンピュータのローカル管理パスワードの読み取りとリセットを行う権限を、希望するユーザーとグループのみが持つようにするには、誰がアクセス権を持つかを監査する必要があります。 特に、「拡張された権利」を持つ必要があるアカウントのみがそれを持つことを知る必要があります。

    拡張された権利を持つアカウントを見つけるために、OUとドメイン名を置き換えてFind-AdmPwdExtendedRights -OrgUnit 'OU=Workstations,DC=contoso,DC=com' | Select -ExpandProperty ExtendedRightHoldersを確実に実行します。

    次のスクリーンショットで、CONTOSOjoe-the-admin と CONTOSOMDT-service が Workstations OU に対して拡張された権利を持っていることがわかります。

    Workstations OU

    MDT-service 許可は確かに拡張した権利が必要ですが、joe-the-admin はそうではありません。 joe-the-admin の権限を削除する必要があります。

    以前のステップで自己書き込み権限を設定したすべての OU に対して、このプロセスを繰り返す必要があります。

    拡張権限を削除する

    拡張権限を削除する各アカウントを識別したら、今度は実際にそれを実行します。

    1. Active Directory Users And Computers を開き、上部メニューで[表示]をクリックして[詳細機能]が有効になっているか確認します。 詳細な機能を有効にすると、次のスクリーンショットに示すように、通常表示されない OU がすべて表示されます。
    Hidden OUs

    2.この OU を使用するには、次の手順を実行します。 拡張右翼を削除したいOUを右クリックし、[プロパティ]をクリックします。

    Right Click OU to Remove

    3.拡張右翼を削除したいOUを右クリックし、[プロパティー]をクリックします。 セキュリティ]タブをクリックし、[詳細設定]ボタンをクリックします。
    4.拡張権限を削除したいアカウントまたはグループを探し、選択して[削除]をクリックして削除します。

    Security Tab for Account Removal

    5.拡張権限を削除するアカウントは、[Security]タブで選択したアカウントまたはグループです。

    Giving Permission to Read and Reset the Local Administrator Password

    適切なアカウントのみが拡張権限を持つことを確認したので、次に、LAPS Workstations Password ReadおよびLAPS Workstations Password Resetというローカル管理パスワードを読み取り、リセットするための2つのADグループを作成する必要があります。

    管理者アカウントでPowerShellコンソールを開いたまま、次のコマンドを入力して、両方のADグループに、ワークステーションOU内のコンピュータのローカル管理者パスワードの読み取り権限を与えます。

    PS> Set-AdmPwdReadPasswordPermission -OrgUnit 'OU=Workstations,DC=contoso,DC=com' -AllowedPrincipals "LAPS Workstations Password Read"PS> Set-AdmPwdResetPasswordPermission -OrgUnit 'OU=Workstations,DC=contoso,DC=com' -AllowedPrincipals "LAPS Workstations Password Reset" 

    これで、上記のADグループがワークステーションOU内のコンピュータのローカル管理者パスワードを読み取り、リセットすることを有効にできました。

    グループポリシーテンプレートのセントラルストアの作成

    コンピュータにインストールされたLAPSを有効にするには、まずグループポリシーテンプレートをPolicyDefinitionストアにインポートしてグループポリシーを作成します。 PolicyDefinitionストアは、すべてのドメインコントローラー上にあるフォルダです。

    ドメインコントローラーをターゲットとするLAPS GPOを決して有効化しないでください。 これはサポートされておらず、予期しない問題を引き起こす可能性があります。

    1. Pick out a domain controller in AD; any domain controller will work. If not, create it now.
    2. Copy the contents of C:\WindowsPolicyDefinitions on your admin computer (the one you took LAPS installed on) to \contoso.comSYSVOLPolicies PholicyDefinitions folder on the domain controller.

    Creating the GPO

    Now’s copy the LAPS GPO templates to the Central Store (PolicyDefinitions folder).LASCOはLASCOの管理者用GPOです。

    1. 管理者アカウントでグループポリシー管理を開き、LAPSを有効にしたいOUを右クリックし、[既存のGPOをリンク]をクリックします。
    グループポリシー管理

    2. コンピュータ構成 -> 管理テンプレート -> LAPSに移動して、ローカル管理パスワード管理の有効を有効に設定します。

    GPO をすべての OUs にリンクする

    これでほぼ完了です!

    GPO をすべての OUs にリンクする。

    LAPS GPO 拡張の展開

    コンピュータを含む該当するすべての OU に GPO が適用されたら、今度は LAPS GPO 拡張を展開する必要があります。 MSIをインストールする(先に示したとおり)か、LAPS DLLファイルを登録することによって、この拡張機能をインストールするいくつかの異なる方法があります。

    MSIをインストールすることを選択した場合、LAPS制御OU内のすべてのコンピューターで、以下のコマンドを実行してLAPSを有効にします。

    > regsvr32.dll \server\share\AdmPwd.dll

    これらのコマンドをコンピューター上で実行するには、任意のリモート実行ツールを使用できます。

    GPOによるLAPS MSIの展開

    GPOを使用することは、LAPS GPO拡張機能がすべてのコンピューターにインストールされることを保証する最も簡単な方法です。x64.msiをすべてのドメインコンピュータからアクセス可能なネットワーク共有にコピーします。

  • 管理コンピュータでグループポリシー管理を開き、Install LAPSまたは同様の名前のGPOを作成します。
  • Install LAPS

    3 というGPOを作成する。 Install LAPS GPOを右クリックし、[編集]をクリックして、[コンピューターの構成]-[6738][ポリシー]-[6738][ソフトウェアの設定]-[6738][ソフトウェアのインストール]に移動します。

    LAPS GPO Software Installation

    4. Software Installationを右クリックし、[新規->パッケージ…]を開きます。

    GPO New Package

    5.GPOのインストールをクリックし、[編集]をクリックします。 LAPS.x64.msiをコピーした共有に移動して選択し、[OK]をクリックして[割り当て]を選択します。

    Assigned LAPS.x64.msi

    6. ここでGPOをLAPSの設定と同じOUにリンクしてください。 これで、LAPS をテストする準備が整いました!

    LAPS のテスト

    制御するコンピューター上で LAPS が設計どおりに動作することを確認するために、今度はコンピューターの 1 つに前述の GPO を強制適用して何が起こるかを確認してみましょう。

  • コンピュータにLAPSがインストールされたら、もう一度マシンを再起動し、管理者コンピュータの管理者として、ADグループのLAPS Workstation Password ReadおよびLAPS Workstation Password ResetのメンバーであるアカウントでPowerShellコンソールを開く。
  • 先ほど再起動してLAPSをインストールしたコンピュータ名でGet-AdmPwdPassword <computername>コマンドを実行する。 すべてがうまくいった場合、次のスクリーンショットの出力と同様のものが表示されます。
  • LAPS Installation Output

    4. ここで、上に表示したパスワードでLAPS制御コンピュータにログインしてみる。 うまくいけば、入っているはずです。
    5. ここで、Reset-AdmPwdPassword <ComputerName>を実行してコンピュータを再起動し、パスワードをリセットしてみてください。 次のスクリーンショットでパスワードがどのように変更されたか確認してください。

    LAPS Password Reset

    これで、あなたの環境で LAPS が動作するようになりました。 そして、管理は非常に簡単ですが、知っておくべきことがいくつかあります…

    Tips and tricks for Using LAPS for Real

    上で説明した設定はほとんどの小規模環境には十分ですが、安全性が低すぎたり、大規模組織で必要な監査レベルを提供しない可能性があります。 1.監査を有効にする

    誰かがパスワードを読むかリセットしたときの監査は、特に、誰かがすべてのコンピュータのパスワードを読んだ場合、それにアラームをフックできることを考えると、重要です。 幸いなことに、AdmPwd モジュールはそれを可能にするコマンドレットを提供してくれます。 ms-mcs-AdmPwd AD属性をユーザーが直接読めないようにする

    ユーザーが ms-mcs-AdmPwd AD属性を読めないようにする方法の1つは、コンピュータのローカル管理パスワードを取得するセルフサービスメソッドを作成することです。 この記事の範囲外ですが、これに適した既存のセルフサービス ポータルがない場合は、JEA や WebJEA などのツールを調べてみてください。

    3. ディスク イメージング中に Ms-Mcs-AdmPwdTime 属性をリセットする

    LAPS 制御コンピューターを再度イメージ化する場合、Mcs-AdmPwdTime 属性を忘れずにリセットしなければならず、リセットしないとパスワード変更が起動せず、イメージにより与えられたローカル管理パスワードを維持したままになってしまいます。

    AdmPwdモジュールなしでExpirationTimeをリセットするために、次のPowerShellコマンドを使用できます:

    # With RSAT Get-ADComputer Workstation1 | Set-ADObject -Replace @{"ms-mcs-AdmPwdExpirationTime"=(Get-Date)} # Without RSAT$Computer = New-Object DirectoryServices.DirectoryEntry "LDAP://CN=Workstation1,OU=Workstations,DC=contoso,DC=com"$Computer.'ms-Mcs-AdmPwdExpirationTime'.Clear()$Computer.CommitChanges()

    4. ms-Mcs-AdmPwd属性はADごみ箱に残ることを忘れないでください

    ADでオブジェクトを削除し、ADごみ箱を有効にすると、ADは通常、重要な属性を削除します; 幸運にも、mcs-AdmPwdはそこから保護されています!

    5. LAPSは一時的なアクセス用ではない

    LAPS は魅力的ですが、サプライヤー、ユーザー、その他の種類のアカウントに一時的なアクセスを与えるためのものではありません。 LAPSを使用する代わりに、その特定のコンピュータのローカル管理者であるADグループを使用し、グループのメンバーシップにTimeToLiveを使用します。

    まとめ

    ここまでで、LAPSの展開方法、その権限の設定、およびより安全にするためのいくつかのヒントとトリックについて学びました。 LAPSが導入された環境では、すべてのローカル管理者のパスワードが定期的かつ自動的に変更されます。 これは、ドメイン結合されたコンピューターがハッカーやマルウェアに乗っ取られるリスクを大幅に減らし、うまくいけば、多くの頭痛の種からあなたを救うことができます。

    コメントを残す

    メールアドレスが公開されることはありません。