次の方法で共有


Azure Monitor エージェントを使用して syslog と CEF のメッセージを Microsoft Sentinel に取り込む

この記事では、 AMA 経由の Syslog と AMA コネクタ経由 の共通イベント形式 (CEF) を使用して、Linux マシン、ネットワーク デバイス、およびセキュリティ アプライアンスから syslog および CEF メッセージをフィルター処理して取り込む方法について説明します。 これらのデータ コネクタの詳細については、「Microsoft Sentinel 用の AMA を介した Syslog と AMA を介した Common Event Format (CEF)」を参照してください。

Container Insights では、AKS クラスター内の Linux ノードからの syslog イベントの自動収集がサポートされています。 詳細については、 Container Insights を使用した Syslog コレクションに関するページを参照してください。

前提条件

開始する前に、このセクションで説明するようにリソースを構成し、適切なアクセス許可を割り当てる必要があります。

Microsoft Sentinel の前提条件

適切な Microsoft Sentinel ソリューションをインストールし、この記事の手順を完了するためのアクセス許可があることを確認します。

ログ フォワーダーの前提条件

ログ フォワーダーからメッセージを収集する場合は、次の前提条件が適用されます。

  • ログを収集するには、指定された Linux VM (ログ フォワーダー) が必要です。

  • ログ フォワーダーが Azure 仮想マシン "でない" 場合、Azure Arc Connected Machine エージェントがインストールされている必要があります。

  • Linux ログ フォワーダー VM に Python 2.7 または 3 がインストールされている必要があります。 python --version または python3 --version コマンドを使用して確認してください。 Python 3 を使用している場合は、マシンで既定のコマンドとして設定されていることを確認するか、'python' ではなく 'python3' コマンドを使用してスクリプトを実行します。

  • ログ フォワーダーでは、syslog-ng または rsyslog デーモンのいずれかが有効になっている必要があります。

  • ログ フォワーダーの領域要件については、「Azure Monitor エージェントのパフォーマンス ベンチマーク」を参照してください。 また、スケーラブルなインジェストの設計に関する記載を含むこのブログ投稿も確認することをお勧めします。

  • ログ ソース、セキュリティ デバイス、アプライアンスは、ローカルの syslog デーモンではなく、ログ フォワーダーの syslog デーモンにログ メッセージを送信するように構成する必要があります。

AMA を Virtual Machine Scale Sets (VMSS) にデプロイする場合は、ラウンドロビン方式をサポートするロード バランサーを使用して、デプロイされたすべてのインスタンスへの負荷分散を確保することを強くお勧めします。

マシンのセキュリティの前提条件

組織のセキュリティ ポリシーに従って、マシンのセキュリティを構成してください。 たとえば、企業のネットワーク セキュリティ ポリシーに合わせてネットワークを構成し、デーモンのポートとプロトコルを要件に合わせて変更することができます。 マシンのセキュリティ構成を向上させるには、Azure で VM をセキュリティで保護するか、ネットワーク セキュリティに関するこれらのベスト プラクティスを確認してください。

ログ フォワーダーがクラウドにあるなどの理由で、デバイスが TLS 経由で syslog および CEF ログを送信する場合は、TLS で通信するように syslog デーモン (rsyslog または syslog-ng) を構成する必要があります。 詳細については、以下を参照してください:

データコネクターを構成する

AMA 経由の Syslog データ コネクタまたは AMA 経由の Common Event Format (CEF) データ コネクタの設定プロセスには、次の 2 つの手順が含まれます。

  1. 次のいずれかの方法で、Azure Monitor エージェントをインストールし、データ収集ルール (DCR) を作成します。
  2. ログ フォワーダーを使って他のマシンからログを収集する場合は、ログ フォワーダーで "インストール" スクリプトを実行して、他のマシンからのメッセージをリッスンするように syslog デーモンを構成し、必要なローカル ポートを開きます。

手順に適したタブを選択します。

データ収集ルール (DCR) を作成する

