Расширенное управление сборщиком журналов

В этой статье описано, как настроить расширенные параметры для сборщиков журналов Cloud Discovery в Defender for Cloud Apps.

Defender for Cloud Apps обнаружение облака по-прежнему сосредоточено на базовых форматах брандмауэра. Изменения, вносимые в журналы, пересылаемые на уровне брандмауэра, могут перестать работать или вызвать проблемы с разбором. При обнаружении ошибок такого рода рекомендуется продолжать использовать базовый формат брандмауэра или использовать параметры с пользовательским сборщиком журналов. Дополнительные сведения см. в разделе Использование настраиваемого средства синтаксического анализа журналов.

В этой статье описано, как изменить конфигурацию Docker-образа обнаружения облака в Defender for Cloud Apps.

Изменение конфигурации 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 Cloud Discovery.

  1. Откройте FTP-клиент и подключитесь к узлу сборщика журналов.

  2. Перейдите в ssl_update каталог и отправьте новые файлы сертификатов, включая следующие:

    Тип получателя Требуемые файлы
    FTP - pure-ftpd.pem: включает данные ключа и сертификата.
    Syslog - ca.pem: сертификат центра сертификации, который использовался для подписи сертификата клиента.
    - server-key.pem и server-cert.pem: сертификат и ключ сборщика журналов

    Сообщения системного журнала отправляются по протоколу 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, скопируйте сертификат корневого ЦС прокси-сервера в контейнер и задайте конфигурацию для работы с сертификатом ЦС.

Совет

Вы также можете изменить сертификаты, используемые сборщиком журналов для syslog или FTP, или устранить проблемы с подключением брандмауэров и прокси-серверов к сборщику журналов. Дополнительные сведения см. в разделе Изменение конфигурации FTP сборщика журналов.

Настройте сборщик журналов за прокси-сервером

Убедитесь, что вы выполнили необходимые действия для запуска Docker на компьютере с Windows или Linux и успешно загрузили образ Docker Defender for Cloud Apps на главный компьютер.

Дополнительные сведения см. в разделе Настройка автоматической отправки журналов для непрерывных отчетов.

Проверьте создание контейнера для сбора журналов Docker

Убедитесь, что контейнер создан и запущен. В оболочке выполните следующую команду:

docker ps

Вы должны увидеть нечто похожее на следующий результат:

Снимок экрана: запущенный контейнер Docker.

Скопируйте корневой сертификат центра сертификации прокси-сервера в контейнер

Скопируйте сертификат ЦС из виртуальной машины в контейнер Defender for Cloud Apps. В следующем примере контейнер называется Ubuntu-LogCollector , а сертификат ЦС — Proxy-CA.crt.

Следующая команда копирует сертификат центра сертификации прокси-сервера в каталог discovery работающего контейнера, чтобы сборщик журналов мог доверять прокси-серверу. Выполните команду на узле Ubuntu:

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

Настройка конфигурации для работы с сертификатом ЦС

Выполните следующие действия, чтобы импортировать сертификат ЦС прокси-сервера в Java KeyStore контейнера, чтобы сборщик журналов доверял прокси-серверу.

  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 и определите пароль.

    Пароль по умолчанию — changeit. Чтобы изменить пароль по умолчанию, см. раздел "Изменение пароля Java KeyStore".

    ./keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
    
  4. Убедитесь, что сертификат правильно импортирован в хранилище ключей ЦС. Выполните следующую команду, чтобы найти псевдоним, указанный во время импорта (SelfSignedCert):

    ./keytool --list --keystore ../lib/security/cacerts | grep self
    

    Отобразится импортированный сертификат ЦС прокси-сервера.

Ограничьте IP-адреса, отправляющие сообщения syslog коллектору логов в Linux

Чтобы защитить образ Docker и убедиться, что только один IP-адрес может отправлять сообщения системного журнала сборщику журналов, создайте правило таблицы 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

