高度なログ コレクター管理
この記事では、クラウド検出ログ コレクターの詳細オプションDefender for Cloud Apps構成する方法について説明します。
Defender for Cloud Appsクラウド検出は、引き続き基本ファイアウォール形式に焦点を当てています。 ファイアウォール レベルで転送されるログに対する変更が引き続き機能しない場合や、解析に問題が発生する可能性があります。 この種のエラーが見つかる場合は、引き続き基本ファイアウォール形式を使用するか、カスタム ログ コレクターでオプションを使用することをお勧めします。 詳細については、「 カスタム ログ パーサーを使用する」を参照してください。
この記事では、Defender for Cloud Apps クラウド検出 Docker の構成を変更する方法について説明します。
ログ コレクターの FTP 構成を変更する
次のセクションの手順を使用して、Defender for Cloud Apps クラウド検出 Docker の構成を変更します。
ログ コレクターのバージョンを確認する
現在システムにインストールされているログ コレクターのバージョンを確認するには、ログ コレクター ホストに接続して、次を実行します。
cat /var/adallom/versions | grep columbus-
FTP パスワードを変更する
この手順では、ログ コレクター ファイルへのアクセスに使用するパスワードを変更する方法について説明します。
ログ コレクター ホストに接続し、次を実行します。
docker exec -it <collector name> pure-pw passwd <ftp user>
新しいパスワードを入力し、もう一度入力して確認します。
次のコマンドを実行して変更を適用します。
docker exec -it <collector name> pure-pw mkdb
次の内容を表示できます。
run_logs
ssl_update
config.json
証明書ファイルをカスタマイズする
この手順では、クラウド検出 Docker インスタンスへのセキュリティで保護された接続に使用される証明書ファイルをカスタマイズする方法について説明します。
FTP クライアントを開き、ログ コレクター ホストに接続します。
ssl_update
ディレクトリに移動し、次のファイルを含む新しい証明書ファイルをアップロードします。受信側の種類 必要なファイル FTP - pure-ftpd.pem: キーと証明書のデータが含まれます Syslog - ca.pem: クライアントの証明書の署名に使用された証明機関の証明書。
- server-key.pem と server-cert.pem: ログ コレクターの証明書とキー
Syslog メッセージは TLS 経由でログ コレクターに送信されます。これには、クライアント証明書とサーバー証明書の両方の認証を含む、相互 TLS 認証が必要です。ファイル名は必須です。 いずれかのファイルが見つからない場合、更新は失敗します。
ターミナル ウィンドウで、次のコマンドを実行します。
docker exec -t <collector name> update_certs
出力は次のコードのようになります。
root@DockerPlayground:~# docker exec -t columbus update_certs rsyslog: stopped rsyslog: started ftpd: stopped ftpd: started root@DockerPlayground:~#
ターミナル ウィンドウで、次のコマンドを実行します。
docker exec <collector name> chmod -R 700 /etc/ssl/private/
プロキシの背後でログ コレクターを有効にする
プロキシの背後で実行している場合、ログ コレクターがDefender for Cloud Appsにデータを送信するときに問題が発生する可能性があります。 たとえば、これは、ログ コレクターがプロキシのルート証明機関を信頼せず、Microsoft Defender for Cloud Appsに接続して構成を取得したり、受信したログをアップロードしたりできないために発生する可能性があります。
次の手順では、プロキシの背後でログ コレクターを有効にする方法について説明します。
ヒント
また、Syslog または FTP のログ コレクターで使用される証明書を変更したり、ファイアウォールとプロキシからログ コレクターへの接続の問題を解決したりすることもできます。 詳細については、「 ログ コレクターの FTP 構成を変更する」を参照してください。
プロキシの背後にログ コレクターを設定する
Windows または Linux マシンで Docker を実行するために必要な手順を実行し、Defender for Cloud Apps Docker イメージをホスト コンピューターに正常にダウンロードしたことを確認します。
詳細については、「 継続的レポートの自動ログ アップロードを構成する」を参照してください。
Docker ログ コレクター コンテナーの作成を検証する
コンテナーが作成され、実行中であることを確認します。 シェルで、次を実行します。
docker ps
次のような出力が表示されます。
プロキシ ルート CA 証明書をコンテナーにコピーする
仮想マシンから、CA 証明書を Defender for Cloud Apps コンテナーにコピーします。 次の例では、コンテナーの名前は Ubuntu-LogCollector 、CA 証明書の名前は Proxy-CA.crt です。
次のコマンドは、実行中のコンテナー内のフォルダーに証明書をコピーします。 Ubuntu ホストでコマンドを実行します。
docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery
CA 証明書で動作するように構成を設定する
コンテナーに移動します。 次のコマンドを実行して、ログ コレクター コンテナーで bash を開きます。
docker exec -it Ubuntu-LogCollector /bin/bash
コンテナー内の bash ウィンドウから、Java
jre
フォルダーに移動します。 バージョン関連のパス エラーを回避するには、次のコマンドを使用します。cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)" cd bin
前にコピーしたルート証明書を 検出 フォルダーから Java KeyStore にインポートし、パスワードを定義します。
既定のパスワードは
changeit
です。 詳細については、「 Java KeyStore パスワードの変更」を参照してください。./keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
証明書が CA キーストアに正しくインポートされたことを確認します。 次のコマンドを実行して、インポート時に指定したエイリアス (SelfSignedCert) を検索します。
./keytool --list --keystore ../lib/security/cacerts | grep self
インポートしたプロキシ CA 証明書が表示されます。
Linux 上のログ コレクターに syslog メッセージを送信する IP アドレスを制限する
Docker イメージをセキュリティで保護し、syslog メッセージをログ コレクターに送信できる IP アドレスが 1 つだけであることを確認するには、ホスト マシンに IP テーブル ルールを作成して、入力トラフィックを許可し、TCP/601 や UDP/514 などの特定のポート経由のトラフィックをドロップします。
次のコマンドは、ホスト コンピューターに追加できる IP テーブル ルールを作成する方法の例を示しています。 このテーブル ルールを使用すると、IP アドレス '1.2.3.4' は TCP ポート 601 経由でログ コレクター コンテナーに接続し、他の IP アドレスから送信される他のすべての接続を同じポート経由で削除できます。
iptables -I DOCKER-USER \! --src 1.2.3.4 -m tcp -p tcp --dport 601 -j DROP
新しい構成で実行するようにログ コレクターを設定する
これでコンテナーの準備ができました。
ログ コレクターの作成時に使用した API トークンを使用して、 collector_config コマンドを実行します。 以下に例を示します。
コマンドを実行するときは、次のような独自の API トークンを指定します。 collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}
以下に例を示します。
ログ コレクターは、Defender for Cloud Appsと通信できるようになりました。 Defender for Cloud Appsにデータを送信すると、ログ コレクターの状態が [正常] から [接続済み] に変わります。 以下に例を示します。
注:
たとえば、ログ コレクターの構成を更新してデータ ソースを追加または削除する必要がある場合は、通常、コンテナーを 削除 し、前の手順をもう一度実行する必要があります。
これを回避するには、Defender for Cloud Apps ポータルで生成された新しい API トークンを使用して、collector_config ツールを再実行します。
Java KeyStore パスワードを変更する
Java KeyStore サーバーを停止します。
コンテナー内で bash シェルを開き、 appdata/conf フォルダーに移動します。
サーバーの KeyStore パスワードを変更するには、次を実行します。
keytool -storepasswd -new newStorePassword -keystore server.keystore -storepass changeit
既定のサーバー パスワードは
changeit
。証明書のパスワードを変更するには、次を実行します。
keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
既定のサーバー エイリアスは サーバーです。
テキスト エディターで、 server-install\conf\server\secured-installed.properties ファイルを 開きます。 次のコード行を追加し、変更を保存します。
- サーバーの新しい Java KeyStore パスワードを指定します。
server.keystore.password=newStorePassword
- サーバーの新しい証明書パスワードを指定します。
server.key.password=newKeyPassword
- サーバーの新しい Java KeyStore パスワードを指定します。
サーバーを起動します。
Linux 上の別のデータ パーティションにログ コレクターを移動する
多くの企業では、データを別のパーティションに移動する必要があります。 この手順では、Defender for Cloud Apps Docker ログ コレクター イメージを Linux ホスト上のデータ パーティションに移動する方法について説明します。
この手順では、 データストア と呼ばれるパーティションへのデータの移動について説明し、パーティションを既にマウントしていることを前提としています。 以下に例を示します。
Linux ホストに新しいパーティションを追加して構成することは、このガイドの範囲外です。
ログ コレクターを別のパーティションに移動するには:
Docker サービスを停止します。 走る:
service docker stop
ログ コレクター データを新しいパーティションに移動します。 走る:
mv /var/lib/docker /datastore/docker
古い Docker ストレージ ディレクトリ (/var/lib/docker) を削除し、新しいディレクトリ (/データストア/docker) へのシンボリック リンクを作成します。 走る:
rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
Docker サービスを開始します。 走る:
service docker start
必要に応じて、ログ コレクターの状態を確認します。 走る:
docker ps
Linux 上のログ コレクター ディスクの使用状況を調べる
この手順では、ログ コレクターのディスクの使用状況と場所を確認する方法について説明します。
ログ コレクター データが格納されているディレクトリへのパスを特定します。 走る:
docker inspect <collector_name> | grep WorkDir
以下に例を示します。
"/work" サフィックスなしで識別されたパスを使用して、ログ コレクターのディスク上のサイズを取得します。 走る:
du -sh /var/lib/docker/overlay2/<log_collector_id>/
注:
ディスク上のサイズのみを把握する必要がある場合は、代わりに次のコマンドを使用できます。
docker ps -s
アクセス可能なホストにログ コレクターを移動する
規制された環境では、ログ コレクター イメージがホストされている Docker Hubs へのアクセスがブロックされる可能性があります。 これにより、Defender for Cloud Appsがログ コレクターからデータをインポートできなくなり、アクセス可能なホストへのログ コレクター イメージの移動を解決できます。
この手順では、Docker Hubにアクセスできるコンピューターを使用してログ コレクター イメージをダウンロードし、移行先ホストにインポートする方法について説明します。
ダウンロードしたイメージは、プライベート リポジトリまたはホストに直接インポートできます。 この手順では、ログ コレクター イメージを Windows コンピューターにダウンロードし、WinSCP を使用してログ コレクターを宛先ホストに移動する方法について説明します。
前提条件
ホストに Docker がインストールされていることを確認します。 たとえば、次のいずれかのダウンロードを使用します。
ダウンロード後、Docker の オフライン インストール ガイド を使用してオペレーティング システムをインストールします。
ログ コレクター イメージをエクスポートしてプロセスを開始し、ターゲット ホストにイメージをインポートします。
Docker Hubからログ コレクター イメージをエクスポートする
次の手順では、Linux または Windows を使用してログ コレクター イメージをエクスポートする方法について説明します。
Linux でイメージをエクスポートする
Docker Hubにアクセスできる Linux コンピューターで、次のコマンドを実行して Docker をインストールし、ログ コレクター イメージをダウンロードします。
curl -o /tmp/MCASInstallDocker.sh https://adaprodconsole.blob.core.windows.net/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh
ログ コレクター イメージをエクスポートします。 走る:
docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector chmod +r /tmp/mcasLC.tar
重要
STDOUT の代わりに出力パラメーターを使用してファイルに書き込みます。
WinSCP を使用して、
C:\mcasLogCollector\
の下の Windows コンピューターにログ コレクター イメージをダウンロードします。 以下に例を示します。
Windows でイメージをエクスポートする
Docker HubにアクセスできるWindows 10 コンピューターに、Docker Desktop をインストールします。
ログ コレクター イメージをダウンロードします。 走る:
docker login -u caslogcollector -p C0llector3nthusiast docker pull mcr.microsoft.com/mcas/logcollector
ログ コレクター イメージをエクスポートします。 走る:
docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
重要
STDOUT の代わりに出力パラメーターを使用してファイルに書き込みます。
ログ コレクター イメージをインポートして宛先ホストに読み込む
この手順では、エクスポートしたイメージを宛先ホストに転送する方法について説明します。
[
/tmp/
] で、ログ コレクター イメージを宛先ホストにアップロードします。 以下に例を示します。宛先ホストで、ログ コレクター イメージを Docker イメージ リポジトリにインポートします。 走る:
docker load --input /tmp/mcasLC.tar
以下に例を示します。
必要に応じて、インポートが正常に完了したことを確認します。 走る:
docker image ls
以下に例を示します。
移行先ホストのイメージを使用して 、ログ コレクターの作成 に進むことができます。
Linux 上のログ コレクターの Syslog および FTP レシーバーのカスタム ポートを定義する
一部の組織では、Syslog および FTP サービスのカスタム ポートを定義する必要があります。
データ ソースを追加すると、Defender for Cloud Appsログ コレクターは特定のポート番号を使用して、1 つ以上のデータ ソースからのトラフィック ログをリッスンします。
次の表に、受信側の既定のリッスン ポートの一覧を示します。
受信側の種類 | ポート |
---|---|
Syslog | * UDP/514 - UDP/51x * TCP/601 - TCP/60x |
FTP | * TCP/21 |
カスタム ポートを定義するには、次の手順に従います。
Microsoft Defender ポータルで、[設定] を選択します。 次に、[ Cloud Apps] を選択します。
[ Cloud Discovery]\(クラウド検出\) で、[ 自動ログ アップロード] を選択します。 次に、[ ログ コレクター ] タブを選択します。
[ ログ コレクター ] タブで、ログ コレクターを追加または編集し、データ ソースを更新した後、ダイアログから run コマンドをコピーします。 以下に例を示します。
指定したとおりに使用する場合、ウィザードが提供するコマンドは、ポート 514/udp と 515/udp を使用するようにログ コレクターを構成します。 以下に例を示します。
(echo <credentials>) | docker run --name LogCollector1 -p 514:514/udp -p 515:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
以下に例を示します。
ホスト コンピューターでコマンドを使用する前に、カスタム ポートを使用するようにコマンドを変更します。 たとえば、UDP ポート 414 と 415 を使用するようにログ コレクターを構成するには、コマンドを次のように変更します。
(echo <credentials>) | docker run --name LogCollector1 -p 414:514/udp -p 415:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
以下に例を示します。
注:
Docker マッピングのみが変更されます。 内部的に割り当てられたポートは変更されず、ホスト上のリッスン ポートを選択できます。
Linux 上のログ コレクターによって受信されたトラフィックとログ形式を検証する
場合によっては、次のような問題を調査する必要があります。
- ログ コレクターがデータを受信している: ログ コレクターがアプライアンスから Syslog メッセージを受信しており、ファイアウォールによってブロックされていないことを検証します。
- 受信したデータが正しいログ形式である: Defender for Cloud Appsで予想されるログ形式と、アプライアンスによって送信されたログ形式を比較することで、解析エラーのトラブルシューティングに役立つログ形式を検証します。
次の手順を使用して、トラフィックがログ コレクターによって受信されることを確認します。
Docker コンテナーをホストしているサーバーにサインインします。
ログ コレクターが次のいずれかの方法を使用して Syslog メッセージを受信していることを検証します。
tcpdump または同様のコマンドを使用して、ポート 514 のネットワーク トラフィックを分析します。
tcpdump -Als0 port 514
すべてが正しく構成されている場合は、アプライアンスからのネットワーク トラフィックが表示されます。 以下に例を示します。
netcat または同様のコマンドを使用して、ホスト コンピューター上のネットワーク トラフィックを分析します。
netcat と wget をインストールします。
Microsoft Defender XDRからサンプル ログ ファイルをダウンロードします。 必要に応じて、ログ ファイルを解凍します。
[Microsoft Defender XDR] の [Cloud Apps] で、[Cloud Discovery>Actions>[Cloud Discovery スナップショット レポートの作成] を選択します。
ログ ファイルをアップロードする データ ソース を選択します。
[ 表示して確認 ] を選択し、[ サンプル ログのダウンロード ] を右クリックし、[URL アドレス] リンクをコピーします。
[ 閉じる>Cancel] を選択します。
走る:
wget <URL_address_to_sample_log>
netcat
を実行して、ログ コレクターにデータをストリーミングします。cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
コレクターが正しく構成されている場合、ログ データはメッセージ ファイルに存在し、その直後にDefender for Cloud Apps ポータルにアップロードされます。
Defender for Cloud Apps Docker コンテナー内の関連ファイルを検査します。
コンテナーにサインインします。 走る:
docker exec -it <Container Name> bash
Syslog メッセージがメッセージ ファイルに書き込まれているかどうかを判断します。 走る:
cat /var/adallom/syslog/<your_log_collector_port>/messages
すべてが正しく構成されている場合は、アプライアンスからのネットワーク トラフィックが表示されます。 以下に例を示します。
注:
このファイルは、サイズが 40 KB に達するまで引き続き に書き込まれます。 以下に例を示します。
/var/adallom/discoverylogsbackup
ディレクトリのDefender for Cloud Appsにアップロードされたログを確認します。 以下に例を示します。ログ コレクターが受信したログ形式を検証するには、
/var/adallom/discoverylogsbackup
に格納されているメッセージと、Defender for Cloud Appsログ コレクターの作成ウィザードで提供されるサンプル ログ形式を比較します。
メッセージ ファイルの出力をローカル ファイルに書き込む
独自のサンプル ログを使用するが、アプライアンスにアクセスできない場合は、次のコマンドを使用して、ログ コレクターの syslog ディレクトリにあるメッセージ ファイルの出力をホスト上のローカル ファイルに書き込みます。
docker exec CustomerLogCollectorName tail -f -q /var/adallom/syslog/<datasource_port>/messages > /tmp/log.log
出力ファイル (/tmp/log.log
) を、 /var/adallom/discoverylogsbackup
ディレクトリに格納されているメッセージと比較します。
ログ コレクターのバージョンを更新する
ログ コレクターを更新する場合:
- 新しいバージョンをインストールする前に、ログ コレクターを停止し、現在のイメージを削除してください。
- 新しいバージョンをインストールしたら、 証明書ファイルを更新します。
次の手順
問題が発生した場合は、ここにお問い合わせください。 製品の問題に関するサポートまたはサポートを受けるためには、 サポート チケットを開いてください。