はじめに、Microsoft Sentinel で [AMA 経由の Syslog] または [AMA による Common Event Format (CEF)] データ コネクタを開いて、データ収集ルール (DCR) を作成します。

  1. Azure portal の Microsoft Sentinel の場合、[構成] の下にある [データ コネクタ] を選びます。
    Defender ポータルの Microsoft Sentinel の場合は、[Microsoft Sentinel]>[構成]>[データ コネクタ] を選びます。

  2. Syslog の場合、[検索] ボックスに「Syslog」と入力します。 結果から AMA 経由の Syslog コネクタを選びます。
    CEF の場合、[検索] ボックスに「CEF」と入力します。 結果から、AMA 経由の Common Event Format (CEF) コネクタを選びます。

  3. 詳細ウィンドウで [コネクタ ページを開く] を選択します。

  4. [構成] 領域で、[+データ収集ルールの作成] を選びます。

    AMA 経由の Syslog コネクタのページを示すスクリーンショット。

    AMA コネクタを介した CEF のページを示すスクリーンショット。

  5. [基本] タブで次の操作を行います。

    • DCR 名を入力します。
    • サブスクリプションを選択します。
    • DCR を置くリソース グループを選びます。

    [基本情報] タブの DCR の詳細を示すスクリーンショット。

  6. [次へ: リソース]> を選択します。

VM のリソースの定義

