高度なログ コレクター管理

クラウドディスカバリーログコレクタの高度なオプションを設定する

この記事では、クラウド検出ログ コレクターの詳細オプションDefender for Cloud Apps構成する方法について説明します。

Defender for Cloud Appsクラウド検出は、引き続き基本ファイアウォール形式に焦点を当てています。 ファイアウォール レベルで転送されるログに対する変更が引き続き機能しない場合や、解析に問題が発生する可能性があります。 ファイアウォールログ形式の変更による解析エラーが発生した場合は、基本ファイアウォール形式の使用を続けるか、カスタムログコレクタのオプションを使うことをお勧めします。 詳細については、「カスタム ログ パーサーの使用」を参照してください。

この記事では、Defender for Cloud Apps クラウド検出 Docker の構成を変更する方法について説明します。

ログ コレクターの FTP 構成を変更する

ログ コレクターのバージョンの確認FTP パスワードの変更証明書ファイルの追加に関するページの手順を使用して、Defender for Cloud Apps cloud discovery Docker の構成を変更します。

ログ コレクターのバージョンを確認する

システムに現在インストールされているログ コレクターのバージョンを確認するには、ログ コレクター ホストに接続し、次のコマンドを実行して、インストールされているコレクター コンポーネントのバージョンを確認します。

cat /var/adallom/versions | grep columbus-

FTP パスワードを変更する

この手順では、ログ コレクター ファイルへのアクセスに使用するパスワードを変更する方法について説明します。

  1. ログ コレクター ホストに接続し、次を実行します。

    docker exec -it <collector name> pure-pw passwd <ftp user>
    
  2. 新しいパスワードを入力し、もう一度入力して確認します。

  3. 次のコマンドを実行して変更を適用します。

    docker exec -it <collector name> pure-pw mkdb
    

ログ コレクターの FTP ルート ディレクトリで、次の内容を表示できる必要があります。

  • run_logs
  • ssl_update
  • config.json

証明書ファイルを追加する

この手順では、クラウド検出 Docker インスタンスへのセキュリティで保護された接続に使用する必要な証明書ファイルを追加する方法について説明します。

  1. FTP クライアントを開き、ログ コレクター ホストに接続します。

  2. ssl_update ディレクトリに移動し、次のファイルを含む新しい証明書ファイルをアップロードします。

    受信側の種類 必要なファイル
    FTP - pure-ftpd.pem: キーと証明書のデータが含まれます
    Syslog - ca.pem: クライアントの証明書の署名に使用された証明機関の証明書。
    - server-key.pemserver-cert.pem: ログ コレクターの証明書とキー

    Syslog メッセージは TLS 経由でログ コレクターに送信されます。これには、クライアント証明書とサーバー証明書の両方の認証を含む、相互 TLS 認証が必要です。

ファイルは必須です。 受信側の種類のファイルのいずれかが見つからない場合、更新は失敗します。

  1. ターミナル ウィンドウで、次のコマンドを実行します。

    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:~#
    
  2. ターミナル ウィンドウで、次のコマンドを実行します。

    docker exec <collector name> chmod -R 700 /etc/ssl/private/
    

プロキシの背後でログ コレクターを有効にする

プロキシの背後で実行している場合、ログ コレクターがDefender for Cloud Appsにデータを送信するときに問題が発生する可能性があります。 たとえば、ログ コレクターがプロキシのルート証明機関を信頼せず、Microsoft Defender for Cloud Appsに接続して構成を取得したり、受信したログをアップロードしたりできないため、接続エラーが発生する可能性があります。

プロキシの背後でログ コレクターを有効にするには、 プロキシの背後でログ コレクターを設定し、 Docker ログ コレクター コンテナーの作成を検証し、 プロキシ ルート CA 証明書をコンテナーにコピーして、 CA 証明書を操作するように構成を設定します。

ヒント

また、Syslog または FTP のログ コレクターで使用される証明書を変更したり、ファイアウォールとプロキシからログ コレクターへの接続の問題を解決したりすることもできます。 詳細については、「 ログ コレクターの FTP 構成を変更する」を参照してください。

プロキシの背後にログ コレクターを設定する

Windows または Linux マシンで Docker を実行するために必要な手順を実行し、Defender for Cloud Apps Docker イメージをホスト コンピューターに正常にダウンロードしたことを確認します。

設定の前提条件やデプロイ手順については、「 連続レポートのための自動ログアップロードの設定」を参照してください。

