私がやろうとしていることを説明することから始めましょう。多くのWindowsサーバーにRMMツールがインストールされています。 Windowsイベントログを中央ストアに送信することはできますが、効率的または信頼性の高い方法では送信できません。 Windows ServerのネイティブWEFを使用して、冗長ノイズのいずれかを解析した特定のイベントを中央ストアに送信したいと思います(つまり、イベントID、ソース、およびユーザー名などのイベントID /ソースに固有のその他の詳細は何ですか)試行された、ワークステーション/元のIP)。これらのサーバーは同じドメイン上になく、地理的に世界中に分散しています。これを行うためのプラットフォームが多数あることは知っていますが(Splunkなど)、通常は高額であり、この単純なタスクを実行しようとすると肥大化したナンセンスになります。
私の当初のアイデアは、サーバーでWEFを構成し、それらをリッスンするようにサブスクリプションが設定された中央サーバーにログを送信し、そこでログを解析して重要な詳細を取得し、logstash/filebeat/nxlogなどを使用してそれらをプッシュすることでしたELKに送信して、重要なイベント(ログオンの失敗、セキュリティログのクリア、Kerberosのプライベートエスカレーションエクスプロイト/ゴールデンチケットの作成など)をダッシュボードできるようにします。深くなるほど、これはWEF/WinRMの使用目的ではないことに気づきました。彼らはあなたがログを保存するために同じドメインにオンプレミスサーバーを持っていることを望んでいます。私がこれに最も近いのはこの記事です: https://blogs.msdn.Microsoft.com/canberrapfe/2015/09/21/diy-client-monitoring-setting-up-tiered-event-forwarding / ただし、同じドメインに属するAD内の複数のサイトを対象としています。この場合、中央ログ保存サーバーはどのドメインにも存在せず、他の多数のドメインからのイベントログを受け入れる必要があります。
セットアップに数時間を費やす前に、ここで質問したいと思いました。これは、WEFに煩わされることなく、filebeatを使用して問題のサーバーから直接解析およびプッシュする必要があるようなものですか?そんな感じですが、当たり前のことを見落とさないように手を差し伸べたいと思いました。
Windowsでネイティブログ配布を試みてから久しぶりですが、思ったよりずっと大変だったのを覚えています。ドメインの外で、あるいはフェデレーションの外でさえそれを行うことを想像することはできません。これは logstash の答えになります。それが私が知っていることだからです。
あなたの本能は正しいです。単一のドメインの外でこれを行う方法は、 Winlogbeat のようなものを使用してプロデューサーからWindowsイベントを抽出し、それらを処理できる場所に送信することです。 Windowsイベント操作の流暢さによっては、Windowsイベントレベルでフィルタリングを実行する方が簡単な場合があります(必要なイベントだけを同じサーバーのイベントログに送信し、WinlogBeatをその場所に向けます)。ビートレベルで行うのではなく。
これを大規模に行うことは、トレードオフについて考えることを意味します。 Windowsセキュリティログプロデューサーの大規模なフリートの場合、取り込みに関しては高いイベント率が見られます。大規模なセットアップでは、ビートとすべてのマークアップを実行するLogstash層の間に何らかのバッファリングキューを使用することを強くお勧めします。いくつかのオプションがありますが、RedisとKafkaがすでにインフラストラクチャにある場合は、それらがサポートされています。
ビートからElasticsearchに直接送信することもできますが、それでもLogstashの多くの変革力がテーブルに残ります。また、ESは、多数のノードが小さな一括挿入を実行するのではなく、少数のノードが大きな一括挿入を実行する場合に、データをより高速に(1秒あたりのイベント数が多く)取り込みます。繰り返しになりますが、ElasticSearchインフラストラクチャ/専門知識がすでにサイトにある場合がありますが、これは問題ではない可能性があります。
フォレストのDNS名をワイルドカード化することにより、ワークグループにWindowsサーバーをセットアップし、ソースによって開始されるコレクターを作成し、イベントを受信するコンピューターを指定できます。この記事の下部を参照してください。