Настройка сборщика журналов для запуска с новой конфигурацией

Контейнер готов.

collector_config Выполните команду, используя маркер API, который использовался при создании сборщика журналов. Например:

Снимок экрана: диалоговое окно

При выполнении команды укажите собственный токен API, например collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}

Например:

Снимок экрана: пример обновления конфигурации.

Теперь сборщик журналов может взаимодействовать с Defender for Cloud Apps. После отправки данных в Defender for Cloud Apps состояние сборщика журналов изменяется с Исправно на Подключено. Например:

Снимок экрана: состояние сборщика журналов, изменяющееся с

Примечание.

Если необходимо обновить конфигурацию сборщика журналов, чтобы добавить или удалить источник данных, например, необходимо удалить контейнер и повторить действия, описанные в разделе "Настройка сборщика журналов за прокси-сервером с помощью задания сборщика журналов для запуска с новой конфигурацией".

Чтобы избежать этого, можно повторно запустить средство collector_config с новым маркером API, созданным в Defender for Cloud Apps.

Изменение пароля Java KeyStore

Выполните следующие действия, чтобы изменить пароль Java KeyStore, используемый сборщиком журналов.

  1. Остановите сервер Хранилища ключей Java.

  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

Во многих компаниях требуется переместить данные в отдельную секцию. В этой процедуре описывается перемещение образов сборщика журналов Docker Defender for Cloud Apps в раздел данных на узле Linux.

В этой процедуре описывается перемещение данных в секцию с именем datastore и предполагается, что секция уже подключена. Например:

Снимок экрана с разделами диска 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. Запуск:

    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, в которых размещен образ сборщика журналов, может быть заблокирован. Это не позволяет Defender for Cloud Apps импортировать данные из сборщика журналов; эту проблему можно устранить, переместив образ сборщика журналов на доступный узел.

В этой процедуре описывается, как скачать образ сборщика журналов с помощью компьютера, имеющего доступ к Docker Hub, и импортировать его на целевой узел.

Скачанный образ можно импортировать либо в ваш закрытый репозиторий, либо непосредственно на хост. В этой процедуре описано, как скачать образ сборщика журналов на компьютер под управлением Windows, а затем с помощью WinSCP перенести образ сборщика журналов на целевой хост.

Предварительные условия

Перед началом работы убедитесь, что выполнены следующие предварительные требования.

  1. Убедитесь, что на узле установлен Docker. Например, используйте один из следующих загрузок:

  2. После скачивания используйте автономное руководство по установке Docker, чтобы установить операционную систему.

    Начните процедуру автономного переноса с экспорта образа сборщика журналов, а затем импортируйте образ на целевой хост.

Экспортируйте образ сборщика логов из вашего Docker Hub

Чтобы экспортировать образ сборщика журналов, используйте экспорт образа в Linux или экспорт образа в Windows в зависимости от операционной системы.

Экспорт образа в Linux

Выполните следующие действия, чтобы экспортировать образ сборщика журналов с компьютера Linux.

  1. На компьютере Linux с доступом к Docker Hub выполните следующую команду, чтобы установить 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. Скачайте образ сборщика журналов на компьютер Windows в папку C:\mcasLogCollector\ с помощью WinSCP. Например:

    Снимок экрана: скачивание сборщика журналов на компьютер Windows.

Экспорт образа в Windows

Выполните следующие действия, чтобы экспортировать образ сборщика журналов с компьютера Windows.

  1. На Windows 10 компьютере с доступом к Docker Hub установите 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
    

    Например:

    Снимок экрана: проверка успешности импорта сборщика журналов.

    Теперь можно приступить к созданию сборщика журналов, используя образ с целевого хоста.

Настройка пользовательских портов для приёмников Syslog и FTP для сборщиков журналов в Linux-системах

В некоторых организациях требуется определить пользовательские порты для служб Syslog и FTP.

При добавлении источника данных сборщики журналов Defender for Cloud Apps используют определенные номера портов для прослушивания журналов трафика из одного или нескольких источников данных.