Docker ログ コレクター コンテナーの作成を検証する

コンテナーが作成され、実行中であることを確認します。 シェルで、次を実行します。

docker ps

次のような出力が表示されます。

実行中の Docker コンテナーのスクリーンショット。

プロキシ ルート CA 証明書をコンテナーにコピーする

仮想マシンから、CA 証明書を Defender for Cloud Apps コンテナーにコピーします。 次の例では、コンテナーの名前は Ubuntu-LogCollector 、CA 証明書の名前は Proxy-CA.crt です

次のコマンドは、ログ コレクターがプロキシを信頼できるように、実行中のコンテナーの探索フォルダーにプロキシ CA 証明書をコピーします。 Ubuntu ホストでコマンドを実行します。

docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery

CA 証明書で動作するように構成を設定する

次の手順を実行して、ログ コレクターがプロキシを信頼できるように、コンテナーの Java KeyStore にプロキシ CA 証明書をインポートします。

  1. コンテナーに移動します。 次のコマンドを実行して、ログ コレクター コンテナーで bash を開きます。

    docker exec -it Ubuntu-LogCollector /bin/bash
    
  2. コンテナー内の bash ウィンドウから、Java jre フォルダーに移動します。 バージョン関連のパス エラーを回避するには、次のコマンドを使用します。

    cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)"
    cd bin
    
  3. 前にコピーしたルート証明書を 検出 フォルダーから 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>
    
  4. 証明書が 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 パスワードを変更するには、次の手順を実行します。

  1. Java KeyStore サーバーを停止します。

  2. コンテナー内で bash シェルを開き、 appdata/conf フォルダーに移動します。

  3. サーバーの KeyStore パスワードを変更するには、次を実行します。

    keytool -storepasswd -new newStorePassword -keystore server.keystore
    -storepass changeit
    

    既定のサーバー パスワードは changeit

  4. 証明書のパスワードを変更するには、次を実行します。

    keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
    

    既定のサーバー エイリアスは サーバーです。

  5. テキスト エディターで、 server-install\conf\server\secured-installed.properties ファイルを 開きます。 次のコード行を追加し、変更を保存します。

    1. サーバーの新しい Java KeyStore パスワードを指定します。 server.keystore.password=newStorePassword
    2. サーバーの新しい証明書パスワードを指定します。 server.key.password=newKeyPassword
  6. サーバーを起動します。

Linux 上の別のデータ パーティションにログ コレクターを移動する

多くの企業では、データを別のパーティションに移動する必要があります。 この手順では、Defender for Cloud Apps Docker ログ コレクター イメージを Linux ホスト上のデータ パーティションに移動する方法について説明します。

この手順では、 データストア と呼ばれるパーティションへのデータの移動について説明し、パーティションを既にマウントしていることを前提としています。 以下に例を示します。

ログ コレクター データ用にマウントされたデータストア パーティションを示す Linux ディスク パーティションのスクリーンショット。

Linux ホストに新しいパーティションを追加して構成することは、このガイドの範囲外です。

ログ コレクターを別のパーティションに移動するには:

  1. Docker サービスを停止します。 実行:

    service docker stop
    
  2. ログ コレクター データを新しいパーティションに移動します。 実行:

    mv /var/lib/docker /datastore/docker
    
  3. 古い Docker ストレージ ディレクトリ (/var/lib/docker) を削除し、新しいディレクトリ (/データストア/docker) へのシンボリック リンクを作成します。 実行:

    rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
    
  4. Docker サービスを開始します。 実行:

    service docker start
    
  5. 必要に応じて、アクティブな Docker コンテナーを一覧表示して、ログ コレクター コンテナーが実行されていることを確認します。 実行:

    docker ps
    

Linux 上のログ コレクター ディスクの使用状況を調べる

この手順では、ログ コレクターのディスクの使用状況と場所を確認する方法について説明します。

  1. ログ コレクター データが格納されているディレクトリへのパスを特定します。 実行:

    docker inspect <collector_name> | grep WorkDir
    

    以下に例を示します。

    ログ コレクター ディレクトリを識別する方法のスクリーンショット。

  2. "/work" サフィックスなしで識別されたパスを使用して、ログ コレクターのディスク上のサイズを取得します。 実行:

    du -sh /var/lib/docker/overlay2/<log_collector_id>/
    

    ディスク上のログ コレクター のディレクトリ サイズを示す du コマンド出力のスクリーンショット。

    注:

    ディスク上のサイズのみを把握する必要がある場合は、代わりに次のコマンドを使用できます。 docker ps -s

