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


Устранение неполадок с соединителем данных CEF или Syslog

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который достиг состояния окончания жизни (EOL). Пожалуйста, рассмотрите возможность использования и планирования соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

В этой статье описываются распространенные методы проверки и устранения неполадок соединителя данных CEF или Syslog для Microsoft Sentinel.

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

Другие симптомы сбоя развертывания соединителя включают в себя отсутствие файлов security_events.conf или security-omsagent.config.conf или если сервер rsyslog не прослушивает порт 514.

Дополнительные сведения см. в разделах Подключение внешнего решения с помощью Common Event Format и Получение данных из источников на основе Linux с помощью системного журнала Syslog.

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

В этой статье показано, как устранять неполадки соединителей CEF или Syslog с агентом Log Analytics. Сведения об устранении неполадок, связанных с приемом журналов CEF с помощью агента Azure Monitor (AMA), см . в разделе "Общий формат событий" (CEF) с помощью инструкций соединителя AMA .

Внимание

28 февраля 2023 года мы внесли изменения в схему таблицы CommonSecurityLog. После этого изменения может потребоваться просмотреть и обновить пользовательские запросы. Дополнительные сведения см. в разделе рекомендуемых действий в этой записи блога. Содержимое вне поля (обнаружения, запросы охоты, книги, синтаксический анализ и т. д.) обновлено Microsoft Sentinel.

Применение данной статьи

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

Например, если вы устраняете неполадки соединителя CEF, начните с проверки подключения CEF. Если вы устраняете неполадки соединителя Системного журнала, начните с проверки необходимых компонентов соединителя данных.

Проверка подключения CEF

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

Эта процедура относится только к подключениям CEF и не относится к подключениям Syslog.

  1. Перед этим необходимо выполнить следующее.

    • Вы должны обладать повышенными правами (sudo) на сервере пересылки журналов вашего компьютера.

    • На компьютере сервера пересылки журналов установите python 2.7 или 3. Используйте команду python --version, чтобы проверить установленную версию.

    • Возможно, вам потребуется идентификатор рабочей области и первичный ключ рабочей области в какой-то момент в этом процессе. Их можно найти в ресурсе рабочей области в разделе Управление агентами.

  2. В меню навигации Microsoft Sentinel выберите Журналы. Запустите запрос с помощью схемы CommonSecurityLog , чтобы узнать, получают ли журналы из решения безопасности.

    Это может занять около 20 минут, пока журналы не будут отображаться в Log Analytics.

  3. Если результаты запроса не отображаются, убедитесь, что ваше решение безопасности создает сообщения журнала. Или попробуйте выполнить некоторые действия для создания сообщений журнала и убедитесь, что сообщения перенаправляются на назначенный компьютер пересылки системного журнала.

  4. Чтобы проверить подключение между решением безопасности, сервером пересылки журналов и Microsoft Sentinel, выполните следующий сценарий на сервере пересылки журналов (применение идентификатора рабочей области вместо заполнителя). Этот сценарий проверяет, прослушивает ли управляющая программа правильные порты, настроена ли пересылка правильно, а также то, не блокирует ли что-то обмен данными между управляющей программой и агентом Log Analytics. Сценарий также отправляет имитационные сообщения TestCommonEventFormat для проверки сквозного подключения.

    sudo wget -O cef_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_troubleshoot.py&&sudo python cef_troubleshoot.py [WorkspaceID]
    
    • Вы можете получить сообщение, направляющее вас, чтобы выполнить команду, чтобы исправить проблему с сопоставлением поля "Компьютер". Дополнительные сведения см. в объяснении сценария проверки.

    • Вы можете получить сообщение, направляющее вас, чтобы выполнить команду, чтобы устранить проблему с анализом журналов брандмауэра Cisco ASA. Дополнительные сведения см. в объяснении сценария проверки.

Описание сценария проверки CEF

В следующем разделе описывается сценарий проверки CEF для управляющей программы rsyslog и управляющей программы syslog-ng.

