ソース開始サブスクリプションの設定

ソースによって開始されるサブスクリプションを使用すると、イベント ソース コンピューターを定義せずにイベント コレクター コンピューターでサブスクリプションを定義できます。その後、複数のリモート イベント ソース コンピューターを (グループ ポリシー設定を使用して) 設定してイベント コレクター コンピューターにイベントを転送できます。 コレクターによって開始されるサブスクリプション モデルでは、イベント コレクターがイベント サブスクリプション内のすべてのイベント ソースを定義する必要があるため、これはコレクターによって開始されるサブスクリプションとは異なります。

ソースによって開始されるサブスクリプションを設定する場合は、イベント ソース コンピューターがイベント コレクター コンピューターと同じドメインにあるかどうかを検討します。 次のセクションでは、イベント ソースが同じドメインにある場合、またはイベント コレクター コンピューターと同じドメインにない場合に従う手順について説明します。

注意

ローカルまたはリモートのドメイン内の任意のコンピューターは、イベント コレクターにすることができます。 ただし、イベント コレクターを選択するときは、イベントの大部分が生成される場所にトポロジ的に近いコンピューターを選択することが重要です。 WAN 上の離れたネットワーク上の場所にあるマシンにイベントを送信すると、イベント収集の全体的なパフォーマンスと効率を低下させることができます。

イベント ソースがイベント コレクター コンピューターと同じドメインにあるソースによって開始されるサブスクリプションを設定する

ソースによって開始されるサブスクリプションを設定するには、イベント ソース コンピューターとイベント コレクター コンピューターの両方を構成する必要があります。

注意

これらの手順では、リモート コンピューターまたはコンピューターがイベントを収集するように構成されるドメインにサービスを提供する Windows Server ドメイン コントローラーへの管理者アクセス権があることを前提としています。

イベント ソース コンピューターの構成

  1. Windows Server ドメイン コントローラーの管理者特権コマンド プロンプトから次のコマンドを実行して、Windows リモート管理を構成します。

    winrm qc -q

  2. 次のコマンドを実行して、グループ ポリシーを開始します。

    %SYSTEMROOT%\System32\gpedit.msc

  3. [ コンピューターの構成 ] ノードで、[ 管理用テンプレート ] ノードを展開し、[ Windows コンポーネント] ノードを展開して、[ イベント転送 ] ノードを選択します。

  4. SubscriptionManager 設定を右クリックし、[プロパティ] を選択しますSubscriptionManager 設定を有効にし、[表示] ボタンをクリックしてサーバー アドレスを設定に追加します。 イベント コレクター コンピューターを指定する設定を少なくとも 1 つ追加します。 [SubscriptionManager のプロパティ] ウィンドウには、設定の構文を説明する [説明] タブが表示されます。

  5. SubscriptionManager 設定が追加されたら、次のコマンドを実行してポリシーが適用されていることを確認します。

    gpupdate /force

イベント コレクター コンピューターの構成

  1. Windows Server ドメイン コントローラーの管理者特権コマンド プロンプトから次のコマンドを実行して、Windows リモート管理を構成します。

    winrm qc -q

  2. 次のコマンドを実行して、イベント コレクター サービスを構成します。

    wecutil qc /q

  3. ソースによって開始されるサブスクリプションを作成します。 これは、プログラムで、イベント ビューアーを使用するか、 Wecutil.exeを使用して行うことができます。 プログラムでサブスクリプションを作成する方法の詳細については、「 ソース開始サブスクリプションの作成」のコード例を参照してください。 Wecutil.exeを使用する場合は、イベント サブスクリプション XML ファイルを作成し、次のコマンドを使用する必要があります。

    wecutil csconfigurationFile.xml

    次の XML は、リモート コンピューターのアプリケーション イベント ログからイベント コレクター コンピューターの ForwardedEvents ログにイベントを転送する、ソースによって開始されるサブスクリプションを作成するサブスクリプション構成ファイルの内容の例です。

    <Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription">
        <SubscriptionId>SampleSISubscription</SubscriptionId>
        <SubscriptionType>SourceInitiated</SubscriptionType>
        <Description>Source Initiated Subscription Sample</Description>
        <Enabled>true</Enabled>
        <Uri>http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog</Uri>
    
        <!-- Use Normal (default), Custom, MinLatency, MinBandwidth -->
        <ConfigurationMode>Custom</ConfigurationMode>
    
        <Delivery Mode="Push">
            <Batching>
                <MaxItems>1</MaxItems>
                <MaxLatencyTime>1000</MaxLatencyTime>
            </Batching>
            <PushSettings>
                <Heartbeat Interval="60000"/>
            </PushSettings>
        </Delivery>
    
        <Expires>2018-01-01T00:00:00.000Z</Expires>
    
        <Query>
            <![CDATA[
                <QueryList>
                    <Query Path="Application">
                        <Select>Event[System/EventID='999']</Select>
                    </Query>
                </QueryList>
            ]]>
        </Query>
    
        <ReadExistingEvents>true</ReadExistingEvents>
        <TransportName>http</TransportName>
        <ContentFormat>RenderedText</ContentFormat>
        <Locale Language="en-US"/>
        <LogFile>ForwardedEvents</LogFile>
        <AllowedSourceNonDomainComputers></AllowedSourceNonDomainComputers>
        <AllowedSourceDomainComputers>O:NSG:NSD:(A;;GA;;;DC)(A;;GA;;;NS)</AllowedSourceDomainComputers>
    </Subscription>
    

    注意

    ソースによって開始されるサブスクリプションを作成するときに、AllowedSourceDomainComputers、AllowedSourceNonDomainComputers/IssuerCAList、AllowedSubjectList、DeniedSubjectList がすべて空の場合は、"O:NSG:NSD:(A;;GA;;;DC)(A;;ジョージア 州;;;NS)" は AllowedSourceDomainComputers の既定のセキュリティ記述子として使用されます。 既定の記述子は、ドメイン コンピューター ドメイン グループのメンバーとローカル ネットワーク サービス グループ (ローカル フォワーダーの場合) に、このサブスクリプションのイベントを発生させる機能を付与します。

サブスクリプションが正しく動作することを検証するには

  1. イベント コレクター コンピューターで、次の手順を実行します。

    1. Windows Server ドメイン コントローラーの管理者特権コマンド プロンプトから次のコマンドを実行して、サブスクリプションのランタイム状態を取得します。

      wecutil gr<subscriptionID>

    2. イベント ソースが接続されていることを確認します。 イベント ソースを接続するためのサブスクリプションを作成した後、ポリシーで指定された更新間隔が終了するまで待つ必要がある場合があります。

    3. 次のコマンドを実行して、サブスクリプション情報を取得します。

      wecutil gs<subscriptionID>

    4. サブスクリプション情報から DeliveryMaxItems 値を取得します。

  2. イベント ソース コンピューターで、イベント サブスクリプションのクエリに一致するイベントを発生させます。 イベントを転送するには、DeliveryMaxItems イベントの数を発生させる必要があります。

  3. イベント コレクター コンピューターで、イベントが ForwardedEvents ログまたはサブスクリプションで指定されたログに転送されていることを確認します。

セキュリティ ログの転送

セキュリティ ログを転送できるようにするには、NETWORK SERVICE アカウントを EventLog Readers グループに追加する必要があります。

イベント ソースがイベント コレクター コンピューターと同じドメインにないソースによって開始されるサブスクリプションを設定する

注意

これらの手順では、Windows Server ドメイン コントローラーへの管理者アクセス権があることを前提としています。 この場合、リモート イベント コレクター コンピューターまたはコンピューターはドメイン コントローラーによって提供されるドメイン内にないため、サービス (services.msc) を使用して Windows リモート管理を "自動" に設定して個々のクライアントを起動することが不可欠です。 または、各リモート クライアントで "winrm quickconfig" を実行することもできます。

サブスクリプションを作成する前に、次の前提条件を満たす必要があります。

  1. イベント コレクター コンピューターで、管理者特権コマンド プロンプトから次のコマンドを実行して、Windows リモート管理とイベント コレクター サービスを構成します。

    winrm qc -q

    wecutil qc /q

  2. コレクター コンピューターには、ローカル コンピューターの証明書ストアにサーバー認証証明書 (サーバー認証目的の証明書) が必要です。

  3. イベント ソース コンピューターで、次のコマンドを実行して Windows リモート管理を構成します。

    winrm qc -q

  4. ソース コンピューターには、ローカル コンピューターの証明書ストアにクライアント認証証明書 (クライアント認証目的の証明書) が必要です。

  5. ポート 5986 がイベント コレクター コンピューターで開かれます。 このポートを開くには、 コマンドを実行します。

    netsh ファイアウォールを追加ポートオープン TCP 5986 "Winrm HTTPS リモート管理"

証明書の要件

  • サーバー認証証明書は、ローカル コンピューターの個人用ストアのイベント コレクター コンピューターにインストールする必要があります。 この証明書のサブジェクトは、コレクターの FQDN と一致する必要があります。

  • クライアント認証証明書は、ローカル コンピューターの個人用ストアのイベント ソース コンピューターにインストールする必要があります。 この証明書のサブジェクトは、コンピューターの FQDN と一致する必要があります。

  • クライアント証明書がイベント コレクターの証明書とは異なる証明機関によって発行されている場合は、それらのルート証明書と中間証明書もイベント コレクターにインストールする必要があります。

  • クライアント証明書が中間証明機関によって発行され、コレクターが Windows 2012 以降を実行している場合は、次のレジストリ キーを構成する必要があります。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\ClientAuthTrustMode (DWORD) = 2

  • サーバーとクライアントの両方が、すべての証明書で失効状態を正常にチェックできることを確認します。 certutil コマンドを使用すると、エラーのトラブルシューティングに役立てることができます。

詳細については、次の記事を参照してください。 https://technet.microsoft.com/library/dn786429(v=ws.11).aspx

イベント コレクターでリスナーを設定する

  1. 次のコマンドを使用して証明書認証を設定します。

    winrm set winrm/config/service/auth @{Certificate="true"}

  2. サーバー認証証明書のサムプリントを含む WinRM HTTPS リスナーは、イベント コレクター コンピューターに存在する必要があります。 これは、次のコマンドを使用して確認できます。

    winrm e winrm/config/listener

  3. HTTPS リスナーが表示されない場合、または HTTPS リスナーのサムプリントがコレクター コンピューター上のサーバー認証証明書のサムプリントと同じでない場合は、そのリスナーを削除し、正しいサムプリントを使用して新しいリスナーを作成できます。 https リスナーを削除するには、次のコマンドを使用します。

    winrm delete winrm/config/Listener?Address=*+Transport=HTTPS

    新しいリスナーを作成するには、次のコマンドを使用します。

    winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="<コレクター>の FQDN";CertificateThumbprint="<サーバー認証証明書>のサムプリント"}

イベント コレクターで証明書マッピングを構成する

  1. 新しいローカル ユーザーを作成します。

  2. マシンの "信頼されたルート証明機関" または "中間証明機関" に存在する証明書を使用して、証明書マッピングを作成します。

    これは、イベント ソース コンピューターにインストールされている証明書を発行したルート CA または中間 CA の証明書です (混乱を避けるために、これは証明書チェーン内の証明書のすぐ上にある CA です)。

    winrm create winrm/config/service/certmapping?発行元CA 証明書>の Issuer=<Thumbprint+Subject=*+URI=* @{UserName="<username>";Password="<password>"} -remote:localhost

  3. クライアントから、次のコマンドを使用してリスナーと証明書マッピングをテストします。

    winrm g winrm/config -r:https://<イベント コレクターの FQDN>:5986 -a:certificate -certificate:"<クライアント認証証明書>の拇印"

    これにより、イベント コレクターの WinRM 構成が返されます。 構成が表示されない場合は、この手順を超えて移動しないでください。

    この手順では何が起こりますか?

    • クライアントはイベント コレクターに接続し、指定した証明書を送信します
    • イベント コレクターは発行元の CA を検索し、 が一致する証明書マッピングであるかどうかを確認します
    • イベント コレクターは、クライアント証明書チェーンと失効状態を検証します
    • 上記の手順が成功した場合は、認証が完了します。

注意

認証方法に関して不平を言う Access 拒否エラーが発生する可能性があり、誤解を招く可能性があります。 トラブルシューティングを行うには、イベント コレクターで CAPI ログをチェックします。

  1. winrm enum winrm/config/service/certmapping コマンドを使用して、構成された certmapping エントリを一覧表示します。

イベント ソース コンピューターの構成

  1. 管理者アカウントでログオンし、ローカル グループ ポリシー エディター (gpedit.msc) を開きます

  2. ローカル コンピューター ポリシー\コンピューター構成\管理用テンプレート\Windows コンポーネント\イベント転送に移動します。

  3. "ターゲット サブスクリプション マネージャーのサーバー アドレス、更新間隔、発行者証明機関を構成する" ポリシーを開きます。

  4. ポリシーを有効にし、[SubscriptionManagers]\(サブスクリプション\) [Show...]\(表示...\) をクリックします。ボタン。

  5. [SubscriptionManagers] ウィンドウで、次の文字列を入力します。

    Server=HTTPS://<イベント コレクター サーバー>の FQDN:5986/wsman/SubscriptionManager/WEC,Refresh=<更新間隔 (秒単位)>、IssuerCA=<発行元 CA 証明書の拇印>

  6. 次のコマンド ラインを実行して、ローカル グループ ポリシー設定を更新します:Gpupdate /force

  7. これらの手順では、ソース コンピューターでイベント 104 イベント ビューアーアプリケーションとサービス ログ\Microsoft\Windows\Eventlog-ForwardingPlugin\Operational ログを生成する必要があります。次のメッセージが表示されます。

    "フォワーダーは、アドレス <FQDN>でサブスクリプション マネージャーに正常に接続され、その後にイベント 100 が続き、"サブスクリプション <sub_name> が正常に作成されました" というメッセージが表示されました。

  8. イベント コレクターで、[サブスクリプション ランタイムの状態] に 1 台のアクティブ なコンピューターが表示されます。

  9. イベント コレクターで ForwardedEvents ログを開き、ソース コンピューターからイベントが転送されている場合はチェックします。

イベント ソースのクライアント証明書の秘密キーに対するアクセス許可を付与する

  1. イベント ソース コンピューターでローカル コンピューターの証明書管理コンソールを開きます。
  2. クライアント証明書を右クリックし、[秘密キーの管理] をクリックします。
  3. NETWORK SERVICE ユーザーに読み取りアクセス許可を付与します。

イベント サブスクリプションの構成

  1. イベント コレクターでイベント ビューアーを開き、[サブスクリプション] ノードに移動します。
  2. [サブスクリプション] を右クリックし、[サブスクリプションの作成]を選択します。
  3. 新しいサブスクリプションの名前と説明 (省略可能) を指定します。
  4. [ソース コンピューターが開始されました] オプションを選択し、[コンピューター グループの選択]をクリックします。
  5. [コンピューター グループ] で、[ドメイン以外のコンピューターの追加]をクリックします。 イベント ソースのホスト名を入力します。
  6. [証明書の追加]をクリックします。 クライアント証明書を発行する証明機関の証明書を追加します。 [証明書の表示] をクリックして証明書を検証できます。
  7. [証明機関] で [OK] をクリックして証明書を追加します。
  8. コンピューターの追加が完了したら、[OK] をクリックします。
  9. [サブスクリプションのプロパティ] に戻り、[イベントの選択] をクリックします。
  10. イベント レベル、イベント ログ、またはイベント ソース、イベント ID、その他のフィルターオプションを指定して、イベント クエリ フィルターを構成します。
  11. [サブスクリプションのプロパティ] に戻り、[詳細設定] をクリックします。
  12. ソース イベントからイベント コレクターへのイベント配信の最適化オプションのいずれかを選択するか、既定の標準のままにします。
    1. 帯域幅の最小化: イベントが配信され、帯域幅を節約する頻度が少なくなります。
    2. 待機時間の最小化: イベントは発生するとすぐに配信され、イベントの待機時間が短縮されます。
  13. [プロトコル] を [HTTPS] に変更し、[OK] をクリックします。
  14. [OK] をクリックして新しいサブスクリプションを作成します。
  15. 右クリックして [ランタイムの状態] を選択して、サブスクリプションのランタイム状態を確認します