アクセス可能なホストにログ コレクターを移動する

規制された環境では、ログ コレクター イメージがホストされている Docker Hubs へのアクセスがブロックされる可能性があります。 これにより、Defender for Cloud Appsがログ コレクターからデータをインポートできなくなり、アクセス可能なホストへのログ コレクター イメージの移動を解決できます。

この手順では、Docker Hubにアクセスできるコンピューターを使用してログ コレクター イメージをダウンロードし、移行先ホストにインポートする方法について説明します。

ダウンロードしたイメージは、プライベート リポジトリまたはホストに直接インポートできます。 この手順では、ログ コレクター イメージを Windows コンピューターにダウンロードし、WinSCP を使用してログ コレクターを宛先ホストに移動する方法について説明します。

前提条件

開始する前に、次の前提条件が満たされていることを確認します。

  1. ホストに Docker がインストールされていることを確認します。 たとえば、次のいずれかのダウンロードを使用します。

  2. ダウンロード後、Docker の オフライン インストール ガイド を使用してオペレーティング システムをインストールします。

    ログ コレクター イメージをエクスポートし、そのイメージを宛先ホストにインポートして、オフライン転送ワークフローを開始します。

Docker Hubからログ コレクター イメージをエクスポートする

ログ コレクター イメージをエクスポートするには、オペレーティング システムに応じて、Linux でイメージをエクスポートするか、Windowsでイメージをエクスポートします。

Linux でイメージをエクスポートする

Linux マシンからログ コレクター イメージをエクスポートするには、次の手順に従います。

  1. Docker Hubにアクセスできる Linux コンピューターで、次のコマンドを実行して Docker をインストールし、ログ コレクター イメージをダウンロードします。

    curl -o /tmp/MCASInstallDocker.sh https://discoveryresources-cdn-prod.cloudappsecurity.com/prod1/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh 
    
  2. ログ コレクター イメージをエクスポートします。 実行:

    docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector
    chmod +r /tmp/mcasLC.tar
    

    重要

    STDOUT の代わりに出力パラメーターを使用してファイルに書き込みます。

  3. WinSCP を使用して、 C:\mcasLogCollector\ の下の Windows コンピューターにログ コレクター イメージをダウンロードします。 以下に例を示します。

    Windows コンピューターにログ コレクターをダウンロードするスクリーンショット。

Windows でイメージをエクスポートする

Windows コンピューターからログ コレクター イメージをエクスポートするには、次の手順に従います。

  1. Docker HubにアクセスできるWindows 10 コンピューターに、Docker Desktop をインストールします。

  2. ログ コレクター イメージをダウンロードします。 実行:

    docker login -u caslogcollector -p C0llector3nthusiast
    docker pull mcr.microsoft.com/mcas/logcollector
    
  3. ログ コレクター イメージをエクスポートします。 実行:

    docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
    

    重要

    STDOUT の代わりに出力パラメーターを使用してファイルに書き込みます。

ログ コレクター イメージをインポートして宛先ホストに読み込む

この手順では、エクスポートしたイメージを宛先ホストに転送する方法について説明します。

  1. [ /tmp/] で、ログ コレクター イメージを宛先ホストにアップロードします。 以下に例を示します。

    宛先ホストにアップロードされているログ コレクターイメージファイルを示す WinSCP 転送ウィンドウのスクリーンショット。

  2. 宛先ホストで、ログ コレクター イメージを Docker イメージ リポジトリにインポートします。 実行:

    docker load --input /tmp/mcasLC.tar
    

    以下に例を示します。

    ログ コレクター イメージがローカル リポジトリに追加されたことを確認する docker load コマンドの出力のスクリーンショット。

  3. 必要に応じて、インポートが正常に完了したことを確認します。 実行:

    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

カスタム ポートを定義するには、次の手順に従います。

  1. Microsoft Defender ポータルで、[設定] を選択します。 次に、[ Cloud Apps] を選択します。

  2. [ Cloud Discovery]\(クラウド検出\) で、[ 自動ログ アップロード] を選択します。 次に、[ ログ コレクター ] タブを選択します。

  3. [ ログ コレクター ] タブで、ログ コレクターを追加または編集し、データ ソースを更新した後、ダイアログから 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
    

    以下に例を示します。

    ログ コレクター ウィザードからのコマンド実行のスクリーンショット。

  4. ホスト コンピューターでコマンドを使用する前に、カスタム ポートを使用するようにコマンドを変更します。 たとえば、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で予想されるログ形式と、アプライアンスによって送信されたログ形式を比較することで、解析エラーのトラブルシューティングに役立つログ形式を検証します。

