はじめに
前回のブログでは、WindowsのイベントログをWindows イベント コレクター(WEC)の機能とSnareのWECエージェントを使って上手に収集・保存する例をご紹介しました。特に、簡単でかつセキュアな方法として以下の設定を前提に説明しました。
- ADサーバーのドメイン内でソース コンピューターからWindowsサーバーのコレクター コンピューターにイベントログを収集する
- セキュアなKerberos認証を使ってソースとコレクターの間の認証を行い、通信を暗号化する
今回は、小規模のWindowsのPCやサーバーのシステムでWORKGROUPが広く使われている現状を踏まえて、WORKGROUP環境を前提に以下の内容を説明します。
- WORKGROUP環境でイベントログを収集する
- コレクター開始のサブスクリプションを使う
- 転送されたイベントログの確認にSnare Centralの検索機能を使う
Windows イベント コレクターやWinRM(Windows リモート管理)の概要については、前回のブログを参照してください。
前提条件:WORKGROUPコンピューターの構成
WORKGROUP環境でWindowsイベント コレクターを利用する場合については、Microsoftの「Configure Computers to Forward and Collect Events」の「Additional Considerations」(英語)を参考にしました。該当する部分を要約すると以下の通りです。
- WORKGROUPではコレクター開始サブスクリプションしか使えない
- 各ソース コンピューターでリモート イベントログ管理のファイアーウォール例外を追加する必要がある
- 各ソース コンピューターのEvent Log Readersグループに管理者権限を持つアカウントを追加する必要がある
- Windowsリモート管理(WinRM)でNTLM認証を使用できるようにコレクター コンピューターでコマンド実行が必要
また、今回このブログを書くにあたっては、以下のような環境で動作確認を行いました。
- ケース1:コレクター Windows 10 Enterprise×1、ソース Windows Server 2022×3
- コレクターとソースはサブネットが異なり名前の解決ができない
- コレクターでソース コンピューターはIPアドレスで指定
- ケース2:コレクター Windows Server 2022×2、ソース Windows Server 2022×1
- コレクターとソースは同一サブネット内であり、相互にNetBIOS名を解決できる
- コレクターでソース コンピューターはBetBIOS名で指定
また、WECサーバーへのイベントログ収集のために、各ソース コンピューターに管理者権限のあるローカルアカウントが必要となります。今回は簡単のためにコレクターと全ソースとに共通のアカウントを使うものとします。以下の例では、共通のkenというアカウントを各コンピューターに作っています。
ソース コンピューターの設定
Windowsリモート管理の構成
ソース コンピューターにログインし、管理者権限のあるコマンドプロンプトから以下のコマンドを実行し、Windowsリモート管理をデフォルト設定で構成します。
winrm qc -force
qcはquickconfigの省略形なので、 winrm quickconfig -forceとしても同じです。このコマンドを実施することにより、このコンピューターへリモートからアクセスして制御できるようになります。
このコマンドの説明は、winrm qc -? で取得できます。前回のブログは-qでquietオプションを使いましたが、今回の-forceオプションは、ファイアウォールの例外設定も強制的に有効にする点が異なります。
ログ収集・転送用アカウントの追加
続いて、ソース コンピューターに管理者権限のあるログ収集・転送用のアカウントを追加します。具体的には次のように行います。
ソース コンピューターの管理者権限のあるコマンドプロンプトからcompmgmt + enterキーを入力して[コンピューターの管理]を立ち上げます。
[コンピューターの管理(ローカル)]を展開し、更に[システムツール]を展開し、更に[ローカル ユーザーとグループ]を展開して[ユーザー]を右クリックして[新しいユーザー]を選択します。
[ユーザー名]と[パスワード]および[パスワードの確認入力]に、ログ収集用のアカウントkenのユーザー名とパスワードを入力します。パスワードは、コレクター コンピューターも各ソース コンピューターも同じに設定します。
[ユーザーは次回ログオン時にパスワードの変更が必要]のチェックをはずし、代わりに[ユーザーはパスワードを変更できない]と[パスワードを無期限にする]をチェックし、[作成]をクリックします。
ログ収集が途中で止まって、アカウントのパスワードを設定しなおすのは大変なので、こうするのがよいと思います。これにより、ログ収集用のアカウントkenが作成できました。
続いて、このアカウントを[Administrators]のグループに追加し管理者権限を付与します。
具体的には、同じ[コンピューターの管理] | [システムツール] | [ローカル ユーザーとグループ] | [グループ]の中の[Administrators]のグループを選択し、右クリックして[Administratorsのプロパティ]を開きます。[追加]をクリックして、オブジェクト ピッカーを開き、そこで[選択するオブジェクト名]の入力フィールドに先ほどのアカウント名を入力します。[名前の確認]で問題がないことを確認して、[OK]をクリックして作業を完了します。
続いて、同じ[グループ]の中から[Event Log Readers]を右クリックしてプロパティを表示します。同様に[追加]ボタンでオブジェクト ピッカーを開いて、ログ収集用アカウントと[NETWORK SERVICE]を追加します。この[NETWORK SERVICE]アカウントの追加は、セキュリティログの転送のために必要なものであり、セキュリティログが不要であれば追加する必要はありません。
アカウントの追加作業が終わったところで、結果を反映するためにWindowsを再起動します。
ファイアウォールの設定
同じコマンドプロンプトから、control panel+enterで[コントロールパネル]を立ち上げます。[システムとセキュリティ] | [Windows Defender ファイアウォール] | [詳細設定]を開いて、[受信の規則]を選択します。[ファイルとプリンターの共有(SMB受信)]で必要なネット―ワーク(この場合はプライベートと考えられる)の必要なスコープのTCP 445ポートの受信が許可されていることを確認します。
許可されていない場合は、セキュリティを考慮して必要最低限の範囲で、通信を許可するように設定します。以下の例では、コレクターが192.168.91.0/24のサブネットにあるので、ローカル サブネットに加えて、そのサブネットからの受信を許可しています。
以上でソース コンピューターの設定作業を終えます。複数台のソース コンピューターがある場合には、この同じ作業を台数分繰り返します。多数台ある場合の合理的なやり方については、別の機会に説明したいと思います。
コレクター コンピューターの設定
イベント コレクター サービスとWindowsリモート管理の構成
管理者権限のあるコマンドプロンプトから、以下のコマンドを実行してイベント コレクター サービスの構成を行います。
wecutil qc /q
このコマンドの意味については、前回のブログの「6. 2.イベント コレクター サービスの構築」をご覧ください。
続いて、Windowsリモート管理をデフォルトで構成しファイアウォールの例外を設定します。
winrm qc -force
ログ収集用アカウントの追加
ソース コンピューターに追加したものと同じアカウント名で同じパスワードのアカウントを作成し、同様にAdministratorsのグループに追加して管理者権限を与えます。
Windowsリモート管理のTrustedHostsへのソース コンピューターの追加
今回はWORKGROUPコンピューター間でのイベントログの転送なので、ケルベロス(Kerberos)認証が使えません。そのため、NTLM認証(NT LAN Manager Authentication)で、WinRMによるリモートコンピューターの認証を行うことになります。
WinRMのデフォルトでは、NTLM認証*1で信用するリモート コンピューターは何も設定されていません。今回のソース コンピューターをこの信用するリモート コンピューターに登録するため、以下のコマンドをコレクター コンピューターの管理者権限のあるコマンドプロンプトで実行します。
winrm set winrm/config/client @{TrustedHosts=”<sources>”}
<sources>にはソース コンピューターのリストを記述します。名前の解決ができていれば、NetBIOS名をカンマ区切りで列挙すればよく、ワイルドカードを使うこともできます。名前が解決できていない場合は、IPアドレスを指定することもできます。
1)WinRMの認証方法としては、ネゴシエート認証です。ネゴシエート認証では、相手コンピューターがドメイン内の場合はKerberos認証を使い、WORKGROUPの場合はNTLM認証を使います。
コレクター開始サブスクリプションの構成
サブスクリプションのプロパティ:コンピューターの選択
コマンドプロンプトからeventvwrコマンドを実行するなどして、[イベントビューアー]を立ち上げます。左側の一番下にある[サブスクリプション]を選択し、右クリックで開いたプルダウンメニューから[サブスクリプションの作成]を選択し、[サブスクリプションのプロパティ]ウインドウを開きます。[サブスクリプション名]と[説明]には、後々のことを考えて中身が分かり易いような名前と説明を入力します。
[宛先ログ]は[Forwarded Events]のままとして、[サブスクリプションの種類とソース コンピューター]では、デフォルトの[コレクターによる開始]のラジオボタンを選択した状態で、[コンピューターの選択]をクリックします。
[ドメイン コンピューターの追加]をクリックして、オブジェクト ピッカーを開きます。[選択するオブジェクト名を入力してください]にログを受信するソース コンピューターのIPアドレスまたはNetBIOS名を入力して、[名前の確認]を行います。問題ないことが分かれば、[OK]を選択します。
続いて[コンピューター名]を選択した状態で、[テスト]をクリックして[接続テストに成功しました]というメッセージが出力されることを確認します。これでソース コンピューターを一つ追加完了です。
この作業をソース コンピューターの数だけ繰り返します。
サブスクリプションのプロパティ:イベントの選択
[イベントの選択]については前回と同じなので、そちらをご覧ください。
サブスクリプションのプロパティ:詳細設定
[詳細設定]をクリックすると[ユーザーアカウント]の欄は、デフォルトでは[コンピューター アカウント]がラジオボタンで選択されています。しかし、ここでは[特定のユーザー]を選択します。
続いて、[ユーザーとパスワード]をクリックして[サブスクリプション ソースの資格情報]を開きます。イベントログ収集用に作った共通のアカウントのユーザー名とパスワードを入力し[OK]をクリックします。
[イベント配信の最適化]は[標準]のまま*2で、[プロトコル]は[HTTP]のままとします。
2)[帯域幅の最小化]と[待ち時間の最小化]を選択した場合はプッシュ配信モードを使用すると、「WEFイベントはどのぐらいの頻度で配信されますか?」に記述があります。コレクター開始の場合はプル配信モードとなり、その点で矛盾する設定となるので、[標準]がよいと思われます。コレクター開始のサブスクリプションで、それらを選択した場合にどうなるかは、現時点では検証しておりません。
サブスクリプションの[ランタイムの状態]の確認
[サブスクリプションのプロパティ]の設定を全部入力し終わったところで、一番下にある[OK]をクリックして、設定を完了します。
サブスクリプションのトップ画面で、サブスクリプション名の左にアクティブの印として緑のチェックマークがあることを確認します。更に、入力し終わったサブスクリプションを選択した状態で右クリックして、プルダウンメニューから、[ランタイムの状態]を選択します。
以下のようにソース コンピューターが全部アクティブとなっていれば問題ありません。[エラー]しているソース コンピューターについては、そのコンピューターを選択した状態で一番下の窓に、エラー内容が表示されますので、それを確認して原因を探ります。
イベントログ受信の確認
[イベントビューアー]が開いているので、ついでに簡単に[Windows ログ]の[Forwarded Events]を選択して、ソース コンピューターからのログが受信できているか確認します。
[コンピューター]の欄に受信しているはずのソース コンピューター名があることを確認します。
セキュリティ上のリスク
WORKGROUP環境でイベント コレクターを使ってイベントログを収集するには、これまでの説明でお分かりのように、以下のようなセキュリティ上で問題となり得る設定が必要です。
- ログ収集用の管理者権限のあるアカウントを全部のマシンに設定する必要がある
- SMBのためのファイアウォールの例外を設定する必要がある
これらの点がセキュリティホールにならないように注意して設定、運用するようにしましょう。また、WORKGROUP名はデフォルトのWORKGROUPから変更して運用した方が安全でしょう。
加えて、WORKGROUP内のファイルアクセス等と同様にイベントログの転送も暗号化されない点についても注意が必要です。
Snare CentralのEvent Searchを利用した動作確認
WECサーバーへのSnareのWECエージェントのインストールとWECに関する設定については、前回のブログ記事の「8.WECエージェントのインストールと設定」ご覧ください。
また、ログサーバー Snare Centralのインストールについては、「Snare Centralインストールガイド」をご参照ください。
ここではそれらが準備できた状態で、WECサーバーが収集した各Windowsのイベントログを検索して確認する方法を簡単にご紹介します。
Snare CentralのWeb UIで、左側のペインから[Event Search]を選択します。開いた直後の状態では、一番上の[Basic]と[Advanced]では[Basic]が選択されています。二段目以降の検索条件の設定は、デフォルトでは以下の通りになっております。
- [Date Range]は[Today]に設定
- [Systems]は[All systems](すべてのシステム)に設定
- [Log Types]は[All Log Types](すべてのログタイプ)に設定
- [Fields]は何も設定されていない
ここで二番目の[Systems]のプルダウンを開いて、以下のようにソース コンピューターのホスト名が見つかれば、少なくとも何等かのログが受信・保存されていることが確認できます。
ここで、目的のソース コンピューターにチェックを入れて、右端にある虫眼鏡マークの[Search]のボタンをクリックすれば、その日に受信できた選択したシステムのログすべてがヒットします。
検索結果は例えば以下のように棒グラフとイベントログのリストが表示されます。
一つの棒グラフは15分の時間帯でのログの発生件数を表しています。ここで棒グラフの一つをクリックすると以下のように右側に円グラフが表示されます。
この円グラフは、その15分間に受信したログの種類が表示されます。今回はWindowsのログを検索しているので、MSWinEventLog2というタイプのログだけが検索にかかりました。ここで、今度は円グラフの中からドリルダウしたいログのタイプの部分をクリックすると、以下のような二重の円グラフが表示されます。
ここでは外側の円グラフが同じMSWinEventLog2のログタイプのログの中の送信元別の割合を表しています。ここで、外側の円グラフの中から一つの送信元システムをクリックすれば、時間帯とログタイプと送信元で絞り込んだログのリストが下のリストに表示されます。
フリーワードでの検索や、フィールドを指定した検索などもできますので、到着しているログ数などから、問題なくログを収集・保存できているかを確認できます。
おわりに
Windows イベント コレクター(WEC)とSnare WECエージェントを使って、多数のWindowsマシンのイベントログをマシン毎に整理して収集・保存する手順を理解していただけましたでしょうか。
証明書を使ってWECでイベントログを収集する方法については、次回ご紹介したいと思います。
Snare製品についてもっと知りたいと感じられた方は、以下のお問い合わせをご利用ください。
最後までお読みいただき、ありがとうございました。
参考資料
今回の記事の参考資料
今回の記事の内容に関して、参考になるMicrosoftのドキュメントおよび日本語で読める参考となるブログ記事などのリンクを集めましたので、参考にしてください。
- Configure Computers to Forward and Collect Events | Microsoft Learn
- Create a New Event Subscription | Microsoft Learn
- Configure Advanced Subscription Settings | Microsoft Learn
- リモート接続の認証 – Win32 apps | Microsoft Learn
- Windows PCのイベントログを無料で特定のPCに転送・収集・管理する方法 (haruru29.net)
- 【Windows 11対応】Windowsでホスト名からIPアドレスを見つける方法:Tech TIPS – @IT (itmedia.co.jp)
前回の記事
Windows インベントコレクターのソース開始のサブスクリプションおよびADドメイン環境内でのイベントログ転送については前回の記事をご覧ください。また、Snare WECエージェントのインストールとWECに関する設定についても、前回の記事を参照願います。
お問合せ
30日無償でご利用いただける評価版を以下ダウンロードリンクにご用意しております。簡単に検証が開始できますので、ぜひお気軽にお試しください。
ジュピターテクノロジー 堅