[リソース] タブで、AMA をインストールするマシン (この場合はログ フォワーダー マシン) を選択します。 ログ フォワーダーが一覧に表示されない場合は、Azure Connected Machine エージェントがインストールされていない可能性があります。

  1. 使用可能なフィルターまたは検索ボックスを使用して、ログ フォワーダー VM を見つけます。 一覧でサブスクリプションを展開するとそのリソース グループを表示でき、リソース グループを展開するとその VM を表示できます。

  2. AMA をインストールするログ フォワーダー VM を選択します。 VM 名にマウス ポインターを合わせると、その横にチェック ボックスが表示されます。

    DCR を設定するときにリソースを選択する方法を示すスクリーンショット。

  3. 変更内容を確認し、[Next: Collect > (次へ: 収集 >) を選択します。

機能と重大度の選択

syslog メッセージと CEF メッセージの両方に同じ機能を使用すると、データ インジェストで重複が発生する場合があります。 詳細については、「データ インジェストの重複を回避する」を参照してください。

  1. [収集] タブで、各機能の最小ログ レベルを選択します。 ログ レベルを選択すると、Microsoft Sentinel によって、選択したレベルと、重大度がより高いその他のレベルのログが収集されます。 たとえば、[LOG_ERR] を選択すると、Microsoft Sentinel によって、LOG_ERRLOG_CRITLOG_ALERTLOG_EMERG レベルのログが収集されます。

    DCR を設定するときにログ レベルを選択する方法を示すスクリーンショット。

  2. 選択内容を確認し、[次へ: 確認と作成] を選択します。

ルールを確認して作成する

すべてのタブを完了したら、入力した内容を確認し、データ収集ルールを作成します。

  1. [レビューと作成] タブで、 [作成] を選択します。

    DCR の構成をレビューして作成する方法を示すスクリーンショット。

    コネクタにより、DCR の作成時に選択したマシンに Azure Monitor エージェントがインストールされます。

  2. Azure portal または Microsoft Defender ポータルで通知を確認し、DCR が作成されてエージェントがインストールされるタイミングを確認します。

  3. コネクタ ページで [最新の情報に更新] を選択して、DCR が一覧に表示されていることを確認します。

"インストール" スクリプトを実行する

ログ フォワーダーを使用している場合、他のマシンからのメッセージをリッスンするように syslog デーモンを構成し、必要なローカル ポートを開きます。

  1. コネクタ ページで、[次のコマンドの実行] に表示されるコマンド ライン をコピーして、CEF コレクターをインストールして適用します

    コネクタ ページのコマンド ラインのスクリーンショット。

    ここからコピーすることもできます。

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. AMA をインストールしたばかりのログ フォワーダー マシンにサインインします。

  3. 最後の手順でコピーしたコマンドを貼り付けて、インストール スクリプトを起動します。
    スクリプトは、必要なプロトコルを使用するように rsyslog または syslog-ng デーモンを構成し、デーモンを再起動します。 このスクリプトは、UDP および TCP プロトコルの両方で受信メッセージをリッスンするために、ポート 514 を開きます。 この設定を変更するには、マシン上で実行されているデーモンの種類に応じて syslog デーモンの構成ファイルを参照してください。

    • Rsyslog: /etc/rsyslog.conf
    • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

    Python 3 を使用していて、それがマシンで既定のコマンドとして設定されていない場合は、貼り付けたコマンドで python3python に置き換えてください。 「ログ フォワーダーの前提条件」を参照してください。

    エージェントが機能できないディスクがいっぱいになるシナリオを回避するため、不要なログを格納しないように syslog-ng または rsyslog の構成を設定することをお勧めします。 ディスクがいっぱいになるシナリオでは、インストールされている AMA の機能が中断されます。 詳細については、「RSyslog」または「Syslog-ng」を参照してください。

  4. サービスの状態を確認します。

    ログ フォワーダーで AMA サービスの状態を確認します。

    sudo systemctl status azuremonitoragent.service
    

    rsyslog サービスの状態を確認します。

    sudo systemctl status rsyslog.service
    

    syslog-ng 環境の場合は、次の項目を確認します。

    sudo systemctl status syslog-ng.service
    

セキュリティ デバイスまたはアプライアンスを構成する

セキュリティ デバイスまたはアプライアンスを構成する手順については、次のいずれかの記事を参照してください。

アプライアンスまたはデバイスの詳細については、ソリューション プロバイダーにお問い合わせください。

接続をテストする

Linux マシンまたはセキュリティ デバイスとアプライアンスからのログ メッセージが Microsoft Sentinel に取り込まれたことを確認します。

  1. syslog デーモンが UDP ポートで実行されていること、および AMA がリッスンしていることを検証するには、次のコマンドを実行します。

     netstat -lnptv
    

    rsyslog または syslog-ng デーモンがポート 514 でリッスンしていることが示されます。

  2. ロガーまたは接続されているデバイスから送信されたメッセージをキャプチャするには、バックグラウンドで次のコマンドを実行します。

    sudo tcpdump -i any port 514 or 28330 -A -vv &
    
  3. 検証が完了したら、 tcpdumpを停止します。 「 fg」と入力し、 Ctrl+C キーを押します。

テスト メッセージを送信する

デモ メッセージを送信するには、次のいずれかの手順を実行します。

  1. nc netcat ユーティリティを使用します。 この例では、ユーティリティは、改行スイッチをオフにして、echo コマンドで投稿されたデータを読み取ります。 次に、このユーティリティは、タイムアウトなしで localhost の UDP ポート 514 にデータを書き込みます。 netcat ユーティリティを実行するには、別のパッケージをインストールすることが必要な場合があります。

    echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
    
  2. logger コマンドを使用します。 この例では、ローカル ホスト上のポート local 4 に対して重大度レベル Warning514 機能に CEF RFC 形式でメッセージを書き込みます。 -t--rfc3164 フラグは、予期されている RFC 形式に準拠するために使用されます。

    logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|rt=$common=event-formatted-receive_time"
    

    次のコマンドを使用して、Cisco ASA インジェストをテストします。

    echo -n "<164>%ASA-7-106010: Deny inbound TCP src inet:1.1.1.1 dst inet:2.2.2.2" | nc -u -w0 localhost 514
    

    これらのコマンドを実行すると、メッセージはポート 514 に到着し、ポート 28330 に転送されます。

  3. テスト メッセージを送信した後、Log Analytics ワークスペースにクエリを実行します。 ログがワークスペースに表示されるまでに最大 20 分かかることがあります。

CEF ログの場合:

CommonSecurityLog
| where TimeGenerated > ago(1d)
| where DeviceProduct == "MOCK"

Cisco ASA ログの場合:

CommonSecurityLog
| where TimeGenerated > ago(1d)
| where DeviceVendor == "Cisco"
| where DeviceProduct == "ASA"

その他のトラブルシューティング

ポート 514 でトラフィックが表示されない場合、またはテスト メッセージが取り込まれていない場合は、 Microsoft Sentinel の AMA コネクタを介した Syslog と CEF のトラブルシューティングに関するページを参照してトラブルシューティングを行ってください。