Управляющая программа rsyslog

Для управляющей программы rsyslog сценарий проверки CEF выполняет следующие проверки:

  1. Проверяет существует ли файл
    /etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
    и является ли он допустимым.

  2. Проверяет, содержит ли файл следующий текст:

    <source>
        type syslog
        port 25226
        bind 127.0.0.1
        protocol_type tcp
        tag oms.security
        format /(?<time>(?:\w+ +){2,3}(?:\d+:){2}\d+|\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.[\w\-\:\+]{3,12}):?\s*(?:(?<host>[^: ]+) ?:?)?\s*(?<ident>.*CEF.+?(?=0\|)|%ASA[0-9\-]{8,10})\s*:?(?<message>0\|.*|.*)/
        <parse>
            message_format auto
        </parse>
    </source>
    
    <filter oms.security.**>
        type filter_syslog_security
    </filter>
    
  3. Проверяет, настроен ли анализ событий брандмауэра Cisco ASA так, как ожидалось, с помощью следующей команды:

    grep -i "return ident if ident.include?('%ASA')" /opt/microsoft/omsagent/plugin/security_lib.rb
    
    • Если при синтаксическом анализе возникла проблема, скрипт создает сообщение об ошибке, которое направляет вас вручную для выполнения следующей команды (применение идентификатора рабочей области вместо заполнителя). Команда гарантирует правильное синтаксический анализ и перезапуск агента.

      # Cisco ASA parsing fix
      sed -i "s|return '%ASA' if ident.include?('%ASA')|return ident if ident.include?('%ASA')|g" /opt/microsoft/omsagent/plugin/security_lib.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  4. Проверяет, правильно ли сопоставлено поле Компьютер источника syslog в агенте Log Analytics, используя следующую команду:

    grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
    
    • Если возникла проблема с сопоставлением, скрипт создает сообщение об ошибке, которое направляет вас вручную для выполнения следующей команды (применение идентификатора рабочей области вместо заполнителя). Команда гарантирует правильное сопоставление и перезапускает агент.

      # Computer field mapping fix
      sed -i -e "/'Severity' => tags\[tags.size - 1\]/ a \ \t 'Host' => record['host']" -e "s/'Severity' => tags\[tags.size - 1\]/&,/" /opt/microsoft/omsagent/plugin/filter_syslog_security.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  5. Проверяет наличие каких-либо улучшений безопасности на компьютере, которые могут блокировать сетевой трафик (например, брандмауэр узла).

  6. Проверяет, правильно ли настроена управляющая программа syslog (rsyslog) для отправки сообщений (которые идентифицируется как CEF) агенту Log Analytics через TCP-порт 25226:

    Файл конфигурации: /etc/rsyslog.d/security-config-omsagent.conf

    if $rawmsg contains "CEF:" or $rawmsg contains "ASA-" then @@127.0.0.1:25226
    
  7. Перезапускает управляющую программу syslog и агент Log Analytics:

    service rsyslog restart
    
    /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
    
  8. Проверяет, установлены ли необходимые подключения: порт TCP 514 для получения данных, порт TCP 25226 для внутреннего обмена данными между управляющей программой syslog и агентом Log Analytics:

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Проверяет, получает ли управляющая программа syslog данные через порт 514, а агент через порт 25226:

    sudo tcpdump -A -ni any port 514 -vv
    
    sudo tcpdump -A -ni any port 25226 -vv
    
  10. Отправляет имитационные данные на порт 514 на localhost. Эти данные можно увидеть в рабочей области Microsoft Sentinel, выполнив следующий запрос:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

управляющая программа syslog-ng

