Поделиться через


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

В этой статье описывается настройка дополнительных параметров для сборщиков журналов cloud discovery приложений Defender для облака.

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

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

Изменение конфигурации FTP сборщика журналов

Используйте эти действия в следующих разделах, чтобы изменить конфигурацию для docker облачного обнаружения приложений Defender для облака.

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

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

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.pem и server-cert.pem: сертификат и ключ сборщика журналов

    Сообщения системного журнала отправляются по протоколу 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 для облака Приложения. Например, это может произойти, так как сборщик журналов не доверяет корневому центру сертификации прокси-сервера и не может подключиться к Microsoft Defender для облака Apps для получения конфигурации или отправки полученных журналов.

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

Совет

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

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

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

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

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

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

docker ps

Должен отобразиться результат, аналогичный следующему:

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

Копирование сертификата корневого ЦС прокси-сервера в контейнер

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

Следующая команда копирует сертификат в папку в запущенном контейнере. Выполните команду на узле Ubuntu:

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

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

  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".

    ./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-адресов отправки сообщений системного журнала сборщику журналов в 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 для облака Приложениями. После отправки данных в приложения Defender для облака состояние сборщика журналов изменяется с "Работоспособный" на "Подключено". Например:

Снимок экрана: состояние отправки.

Примечание.

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

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

Изменение пароля Хранилища ключей Java

  1. Остановите сервер Java KeyStore.

  2. Откройте оболочку bash внутри контейнера и перейдите в папку appdata/conf .

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

    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-install.properties . Добавьте следующие строки кода и сохраните изменения:

    1. Укажите новый пароль Хранилища ключей Java для сервера: server.keystore.password=newStorePassword
    2. Укажите новый пароль сертификата для сервера: server.key.password=newKeyPassword
  6. Запустите сервер.

Перемещение сборщика журналов в другую секцию данных в Linux

Многие компании имеют требование переместить данные в отдельную секцию. В этой процедуре описывается перемещение образов сборщика журналов Docker Defender для облака Apps в раздел данных на узле 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. Получите размер на диске сборщика журналов с помощью определенного пути без суффикса /work. Запустить:

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

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

    Примечание.

    Если вам нужно знать только размер на диске, можно использовать следующую команду: docker ps -s

Перемещение сборщика журналов на узел со специальными возможностями

В регулируемых средах доступ к Центрам Docker, где размещен образ сборщика журналов, может быть заблокирован. Это предотвращает импорт данных из сборщика журналов Defender для облака Apps и может быть разрешено перемещение образа сборщика журналов на доступный узел.

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

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

Необходимые компоненты

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

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

    Запустите процесс, экспортируя образ сборщика журналов, а затем импортируйте образ в целевой узел.

Экспорт образа сборщика журналов из Центра Docker

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

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

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

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

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

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

    Например:

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

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

Определение пользовательских портов для приемников системного журнала и FTP для сборщиков журналов в Linux

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

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

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

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

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

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

  2. В разделе Cloud Discovery выберите автоматическую отправку журналов. Затем перейдите на вкладку сборщиков журналов .

  3. На вкладке "Сборщики журналов" добавьте или измените сборщик журналов и после обновления источников данных скопируйте команду выполнения из диалогового окна. Например:

    Скопируйте команду выполнения из мастера сборщика журналов.

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

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

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

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

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

      tcpdump -Als0 port 514
      

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

      Снимок экрана: анализ сетевого трафика через tcpdump.

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

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

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

        1. В разделе "Облачные приложения" в разделе "Облачные приложения" в разделе "Облачные приложения" выберите "Действия>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 для облака.

    • Проверьте соответствующие файлы в контейнере Docker приложений Defender для облака:

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

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

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

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

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

      Примечание.

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

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

    Просмотрите отправленные файлы журналов.

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

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

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

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

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

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

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

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

Следующие шаги

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