次の手順を使用して、トラフィックがログ コレクターによって受信されることを確認します。

  1. Docker コンテナーをホストしているサーバーにサインインします。

  2. ログ コレクターが次のいずれかの方法を使用して Syslog メッセージを受信していることを検証します。

    • tcpdump または同様のコマンドを使用して、ポート 514 のネットワーク トラフィックを分析します

      tcpdump -Als0 port 514
      

      すべてが正しく構成されている場合は、アプライアンスからのネットワーク トラフィックが表示されます。 以下に例を示します。

      ポート 514 のアプライアンスからの受信 Syslog トラフィックを示す tcpdump 出力のスクリーンショット。

    • netcat または同様のコマンドを使用して、ホスト コンピューター上のネットワーク トラフィックを分析します。

      1. netcatwget をインストールします。

      2. Defenderポータルからサンプルログファイルをダウンロードしてください。 必要に応じて、ログ ファイルを解凍します。

        1. Defender ポータルで、Cloud Apps の下の Cloud Discovery>Actions>Cloud Discovery スナップショット レポートの作成 を選択します。

        2. ログ ファイルをアップロードする データ ソース を選択します。

        3. [ 表示して確認 ] を選択し、[ サンプル ログのダウンロード ] を右クリックし、[URL アドレス] リンクをコピーします。

        4. [ 閉じる>Cancel] を選択します

      3. 実行:

        wget <URL_address_to_sample_log>
        
      4. netcatを実行して、ログ コレクターにデータをストリーミングします。

        cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
        

      コレクターが正しく構成されている場合、ログ データはメッセージ ファイルに存在し、書き込まれた直後にDefender for Cloud Appsにアップロードされます。

    • Defender for Cloud Apps Docker コンテナー内の関連ファイルを検査します

      1. コンテナーにサインインします。 実行:

        docker exec -it <Container Name> bash
        
      2. Syslog メッセージがメッセージ ファイルに書き込まれているかどうかを判断します。 実行:

        cat /var/adallom/syslog/<your_log_collector_port>/messages
        

      すべてが正しく構成されている場合は、アプライアンスからのネットワーク トラフィックが表示されます。 以下に例を示します。

      cat コマンドを使用したトラフィックの分析のスクリーンショット。

      注:

      このファイルは、サイズが 40 KB に達するまで引き続き に書き込まれます。 以下に例を示します。

  3. /var/adallom/discoverylogsbackup ディレクトリのDefender for Cloud Appsにアップロードされたログを確認します。 以下に例を示します。

    収集された Syslog エントリを示す discoverylogsbackup ディレクトリにアップロードされたログ ファイルのスクリーンショット。

  4. ログ コレクターが受信したログ形式を検証するには、/var/adallom/discoverylogsbackupに格納されているメッセージと、Defender for Cloud Appsログ コレクターの作成ウィザードで提供されるサンプル ログ形式を比較します。

メッセージ ファイルの出力をローカル ファイルに書き込む

独自のサンプル ログを使用するが、アプライアンスにアクセスできない場合は、トラブルシューティングのために特定のデータ ソース ポートからローカル ファイルに受信 Syslog メッセージをキャプチャできます。

以下のコマンドを実行して、特定のデータソースポートに対するコレクタのSyslogメッセージをホスト上のローカルファイルにストリーミングし、ログの取り込みの検証や接続性のトラブルシューティングを行います。

docker exec CustomerLogCollectorName tail -f -q /var/adallom/syslog/<datasource_port>/messages > /tmp/log.log

出力ファイル (/tmp/log.log) を、 /var/adallom/discoverylogsbackup ディレクトリに格納されているメッセージと比較します。

ログ コレクターのバージョンを更新する

ログ コレクターを更新する場合:

  • 新しいバージョンをインストールする前に、ログ コレクターを停止し、現在のイメージを削除してください。
  • 新しいバージョンをインストールしたら証明書ファイルを更新します

次の手順

問題が発生した場合は、こちらにお問い合わせください。 製品の問題に関するサポートを受ける場合は、サポート チケットを開いてください。