Для управляющей программы syslog-ng сценарий проверки CEF выполняет следующие проверки:

  1. Проверяет существует ли файл
    /etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
    и является ли он допустимым.

  2. Проверяет, содержит ли файл следующий текст:

    <source>
        type syslog
        port 25226
        bind 127.0.0.1
        protocol_type tcp
        tag oms.security
        format /(?<time>(?:\w+ +){2,3}(?:\d+:){2}\d+|\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.[\w\-\:\+]{3,12}):?\s*(?:(?<host>[^: ]+) ?:?)?\s*(?<ident>.*CEF.+?(?=0\|)|%ASA[0-9\-]{8,10})\s*:?(?<message>0\|.*|.*)/
        <parse>
            message_format auto
        </parse>
    </source>
    
    <filter oms.security.**>
        type filter_syslog_security
    </filter>
    
  3. Проверяет, настроен ли анализ событий брандмауэра Cisco ASA так, как ожидалось, с помощью следующей команды:

    grep -i "return ident if ident.include?('%ASA')" /opt/microsoft/omsagent/plugin/security_lib.rb
    
    • Если при синтаксическом анализе возникла проблема, скрипт создает сообщение об ошибке, которое направляет вас вручную для выполнения следующей команды (применение идентификатора рабочей области вместо заполнителя). Команда гарантирует правильное синтаксический анализ и перезапуск агента.

      # Cisco ASA parsing fix
      sed -i "s|return '%ASA' if ident.include?('%ASA')|return ident if ident.include?('%ASA')|g" /opt/microsoft/omsagent/plugin/security_lib.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  4. Проверяет, правильно ли сопоставлено поле Компьютер источника syslog в агенте Log Analytics, используя следующую команду:

    grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
    
    • Если возникла проблема с сопоставлением, скрипт создает сообщение об ошибке, которое направляет вас вручную для выполнения следующей команды (применение идентификатора рабочей области вместо заполнителя). Команда гарантирует правильное сопоставление и перезапускает агент.

      # Computer field mapping fix
      sed -i -e "/'Severity' => tags\[tags.size - 1\]/ a \ \t 'Host' => record['host']" -e "s/'Severity' => tags\[tags.size - 1\]/&,/" /opt/microsoft/omsagent/plugin/filter_syslog_security.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  5. Проверяет наличие каких-либо улучшений безопасности на компьютере, которые могут блокировать сетевой трафик (например, брандмауэр узла).

  6. Проверяет, правильно ли настроена управляющая программа syslog (syslog-ng) для отправки сообщений (которые идентифицируется как CEF) агенту Log Analytics через TCP-порт 25226:

    • Файл конфигурации: /etc/syslog-ng/conf.d/security-config-omsagent.conf

      filter f_oms_filter {match(\"CEF\|ASA\" ) ;};destination oms_destination {tcp(\"127.0.0.1\" port(25226));};
      log {source(s_src);filter(f_oms_filter);destination(oms_destination);};
      
  7. Перезапускает управляющую программу syslog и агент Log Analytics:

    service syslog-ng restart
    
    /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
    
  8. Проверяет, установлены ли необходимые подключения: порт TCP 514 для получения данных, порт TCP 25226 для внутреннего обмена данными между управляющей программой syslog и агентом Log Analytics:

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Проверяет, получает ли управляющая программа syslog данные через порт 514, а агент через порт 25226:

    sudo tcpdump -A -ni any port 514 -vv
    
    sudo tcpdump -A -ni any port 25226 -vv
    
  10. Отправляет имитационные данные на порт 514 на localhost. Эти данные можно увидеть в рабочей области Microsoft Sentinel, выполнив следующий запрос:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

Проверка необходимых компонентов для соединителя данных

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

Виртуальная машина Azure в качестве сборщика CEF

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

  • Прежде чем развертывать сценарий Python для соединителя данных Common Event Format, убедитесь, что ваша виртуальная машина не подключена к имеющейся рабочей области Log Analytics. Эти сведения можно найти в списке виртуальных машин для рабочей области Log Analytics, где виртуальная машина, подключенная к рабочей области Syslog, отображается как Подключенная.

  • Убедитесь, что служба Microsoft Sentinel подключена к правильной рабочей области Log Analytics с установленным решением SecurityInsights.

    Дополнительные сведения см. в разделе Шаг 1. Развертывание сервера пересылки журналов.

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

Локальная виртуальная машина или виртуальная машина вне Azure

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

Совет

Этот сценарий также можно найти на странице соединителя данных Common Event Format в Microsoft Sentinel.

sudo wget -O cef_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_installer.py&&sudo python cef_installer.py <WorkspaceId> <Primary Key>

Включение сбора сведений об уровне серьезности журналов и средствах CEF

Сервер Syslog, rsyslog или syslog-ng, пересылает все данные, определенные в соответствующем файле конфигурации, который автоматически заполняется параметрами, определенными в рабочей области Log Analytics.

Обязательно добавьте сведения о средствах и уровнях серьезности журналов, которые необходимо принимать в Microsoft Sentinel. Подождите примерно 20 минут, пока не завершится настройка.

Дополнительные сведения см. в разделе Описание скрипта развертывания.

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

cat /etc/rsyslog.d/security-config-omsagent.conf

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

if $rawmsg contains "CEF:" or $rawmsg contains "ASA-" then @@127.0.0.1:25226

Устранение неполадок операционной системы

В этом разделе описывается, как устранять неполадки, которые определенно являются следствием конфигурации операционной системы.

Вот как можно устранить неполадки операционной системы.

  1. Если вы еще этого не сделали, убедитесь, что вы работаете с поддерживаемой версией операционной системы и Python. Дополнительные сведения см. в разделе Предварительные требования.

  2. Если ваша виртуальная машина размещена в Azure, убедитесь, что группа безопасности сети (NSG) разрешает подключение по протоколу TCP/UDP от вашего клиента журнала (отправителя) через порт 514.

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

    tcpdump -Ani any port 514 and host <ip_address_of_sender> -vv
    
  4. Выполните одно из следующих действий:

    • Если вы не видите поступающие пакеты, подтвердите разрешения группы безопасности NSG и путь маршрутизации к сборщику системного журнала.

    • Если вы видите пакеты, поступающие, убедитесь, что они не отклоняются.

    Если вы видите отклоненные пакеты, убедитесь, что IP-таблицы не блокируют подключения.

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

    watch -n 2 -d iptables -nvL
    
  5. Проверьте, обрабатывает ли сервер CEF журналы. Запустить:

    tail -f /var/log/messages or tail -f /var/log/syslog
    

    Все обрабатываемые журналы CEF отображаются в виде обычного текста.

  6. Убедитесь, что сервер rsyslog ожидает передачи данных через TCP/UDP-порт 514. Запустить:

    netstat -anp | grep syslog
    

    Если вы отправляете журналы CEF или ASA в сборщик Syslog, вы должны увидеть установленное подключение через TCP-порт 25226.

    Например:

    0 127.0.0.1:36120 127.0.0.1:25226 ESTABLISHED 1055/rsyslogd
    

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

SELinux блокирует подключение к агенту OMS

Эта процедура позволяет проверить, находится ли SELinux в данный момент в состоянии permissive или блокирует подключение к агенту OMS. Эта процедура уместна, если ваша операционная система является дистрибутивом RedHat или CentOS, а также для соединителей данных CEF и Syslog.

Примечание.

Поддержка Microsoft Sentinel для CEF и Syslog включает только усиление защиты FIPS. Другие методы усиления защиты, такие как SELinux или CIS, в настоящее время не поддерживаются.

  1. Запустить:

    sestatus
    

    Варианты состояния приведены ниже.

    • disabled. Эта конфигурация поддерживается для подключения к Microsoft Sentinel.
    • permissive. Эта конфигурация поддерживается для подключения к Microsoft Sentinel.
    • enforced. Эта конфигурация не поддерживается, и необходимо либо отключить ее состояние, либо задать для него значение permissive.
  2. Если в настоящий момент состояние имеет значение enforced, временно отключите его, чтобы убедиться, что оно было причиной блокировки. Запустить:

    setenforce 0
    

    Примечание.

    Это действие выключает SELinux только до перезагрузки сервера. Измените конфигурацию SELinux, чтобы она оставалась выключенной.

  3. Чтобы убедиться, что изменение внесено успешно, выполните следующее:

    getenforce
    

    Должно быть возвращено состояние permissive.

Внимание

После перезагрузки системы изменение этого параметра отменяется. Чтобы навсегда изменить этот параметр, задав для него значениеpermissive, измените файл /etc/selinux/config, изменив значение SELINUX на SELINUX=permissive.

Дополнительные сведения см. в документации по RedHat.

Блокирующая политика брандмауэра

Эта процедура позволяет проверить, блокирует ли политика брандмауэра подключение управляющей программы rsyslog к агенту OMS, и при необходимости отключить ее. Эта процедура относится как к соединителям данных CEF, так и к Syslog.

  1. Выполните приведенную команду, чтобы проверить наличие отклонений в таблицах IP-адресов, указывающих на трафик, удаляемый политикой брандмауэра.

    watch -n 2 -d iptables -nvL
    
  2. Чтобы не отключать политику брандмауэра, создайте правило политики, разрешающее подключения. Добавьте необходимые правила, чтобы открыть TCP/UDP-порты 25226 и 25224 в активном брандмауэре.

    Например:

    Every 2.0s: iptables -nvL                      rsyslog: Wed Jul  7 15:56:13 2021
    
    Chain INPUT (policy ACCEPT 6185K packets, 2466M bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    
    Chain OUTPUT (policy ACCEPT 6792K packets, 6348M bytes)
     pkts bytes target     prot opt in     out     source               destination
    
  3. Чтобы открыть TCP/UDP-порты 25226 и 25224 в активном брандмауэре, добавьте необходимые правила.

    1. Чтобы установить редактор политик брандмауэра, выполните команду:

      yum install policycoreutils-python
      
    2. Добавьте правила брандмауэра в политику брандмауэра. Например:

      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 25226  -j ACCEPT
      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p udp --dport 25224  -j ACCEPT
      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 25224  -j ACCEPT
      
    3. Убедитесь, что исключение добавлено. Запустить:

      sudo firewall-cmd --direct --get-rules ipv4 filter INPUT
      
    4. Перезагрузите брандмауэр. Запустить:

      sudo firewall-cmd --reload
      

Примечание.

Чтобы отключить брандмауэр, выполните: sudo systemctl disable firewalld

Если описанные ранее в этой статье действия не устраняют проблему, возможно, у вас возникла проблема с подключением между агентом OMS и рабочей областью Microsoft Sentinel.

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

  • Убедитесь, что отображаются пакеты, поступающие на TCP/UDP-порт 514 в сборщике Syslog.

  • Убедитесь, что отображаются журналы, записываемые в локальный файл журнала в /var/log/messages или /var/log/syslog.

  • Убедитесь, что пакеты данных передаются через порт 25226

  • Убедитесь, что у виртуальной машины имеется исходящее подключение к TCP-порту 443 или что она может подключиться к конечным точкам Log Analytics.

  • Убедитесь, что политика брандмауэра обеспечивает доступ сборщика CEF к нужным URL-адресам. Дополнительные сведения см. в разделе Требования к брандмауэру.

Выполните приведенную ниже команду, чтобы определить, успешно ли взаимодействует агент с Azure и может ли агент OMS подключиться к рабочей области Log Analytics.

Heartbeat
 | where Computer contains "<computername>"
 | sort by TimeGenerated desc

Если агент успешно обменивается данными, возвращается запись журнала. В противном случае агент OMS может быть заблокирован.

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

Если действия по устранению неполадок, описанные в этой статье, не помогли устранить проблему, откройте запрос в службу поддержки или используйте ресурсы сообщества Microsoft Sentinel. Дополнительные сведения см. в разделе Полезные ресурсы для работы с Microsoft Sentinel.

Ознакомьтесь с дополнительными сведениями о Microsoft Sentinel в следующих статьях: