ソースによって開始されるサブスクリプションの設定
ソースによって開始されるサブスクリプションを使用すると、イベント ソース コンピューターを定義せずにイベント コレクター コンピューターでサブスクリプションを定義できます。その後、複数のリモート イベント ソース コンピューターを (グループ ポリシー設定を使用して) 設定して、イベント コレクター コンピューターにイベントを転送できます。 コレクターによって開始されるサブスクリプション モデルでは、イベント コレクターがイベント サブスクリプション内のすべてのイベント ソースを定義する必要があるため、コレクターによって開始されるサブスクリプションとは異なる点があります。
ソースによって開始されるサブスクリプションを設定するときは、イベント ソース コンピューターとイベント コレクター コンピューターと同じドメイン内に配置するかどうかを検討します。 次のセクションでは、イベント ソースが同じドメインにある場合、またはイベント コレクター コンピューターと同じドメインにない場合に従う手順について説明します。
Note
ドメイン内のどのコンピューター (ローカルまたはリモート) でもイベント コレクターにすることができます。 ただし、イベント コレクターを選択するときは、イベントの大部分が生成される場所にトポロジ的に近いコンピューターを選択することが重要です。 WAN 上の離れたネットワークの場所にあるコンピューターにイベントを送信すると、イベント収集の全体的なパフォーマンスと効率が低下する場合があります。
イベント ソースがイベント コレクター コンピューターと同じドメインにある、ソースによって開始されるサブスクリプションの設定
ソースによって開始されるサブスクリプションを設定するには、イベント ソース コンピューターとイベント コレクター コンピューターの両方を構成する必要があります。
Note
これらの手順では、リモート コンピューターまたはコンピューターがイベントを収集するように構成されるドメインにサービスを提供する Windows Server ドメイン コントローラーへの管理者アクセス権があることを前提としています。
イベント ソース コンピューターの構成
Windows リモート管理を構成するには、Windows Server ドメイン コントローラーの管理者特権コマンド プロンプトから次のコマンドを実行します。
winrm qc -q
次のコマンドを実行してグループ ポッドキャストを開始します。
%SYSTEMROOT%\System32\gpedit.msc
Computer Configuration ノードで Administrative Templates ノードを展開してから、Windows Components ノードを展開して Event Forwarding ノードを選択します。
SubscriptionManager 設定を右クリックして [プロパティ] を選択します。 SubscriptionManager 設定を有効にし、[表示] ボタンをクリックしてサーバー アドレスを設定に追加します。 イベント コレクター コンピューターを指定する設定を少なくとも 1 つ追加します。 [SubscriptionManager プロパティ] ウィンドウには、設定の構文を説明する Explain タブが含まれています。
SubscriptionManager 設定が追加されたら、次のコマンドを実行してポリシーが適用されていることを確認します。
gpupdate /force
イベント コレクター コンピューターの構成
Windows リモート管理を構成するには、Windows Server ドメイン コントローラーの管理者特権コマンド プロンプトから次のコマンドを実行します。
winrm qc -q
次のコマンドを実行して、イベント コレクター サービスを構成します。
wecutil qc /q
ソースによって開始されるサブスクリプションを作成します。 これは、プログラムの使用、イベント ビューアーの使用、または Wecutil.exe の使用によって実行できます。 プログラムでサブスクリプションを作成する方法の詳細については、「ソースによって開始されるサブスクリプションの作成」のコード サンプルを参照してください。 Wecutil.exe を使用する場合は、イベント サブスクリプション XML ファイルを作成し、次のコマンドを使用する必要があります。
wecutil cs configurationFile.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>
Note
ソースによって開始されるサブスクリプションを作成するときに、AllowedSourceDomainComputers、AllowedSourceNonDomainComputers/IssuerCAList、AllowedSubjectList、DeniedSubjectList がすべて空の場合、AllowedSourceDomainComputers のデフォルトのセキュリティ記述子として "O:NSG:NSD:(A;;GA;;;DC)(A;;GA;;;NS)" が使用されます。 デフォルトの記述子では、Domain Computers ドメイン グループのメンバーとローカルの Network Service グループ (ローカル フォワーダーの場合) に、このサブスクリプションのイベントを発生させる機能が付与されます。
サブスクリプションが適切に動作することを確認するには
イベント コレクター コンピューターで次の手順を実行します。
Windows Server ドメイン コントローラーの管理者特権コマンド プロンプトから次のコマンドを実行して、サブスクリプションのランタイム ステータスを取得します。
wecutil gr <subscriptionID>
イベント ソースが接続されていることを確認します。 イベント ソースを接続するためのサブスクリプションを作成した後、ポリシーで指定された更新間隔が終了するまで待つ必要がある場合があります。
次のコマンドを実行してサブスクリプション情報を取得します。
wecutil gs <subscriptionID>
サブスクリプション情報から DeliveryMaxItems 値を取得します。
イベント ソース コンピューターで、イベント サブスクリプションのクエリに一致するイベントを発生させます。 イベントを転送するには、DeliveryMaxItems のイベント数を発生させる必要があります。
イベント コレクター コンピューターで、イベントが ForwardedEvents ログまたはサブスクリプションで指定されたログに転送されたことを確認します。
セキュリティ ログの転送
セキュリティ ログを転送できるようにするには、NETWORK SERVICE アカウントを EventLog Readers グループに追加する必要があります。
イベント ソースがイベント コレクター コンピューターと同じドメインにない、ソースによって開始されるサブスクリプションの設定
Note
これらの手順では、Windows Server ドメイン コントローラーへの管理者アクセス権があることを前提としています。 このケースでは、リモート イベント コレクター コンピューターまたはコンピューターはドメイン コントローラーによって提供されるドメイン内にないため、サービス (services.msc) を使用して Windows リモート管理を "自動" に設定して個々のクライアントを起動することが不可欠です。 各リモート クライアントで "winrm quickconfig" を実行しても構いません。
サブスクリプションを作成する前に、次の前提条件を満たす必要があります。
イベント コレクター コンピューターで、管理者特権のコマンド プロンプトから次のコマンドを実行して、Windows リモート管理とイベント コレクター サービスを構成します。
winrm qc -q
wecutil qc /q
コレクター コンピューターでは、ローカル コンピューターの証明書ストアにサーバー認証証明書 (サーバー認証目的の証明書) が必要です。
イベント ソース コンピューターで、次のコマンドを実行して Windows リモート管理を構成します。
winrm qc -q
ソース マシンでは、ローカル コンピューターの証明書ストアにクライアント認証証明書 (クライアント認証目的の証明書) が必要です。
ポート 5986 がイベント コレクター コンピューターで開かれている必要があります。 このポートを開くには、次のコマンドを実行します。
netsh firewall add portopening TCP 5986 "Winrm HTTPS Remote Management"
証明書の要件
ローカル コンピューターの個人用ストアのイベント コレクター コンピューターにサーバー認証証明書をインストールする必要があります。 この証明書のサブジェクトはコレクターの 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) をご覧ください。
イベント コレクターでのリスナーの設定
次のコマンドで証明書認証を設定します。
winrm set winrm/config/service/auth @{Certificate="true"}
サーバー認証証明書のサム プリントを含む WinRM HTTPS リスナーは、イベント コレクター コンピューターに配置する必要があります。 これを確認するには次のコマンドを使用します。
winrm e winrm/config/listener
HTTPS リスナーが表示されない場合、または HTTPS リスナーのサム プリントがコレクター コンピューター上のサーバー認証証明書のサム プリントと同じでない場合は、そのリスナーを削除し、正しいサム プリントで新しいリスナーを作成できます。 HTTPS リスナーを削除するには、次のコマンドを使用します。
winrm delete winrm/config/Listener?Address=*+Transport=HTTPS
新しいリスナーを作成するには、次のコマンドを使用します。
winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="<コレクターの FQDN>";CertificateThumbprint="<サーバー認証証明書のサム プリント>"}
イベント コレクターにおける証明書マッピングの構成
新しいローカル ユーザーを作成します。
この新しいユーザーをコレクターのローカル管理者にします。
"信頼されたルート証明機関" または "中間証明機関" に存在する証明書を使用して、証明書マッピングを作成します。
Note
これは、イベント ソース コンピューターにインストールされている証明書を発行したルート CA (証明機関) または中間 CA の証明書 (証明書チェーン内で証明書のすぐ上にある CA) です。
winrm create winrm/config/service/certmapping?Issuer=<発行元 CA 証明書のサムプリント>+Subject=*+URI=* @{UserName="<username>";Password="<password>"} -remote:localhost
クライアントから、次のコマンドを使用してリスナーと証明書マッピングをテストします。
winrm g winrm/config -r:https://<イベント コレクターの FQDN>:5986 -a:certificate -certificate:"<クライアント認証証明書のサムプリント>"
これにより、イベント コレクターの WinRM 構成が返されます。 構成が表示されない場合は、この手順をスキップしないでください。
この手順で起こること
- クライアントがイベント コレクターに接続し、指定された証明書を送信します。
- イベント コレクターが発行元 CA を検索し、一致する証明書マッピングであるかどうかをチェックします。
- クライアント証明書チェーンと失効ステータスをイベント コレクターが検証します。
- これらの手順に成功すると、認証が完了します。
Note
認証方法に関して不平を言うアクセス拒否エラーが発生する場合があり、それが誤解を招く可能性があります。 トラブルシューティングを行うには、イベント コレクターで CAPI ログを確認します。
- 構成された certmapping エントリをコマンド winrm enum winrm/config/service/certmapping で一覧表示します。
Note
手順 1 で作成したローカル ユーザーは、EventLog 転送シナリオで証明書認証を使用して接続するユーザーを偽装するために使用されることはなく、後で削除できます。 リモート Powershell などの別のシナリオで証明書認証を使用する予定がある場合は、このローカル ユーザーを削除しないでください。
イベント ソース コンピューターの構成
管理者アカウントでログオンし、ローカル グループ ポリシー エディター (gpedit.msc) を開きます。
Local Computer Policy\Computer Configuration\Administrative Templates\Windows Components\Event Forwarding に移動します。
[ターゲット サブスクリプション マネージャーのサーバー アドレス、更新間隔、発行者証明機関を構成する] ポリシーを開きます。
ポリシーを有効にして、SubscriptionManagers の [表示...] ボタンをクリックします。
[SubscriptionManagers] ウィンドウで次の文字列を入力します。
Server=HTTPS://<イベント コレクター サーバーの FQDN>:5986/wsman/SubscriptionManager/WEC,Refresh=<更新間隔 (秒単位)>,IssuerCA=<発行元 CA 証明書のサムプリント>
コマンド ライン Gpupdate /force を実行して、ローカル グループ ポリシーの設定を更新します。
次の手順では、ソース コンピューター Event Viewer Applications と Services Logs\Microsoft\Windows\Eventlog-ForwardingPlugin\Operational ログに次のメッセージでイベント 104 が生成されます。
"The forwarder has successfully connected to the subscription manager at address <FQDN>followed by event 100 with the message: "The subscription <sub_name> is created successfully."
イベント コレクターで、[サブスクリプション ランタイムのステータス] に 1 台のアクティブなコンピューターが表示されます。
イベント コレクターで ForwardedEvents ログを開き、ソース コンピューターからイベントが転送されているかどうかを確認します。
イベント ソースのクライアント証明書の秘密キーに対するアクセス許可の付与
- イベント ソース コンピューターでローカル コンピューターの証明書管理コンソールを開きます。
- クライアント証明書を右クリックしてから [秘密キーの管理] をクリックします。
- NETWORK SERVICE ユーザーに読み取りアクセス許可を付与します。
イベント サブスクリプションの構成
- イベント コレクターでイベント ビューアーを開き、[サブスクリプション] ノードに移動します。
- [サブスクリプション] を右クリックして [サブスクリプションを作成] を選択します。
- 新しいサブスクリプションの名前と説明 (省略可) を指定します。
- [開始されたソース コンピューター] を選択して、[コンピューター グループを選択...] を選択します。
- [コンピューター グループ] で [ドメイン以外のコンピューターの追加...] をクリックし、 イベント ソースのホスト名を入力します。
- [証明書の追加...] をクリックし、 クライアント証明書を発行する証明機関の証明書を追加します。 [証明書の表示] をクリックして証明書を検証できます。
- [証明機関] で [OK] をクリックして証明書を追加します。
- コンピューターの追加が完了したら、[OK] をクリックします。
- [サブスクリプションのプロパティ] に戻り、[イベントの選択...] をクリックします。
- イベント レベル、イベント ログ、またはイベント ソース、イベント ID、その他のフィルター オプションを指定して、イベント クエリ フィルターを構成します。
- [サブスクリプションのプロパティ] に戻り、[詳細設定...] をクリックします。
- ソース イベントからイベント コレクターへのイベント配信の最適化オプションのいずれかを選択するか、デフォルトの [標準] のままにします。
- 帯域幅の最小化: イベントが配信され、帯域幅を節約する頻度が低くなります。
- 待機時間の最小化: イベントは発生するとすぐに配信され、イベントの待機時間が短縮されます。
- プロトコルを HTTPS に変更して [OK] をクリックします。
- [OK] をクリックして新しいサブスクリプションを作成します。
- 右クリックして [ランタイムのステータス] を選択して、サブスクリプションのランタイム ステータスを確認します。