Расширенное управление сборщиком журналов
В этой статье описывается настройка дополнительных параметров для сборщиков журналов cloud discovery приложений Defender для облака.
Defender для облака Cloud Discovery продолжает сосредоточиться на базовых форматах брандмауэра. Изменения журналов, пересылаемых на уровне брандмауэра, могут не работать или могут вызвать проблемы с синтаксический анализ. При обнаружении ошибок такого рода рекомендуется продолжать использовать базовый формат брандмауэра или использовать параметры с пользовательским сборщиком журналов. Дополнительные сведения см. в статье Использование настраиваемого средства синтаксического анализа журналов
В этой статье описывается изменение конфигурации для Docker облачного обнаружения приложений Defender для облака.
Изменение конфигурации FTP сборщика журналов
Используйте эти действия в следующих разделах, чтобы изменить конфигурацию для docker облачного обнаружения приложений Defender для облака.
Проверка версии сборщика журналов
Чтобы проверить версию сборщика журналов, установленную в системе, подключитесь к узлу сборщика журналов и выполните следующую команду:
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: сертификат и ключ сборщика журналов
Сообщения системного журнала отправляются по протоколу 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 для облака Приложения. Например, это может произойти, так как сборщик журналов не доверяет корневому центру сертификации прокси-сервера и не может подключиться к Microsoft Defender для облака Apps для получения конфигурации или отправки полученных журналов.
В следующих процедурах описано, как включить сборщик журналов за прокси-сервером.
Совет
Кроме того, может потребоваться изменить сертификаты, используемые сборщиком журналов для системного журнала или FTP, или устранить проблемы с подключением брандмауэров и прокси-серверов к сборщику журналов. Дополнительные сведения см. в разделе "Изменение конфигурации FTP сборщика журналов".
Настройка сборщика журналируемых данных за пределами прокси-сервера
Убедитесь, что вы выполнили необходимые действия для запуска Docker на компьютере с Windows или Linux и успешно скачали образ Docker Defender для облака Apps Docker на хост-компьютере.
Дополнительные сведения см. в статье Настройка автоматической отправки журналов для непрерывных отчетов.
Проверка создания контейнера сборщика журналируемых данных Docker
Убедитесь, что контейнер создан и запущен. В оболочке выполните следующую команду:
docker ps
Должен отобразиться результат, аналогичный следующему:
Копирование сертификата корневого ЦС прокси-сервера в контейнер
Скопируйте сертификат ЦС из виртуальной машины в контейнер приложений Defender для облака. В следующем примере контейнер называется Ubuntu-LogCollector, а сертификат ЦС — Proxy-CA.crt.
Следующая команда копирует сертификат в папку в запущенном контейнере. Выполните команду на узле Ubuntu:
docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery
Настройка конфигурации для работы с сертификатом ЦС
Перейдите в контейнер. Выполните следующую команду, чтобы открыть bash в контейнере сборщика журналов:
docker exec -it Ubuntu-LogCollector /bin/bash
В окне bash в контейнере перейдите в папку Java
jre
. Чтобы избежать ошибки пути, связанной с версией, используйте следующую команду:cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)" cd bin
Импортируйте корневой сертификат, скопированный ранее, из папки обнаружения в Хранилище ключей Java и определите пароль.
Пароль по умолчанию:
changeit
. Дополнительные сведения см. в разделе "Изменение пароля Хранилища ключей Java"../keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
Убедитесь, что сертификат был импортирован правильно в хранилище ключей ЦС. Выполните следующую команду, чтобы выполнить поиск псевдонима, предоставленного во время импорта (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
Остановите сервер Java KeyStore.
Откройте оболочку bash внутри контейнера и перейдите в папку appdata/conf .
Чтобы изменить пароль хранилища ключей сервера, выполните следующую команду:
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-install.properties . Добавьте следующие строки кода и сохраните изменения:
- Укажите новый пароль Хранилища ключей Java для сервера:
server.keystore.password=newStorePassword
- Укажите новый пароль сертификата для сервера:
server.key.password=newKeyPassword
- Укажите новый пароль Хранилища ключей Java для сервера:
Запустите сервер.
Перемещение сборщика журналов в другую секцию данных в Linux
Многие компании имеют требование переместить данные в отдельную секцию. В этой процедуре описывается перемещение образов сборщика журналов Docker Defender для облака Apps в раздел данных на узле Linux.
В этой процедуре описывается перемещение данных в секцию, называемую хранилищем данных, и предполагается, что вы уже подключили раздел. Например:
Добавление и настройка новой секции на узле Linux не входит в область действия этого руководства.
Чтобы переместить сборщик журналов в другую секцию:
Остановите службу Docker. Запустить:
service docker stop
Переместите данные сборщика журналов в новую секцию. Запустить:
mv /var/lib/docker /datastore/docker
Удалите старый каталог хранилища Docker (/var/lib/docker) и создайте символьную ссылку на новый каталог (/datastore/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, где размещен образ сборщика журналов, может быть заблокирован. Это предотвращает импорт данных из сборщика журналов Defender для облака Apps и может быть разрешено перемещение образа сборщика журналов на доступный узел.
В этой процедуре описывается, как скачать образ сборщика журналов с помощью компьютера с доступом к Docker Hub и импортировать его в целевой узел.
Скачанный образ можно импортировать в частный репозиторий или непосредственно на узле. В этой процедуре описывается, как скачать образ сборщика журналов на компьютер Windows, а затем использовать WinSCP для перемещения сборщика журналов на целевой узел.
Необходимые компоненты
Убедитесь, что на узле установлен Docker. Например, используйте один из следующих скачиваемых файлов:
После скачивания используйте автономное руководство по установке Docker для установки операционной системы.
Запустите процесс, экспортируя образ сборщика журналов, а затем импортируйте образ в целевой узел.
Экспорт образа сборщика журналов из Центра Docker
В следующих процедурах описывается экспорт образа сборщика журналов с помощью Linux или Windows.
Экспорт образа в Linux
На компьютере 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
Экспорт образа сборщика журналов. Запустить:
docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector chmod +r /tmp/mcasLC.tar
Внимание
Не забудьте использовать выходной параметр для записи в файл вместо STDOUT.
Скачайте образ сборщика журналов на компьютер Windows с
C:\mcasLogCollector\
помощью WinSCP. Например:
Экспорт образа в Windows
На компьютере с Windows 10 с доступом к Центру Docker установите 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
Например:
Теперь можно продолжить создание сборщика журналов с помощью образа из конечного узла.
Определение пользовательских портов для приемников системного журнала и FTP для сборщиков журналов в Linux
В некоторых организациях есть требование определить пользовательские порты для служб Системного журнала и FTP.
При добавлении источника данных сборщики журналов Defender для облака Apps используют определенные номера портов для прослушивания журналов трафика из одного или нескольких источников данных.
В следующей таблице перечислены порты прослушивания по умолчанию для получателей:
Тип приемника | Порты |
---|---|
Системный журнал | * UDP/514 — UDP/51x * TCP/601 — TCP/60x |
FTP | * TCP/21 |
Чтобы определить пользовательские порты, выполните следующие действия.
На портале Microsoft Defender выберите параметры. Затем выберите "Облачные приложения".
В разделе Cloud Discovery выберите автоматическую отправку журналов. Затем перейдите на вкладку сборщиков журналов .
На вкладке "Сборщики журналов" добавьте или измените сборщик журналов и после обновления источников данных скопируйте команду выполнения из диалогового окна. Например:
При использовании, предоставленной мастером, команда настраивает сборщик журналов для использования портов 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
Иногда может потребоваться исследовать такие проблемы, как:
- Сборщики журналов получают данные: убедитесь, что сборщики журналов получают сообщения системного журнала от ваших устройств и не блокируются брандмауэрами.
- Полученные данные приведены в правильном формате журнала: проверьте формат журнала, чтобы помочь вам устранить ошибки синтаксического анализа, сравнивая формат журнала, ожидаемый Defender для облака Приложениям и отправленным устройством.
Чтобы убедиться, что трафик получен сборщиками журналов, выполните следующие действия.
Войдите на сервер, на котором размещен контейнер Docker.
Убедитесь, что сборщик журналов получает сообщения системного журнала с помощью любого из следующих методов:
Используйте tcpdump или аналогичную команду для анализа сетевого трафика через порт 514:
tcpdump -Als0 port 514
Если все настроено правильно, вы увидите сетевой трафик от ваших устройств. Например:
Используйте netcat или аналогичную команду для анализа сетевого трафика на хост-компьютере:
Установите netcat и wget.
Скачайте пример файла журнала из XDR в Microsoft Defender. При необходимости распакуите файл журнала.
В разделе "Облачные приложения" в разделе "Облачные приложения" в разделе "Облачные приложения" выберите "Действия>Cloud Discovery" создать отчет моментального снимка Cloud Discovery.>
Выберите Источник данных, откуда требуется отправить файлы журнала.
Выберите "Вид" и убедитесь , что щелкните правой кнопкой мыши "Скачать пример журнала " и скопируйте ссылку ПО URL-адресу.
Нажмите кнопку "Закрыть>отмену".
Запустить:
wget <URL_address_to_sample_log>
Выполните потоковую
netcat
передачу данных в сборщик журналов.cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
Если сборщик настроен правильно, данные журнала отображаются в файле сообщений и вскоре после отправки на портал приложений Defender для облака.
Проверьте соответствующие файлы в контейнере Docker приложений Defender для облака:
Войдите в контейнер. Запустить:
docker exec -it <Container Name> bash
Определите, записываются ли сообщения системного журнала в файл сообщений. Запустить:
cat /var/adallom/syslog/<your_log_collector_port>/messages
Если все настроено правильно, вы увидите сетевой трафик от ваших устройств. Например:
Примечание.
Этот файл будет продолжать записываться в него до тех пор, пока не достигнет 40 КБ размера. Например:
Просмотрите журналы, отправленные в Defender для облака Apps в каталоге
/var/adallom/discoverylogsbackup
. Например:Проверьте формат журнала, полученный сборщиком журналов, сравнив сообщения, хранящиеся в
/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
.
Обновление версии сборщика журналов
При обновлении сборщика журналов:
- Перед установкой новой версии обязательно остановите сборщик журналов и удалите текущий образ.
- После установки новой версии обновите файлы сертификатов.
Следующие шаги
Если у вас возникли проблемы, мы здесь, чтобы помочь. Чтобы получить помощь или поддержку проблемы с продуктом, откройте запрос в службу поддержки.