Azure Monitor エージェントを使用して syslog と CEF のメッセージを Microsoft Sentinel に取り込む
この記事では、AMA 経由の Syslog コネクタと AMA 経由の Common Event Format (CEF) コネクタを使って、Linux マシンから、またネットワークとセキュリティ デバイスおよびアプライアンスから、Common Event Format (CEF) のものを含む syslog メッセージをすばやくフィルター処理して取り込む方法について説明します。 これらのデータ コネクタの詳細については、「Microsoft Sentinel 用の AMA を介した Syslog と AMA を介した Common Event Format (CEF)」を参照してください。
Note
Container Insights では、AKS クラスター内の Linux ノードからの Syslog イベントの自動収集をサポートするようになりました。 詳細については、「Container Insights を使用した Syslog 収集」を参照してください。
前提条件
開始する前に、このセクションで説明するようにリソースを構成し、適切なアクセス許可を割り当てる必要があります。
Microsoft Sentinel の前提条件
適切な Microsoft Sentinel ソリューションをインストールし、この記事の手順を完了するためのアクセス許可があることを確認します。
Microsoft Sentinel の [コンテンツ ハブ] から適切なソリューションをインストールします。 詳細については、「Microsoft Sentinel のそのまま使えるコンテンツを検出して管理する」を参照してください。
AMA 経由の Syslog と AMA 経由の Common Event Format (CEF) のうち、どちらのデータ コネクタが Microsoft Sentinel ソリューションに必要か、また Syslog と Common Event Format のどちらのソリューションをインストールする必要があるかを特定します。 この前提条件を満たすために:
[コンテンツ ハブ] で、インストールされているソリューションの [管理] を選択し、一覧表示されるデータ コネクタを確認します。
ソリューションと共に AMA 経由の Syslog または AMA 経由の Common Event Format (CEF) がインストールされていない場合は、次のいずれかの記事からアプライアンスまたはデバイスを見つけて、Syslog と Common Event Format のどちらのソリューションをインストールする必要があるかを特定します。
- AMA データ コネクタ経由の CEF - Microsoft Sentinel データ インジェスト用に特定のアプライアンスまたはデバイスを構成する
- AMA データ コネクタ経由の Syslog - Microsoft Sentinel データ インジェスト用に特定のアプライアンスまたはデバイスを構成する
次に、Syslog または Common Event Format のソリューションをコンテンツ ハブからインストールして、関連する AMA データ コネクタを取得します。
次の Azure ロールベースのアクセス制御 (Azure RBAC) の各ロールを持つ Azure アカウントが必要です。
組み込みのロール Scope 理由 - Virtual Machine Contributor
- Azure Connected Machine
リソース管理者- 仮想マシン (VM)
- Virtual Machine Scale Sets
- Azure Arc 対応サーバー
エージェントをデプロイするため 次のアクションを含む任意のロール
Microsoft.Resources/deployments/*- サブスクリプション
- Resource group
- 既存のデータ収集ルール
Azure Resource Manager テンプレートをデプロイするには Monitoring Contributor - サブスクリプション
- Resource group
- 既存のデータ収集ルール
データ収集ルールを作成または編集するには
ログ フォワーダーの前提条件
ログ フォワーダーからメッセージを収集する場合は、次の前提条件が適用されます。
ログを収集するには、指定された 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 デーモンにログ メッセージを送信するように構成する必要があります。
マシンのセキュリティの前提条件
組織のセキュリティ ポリシーに従って、マシンのセキュリティを構成してください。 たとえば、企業のネットワーク セキュリティ ポリシーに合わせてネットワークを構成し、デーモンのポートとプロトコルを要件に合わせて変更することができます。 マシンのセキュリティ構成を向上させるには、Azure で VM をセキュリティで保護するか、ネットワーク セキュリティに関するこれらのベスト プラクティスを確認してください。
ログ フォワーダーがクラウドにあるなどの理由で、デバイスが TLS 経由で syslog および CEF ログを送信する場合は、TLS で通信するように syslog デーモン (rsyslog
または syslog-ng
) を構成する必要があります。 詳細については、以下を参照してください:
データコネクターを構成する
AMA 経由の Syslog データ コネクタまたは AMA 経由の Common Event Format (CEF) データ コネクタの設定プロセスには、次の 2 つの手順が含まれます。
- 次のいずれかの方法で、Azure Monitor エージェントをインストールし、データ収集ルール (DCR) を作成します。
- ログ フォワーダーを使って他のマシンからログを収集する場合は、ログ フォワーダーで "インストール" スクリプトを実行して、他のマシンからのメッセージをリッスンするように syslog デーモンを構成し、必要なローカル ポートを開きます。
手順に適したタブを選択します。
データ収集ルール (DCR) を作成する
はじめに、Microsoft Sentinel で [AMA 経由の Syslog] または [AMA による Common Event Format (CEF)] データ コネクタを開いて、データ収集ルール (DCR) を作成します。
Azure portal の Microsoft Sentinel の場合、[構成] の下にある [データ コネクタ] を選びます。
Defender ポータルの Microsoft Sentinel の場合は、[Microsoft Sentinel]>[構成]>[データ コネクタ] を選びます。Syslog の場合、[検索] ボックスに「Syslog」と入力します。 結果から AMA 経由の Syslog コネクタを選びます。
CEF の場合、[検索] ボックスに「CEF」と入力します。 結果から、AMA 経由の Common Event Format (CEF) コネクタを選びます。詳細ウィンドウで [コネクタ ページを開く] を選択します。
[構成] 領域で、[+データ収集ルールの作成] を選びます。
[基本] タブで次の操作を行います。
- DCR 名を入力します。
- サブスクリプションを選択します。
- DCR を置くリソース グループを選びます。
[次へ: リソース]> を選択します。
VM のリソースの定義
[リソース] タブで、AMA をインストールするマシン (この場合はログ フォワーダー マシン) を選択します。 ログ フォワーダーが一覧に表示されない場合は、Azure Connected Machine エージェントがインストールされていない可能性があります。
使用可能なフィルターまたは検索ボックスを使用して、ログ フォワーダー VM を見つけます。 一覧でサブスクリプションを展開するとそのリソース グループを表示でき、リソース グループを展開するとその VM を表示できます。
AMA をインストールするログ フォワーダー VM を選択します。 VM 名にマウス ポインターを合わせると、その横にチェック ボックスが表示されます。
変更内容を確認し、[Next: Collect > (次へ: 収集 >) を選択します。
機能と重大度の選択
syslog メッセージと CEF メッセージの両方に同じ機能を使用すると、データ インジェストで重複が発生する場合があります。 詳細については、「データ インジェストの重複を回避する」を参照してください。
[収集] タブで、各機能の最小ログ レベルを選択します。 ログ レベルを選択すると、Microsoft Sentinel によって、選択したレベルと、重大度がより高いその他のレベルのログが収集されます。 たとえば、[LOG_ERR] を選択すると、Microsoft Sentinel によって、LOG_ERR、LOG_CRIT、LOG_ALERT、LOG_EMERG レベルのログが収集されます。
選択内容を確認し、[次へ: 確認と作成] を選択します。
ルールを確認して作成する
すべてのタブを完了したら、入力した内容を確認し、データ収集ルールを作成します。
[レビューと作成] タブで、 [作成] を選択します。
コネクタにより、DCR の作成時に選択したマシンに Azure Monitor エージェントがインストールされます。
Azure portal または Microsoft Defender ポータルで通知を確認し、DCR が作成されてエージェントがインストールされるタイミングを確認します。
コネクタ ページで [最新の情報に更新] を選択して、DCR が一覧に表示されていることを確認します。
"インストール" スクリプトを実行する
ログ フォワーダーを使用している場合、他のマシンからのメッセージをリッスンするように syslog デーモンを構成し、必要なローカル ポートを開きます。
コネクタ ページで、[次のコマンドを実行して、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
AMA をインストールしたばかりのログ フォワーダー マシンにサインインします。
最後の手順でコピーしたコマンドを貼り付けて、インストール スクリプトを起動します。
スクリプトは、必要なプロトコルを使用するようにrsyslog
またはsyslog-ng
デーモンを構成し、デーモンを再起動します。 このスクリプトは、UDP および TCP プロトコルの両方で受信メッセージをリッスンするために、ポート 514 を開きます。 この設定を変更するには、マシン上で実行されているデーモンの種類に応じて syslog デーモンの構成ファイルを参照してください。- Rsyslog:
/etc/rsyslog.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
Python 3 を使用していて、それがマシンで既定のコマンドとして設定されていない場合は、貼り付けたコマンドで
python
をpython3
に置き換えてください。 「ログ フォワーダーの前提条件」を参照してください。Note
エージェントが機能できないディスクがいっぱいになるシナリオを回避するため、不要なログを格納しないように
syslog-ng
またはrsyslog
の構成を設定することをお勧めします。 ディスクがいっぱいになるシナリオでは、インストールされている AMA の機能が中断されます。 詳細については、「RSyslog」または「Syslog-ng」を参照してください。- Rsyslog:
セキュリティ デバイスまたはアプライアンスを構成する
次のいずれかの記事に進み、セキュリティ デバイスまたはアプライアンスを構成するための具体的な手順を参照してください。
- AMA 経由の CEF データ コネクタ - Microsoft Sentinel データ インジェスト用に特定のアプライアンスおよびデバイスを構成する
- AMA 経由の Syslog データ コネクタ - Microsoft Sentinel データ インジェスト用に特定のアプライアンスおよびデバイスを構成する
アプライアンスやデバイスに関する詳しい情報、または情報を入手できない場合については、ソリューション プロバイダーにお問い合わせください。
接続をテストする
Linux マシンまたはセキュリティ デバイスとアプライアンスからのログ メッセージが Microsoft Sentinel に取り込まれたことを確認します。
syslog デーモンが UDP ポートで実行されていること、および AMA がリッスンしていることを検証するには、次のコマンドを実行します。
netstat -lnptv
rsyslog
またはsyslog-ng
デーモンがポート 514 でリッスンしていることが示されます。ロガーまたは接続されているデバイスから送信されたメッセージをキャプチャするには、バックグラウンドで次のコマンドを実行します。
tcpdump -i any port 514 -A -vv &
検証が完了したら、
fg
を入力し、Ctrl+C を選択してtcpdump
を停止することをお勧めします。デモ メッセージを送信するには、次の手順を実行します。
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
ロガーを使用します。 この例では、ローカル ホスト上のポート
514
に対して重大度レベルWarning
でlocal 4
機能に 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|1|rt=$common=event-formatted-receive_time"
コネクタが正しくインストールされていることを確認するには、次のコマンドのいずれかを使用してトラブルシューティング スクリプトを実行します。
CEF ログの場合は、次を実行します。
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
Cisco Adaptive Security Appliance (ASA) ログの場合は、次を実行します。
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
Cisco Firepower Threat Defense (FTD) ログの場合は、次を実行します。
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd