高级日志收集器管理

本文介绍如何为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 密码

此过程介绍如何更改用于访问日志收集器文件的密码:

  1. 连接到日志收集器主机并运行:

    docker exec -it <collector name> pure-pw passwd <ftp user>
    
  2. 输入新密码,然后再次输入以确认。

  3. 运行以下命令以应用更改:

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

应能够查看以下内容:

  • 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 身份验证,包括对客户端和服务器证书进行身份验证。

    文件名是必需的。 如果缺少任何文件,更新将失败。

  3. 在终端窗口中,运行:

    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:~#
    
  4. 在终端窗口中,运行:

    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 日志收集器容器创建

验证容器是否已创建并正在运行。 在 shell 中,运行:

docker ps

应会看到类似于以下输出的内容:

正在运行的 Docker 容器的屏幕截图。

将代理根 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 证书

  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 证书。

限制将 syslog 消息发送到 Linux 上的日志收集器的 IP 地址

若要保护 docker 映像并确保仅允许一个 IP 地址将 syslog 消息发送到日志收集器,请在主机上创建 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 密码

  1. 停止 Java KeyStore 服务器。

  2. 在容器中打开 bash shell 并转到 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) ,并创建指向 /datastore/docker) (新目录的符号链接。 运行:

    rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
    
  4. 启动 Docker 服务。 运行:

    service docker start
    
  5. (可选)验证日志收集器的状态。 运行:

    docker ps
    

检查 Linux 上的日志收集器磁盘使用情况

此过程介绍如何查看日志收集器磁盘使用情况和位置。

  1. 确定存储日志收集器数据的目录的路径。 运行:

    docker inspect <collector_name> | grep WorkDir
    

    例如:

    如何标识日志收集器目录的屏幕截图。

  2. 使用不带“/工作”后缀的标识路径获取日志收集器磁盘的大小。 运行:

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

    如何标识磁盘上的日志收集器大小的屏幕截图。

    注意

    如果只需要知道磁盘的大小,则可以改用以下命令: docker ps -s

将日志收集器移动到可访问的主机

在受管制环境中,可能会阻止对托管日志收集器映像的 Docker 中心的访问。 这可以防止Defender for Cloud Apps从日志收集器导入数据,并且可以解析将日志收集器映像移动到可访问的主机。

此过程介绍如何使用有权访问Docker Hub的计算机下载日志收集器映像并将其导入目标主机。

下载的映像可以导入到专用存储库中,也可以直接导入到主机上。 此过程介绍如何将日志收集器映像下载到 Windows 计算机,然后使用 WinSCP 将日志收集器移动到目标主机。

先决条件

  1. 请确保已在主机上安装 Docker。 例如,使用以下下载项之一:

  2. 下载后,请使用 Docker 的 脱机安装指南 安装操作系统。

    通过 导出日志收集器映像 ,然后将 映像导入目标主机来启动该过程。

从Docker Hub导出日志收集器映像

以下过程介绍如何使用 Linux 或 Windows 导出日志收集器映像。

在 Linux 上导出映像

  1. 在有权访问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
    
  2. 导出日志收集器映像。 运行:

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

    重要

    请确保使用 输出 参数写入文件,而不是 STDOUT

  3. 使用 WinSCP 将日志收集器映像下载到 Windows 计算机 C:\mcasLogCollector\ 。 例如:

    将日志收集器下载到 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/将日志收集器映像上传到目标主机。 例如:

    将日志收集器上传到目标主机的屏幕截图。

  2. 在目标主机上,将日志收集器映像导入 Docker 映像存储库。 运行:

    docker load --input /tmp/mcasLC.tar
    

    例如:

    将日志收集器映像导入 Docker 存储库的屏幕截图。

  3. (可选)验证导入是否已成功完成。 运行:

    docker image ls
    

    例如:

    验证日志收集器导入是否成功的屏幕截图。

    现在可以继续使用目标主机中的映像 创建日志收集器

为 Linux 上的日志收集器定义 Syslog 和 FTP 接收器的自定义端口

某些组织要求为 Syslog 和 FTP 服务定义自定义端口。

添加数据源时,Defender for Cloud Apps日志收集器使用特定的端口号来侦听来自一个或多个数据源的流量日志。

下表列出了接收方的默认侦听端口:

接收方类型 端口
Syslog * UDP/514 - UDP/51x
* TCP/601 - TCP/60x
FTP * TCP/21

使用以下步骤定义自定义端口:

  1. 在Microsoft Defender门户中,选择“设置”。 然后选择“ 云应用”。

  2. “云发现”下,选择“ 自动日志上传”。 然后选择“ 日志收集器 ”选项卡。

  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
      

      如果正确配置了所有内容,应会看到来自设备的网络流量。 例如:

      通过 tcpdump 分析网络流量的屏幕截图。

    • 使用 netcat 或类似命令分析主机上的网络流量

      1. 安装 netcatwget

      2. 从 Microsoft Defender XDR 下载示例日志文件。 如果需要,请解压缩日志文件。

        1. 在Microsoft Defender XDR,在“云应用”下,选择“云发现>操作>”“创建云发现快照报表”。

        2. 选择要从中上传日志文件的 数据源

        3. 选择“ 查看并验证 ”,然后右键单击“ 下载示例日志 ”并复制 URL 地址链接。

        4. 选择 “关闭>取消”。

      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. 查看上传到目录中Defender for Cloud Apps的/var/adallom/discoverylogsbackup日志。 例如:

    查看上传的日志文件。

  4. 通过将存储在 中的/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 的消息进行比较。

更新日志收集器版本

更新日志收集器时:

  • 在安装新版本之前,请确保停止日志收集器并删除当前映像。
  • 安装新版本后更新证书文件

后续步骤

如果你遇到任何问题,我们随时为你提供帮助。 若要获取有关产品问题的帮助或支持,请 开具支持票证