В следующей таблице перечислены порты прослушивания по умолчанию для получателей.

Тип получателя Порты
Системный журнал * UDP/514 - UDP/51x
* TCP/601 — TCP/60x
FTP * TCP/21

Чтобы определить настраиваемые порты, выполните следующие действия.

  1. На портале Microsoft Defender выберите Параметры. Затем выберите Облачные приложения.

  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

Иногда может потребоваться изучить следующие проблемы:

  • Сборщики журналов получают данные. Убедитесь, что сборщики журналов получают сообщения системного журнала с устройств и не заблокированы брандмауэрами.
  • Полученные данные имеют правильный формат журнала: Проверьте формат журнала, чтобы упростить устранение ошибок анализа, сравнив формат журнала, ожидаемый Defender for Cloud Apps, с форматом, отправленным вашим устройством.

Чтобы убедиться, что трафик получен сборщиками журналов, выполните следующие действия.

  1. Войдите на сервер, на котором размещен контейнер Docker.

  2. Убедитесь, что сборщик журналов получает сообщения системного журнала, используя любой из следующих методов:

    • Используйте tcpdump или аналогичную команду для анализа сетевого трафика через порт 514:

      tcpdump -Als0 port 514
      

      Если все настроено правильно, вы увидите сетевой трафик от устройств. Например:

      Снимок экрана: выходные данные tcpdump с входящим трафиком Syslog из устройств через порт 514.

    • Используйте netcat или аналогичную команду для анализа сетевого трафика на хост-компьютере:

      1. Установите netcat и wget.

      2. Скачайте пример файла журнала из Microsoft Defender XDR. При необходимости распакуйте файл журнала.

        1. В Microsoft Defender XDR в разделе Облачные приложения выберите Cloud Discovery>Действия>Создать моментальный отчет Cloud Discovery.

        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 вскоре после записи.

    • Проверьте соответствующие файлы в контейнере Docker Defender for Cloud Apps:

      1. Войдите в контейнер. Запуск:

        docker exec -it <Container Name> bash
        
      2. Определите, записываются ли сообщения системного журнала в файл сообщений. Запуск:

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

      Если все настроено правильно, вы увидите сетевой трафик от устройств. Например:

      Снимок экрана: анализ трафика с помощью команды cat.

      Примечание.

      Запись в этот файл будет продолжаться, пока его размер не достигнет 40 КБ. Например:

  3. Просмотрите журналы, загруженные в Defender for Cloud Apps в каталоге /var/adallom/discoverylogsbackup. Например:

    Снимок экрана: отправленные файлы журнала в каталоге discoverylogsbackup с собранными записями Системного журнала.

  4. Проверьте формат журнала, полученного сборщиком журналов, сравнив сообщения, хранящиеся в /var/adallom/discoverylogsbackup, с примером формата журнала, приведённым в мастере Defender for Cloud Apps Создание сборщика журналов.

Запись выходных данных файла сообщений в локальный файл

Если вы хотите использовать собственный пример журнала, но у вас нет доступа к устройству, вы можете записать входящие сообщения Системного журнала из определенного порта источника данных в локальный файл для устранения неполадок. Используйте следующую команду, чтобы непрерывно отслеживать файл messages из каталога syslog сборщика журналов и записывать вывод в локальный файл на хосте:

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

Сравните выходной файл (/tmp/log.log) с сообщениями, хранящимися в каталоге /var/adallom/discoverylogsbackup .

Обновление версии сборщика журналов

При обновлении сборщика логов:

  • Перед установкой новой версии обязательно остановите сборщик журналов и удалите текущий образ.
  • После установки новой версииобновите файлы сертификатов.

Дальнейшие действия

Если у вас возникнут какие-либо проблемы, мы здесь, чтобы помочь. Чтобы получить помощь или поддержку по проблеме с продуктом, отправьте запрос в службу поддержки.