Назад | Перейти на главную страницу

Пометка / изменение сообщений syslog-ng из разных источников с использованием одного IP

Приветствую. Прежде всего, спасибо, что нашли время и прочитали этот вопрос; извинения за мой плохой английский. Я действительно не разбираюсь в syslog-ng, но я выполнил свою работу и прочитал syslog-ng-ose-admin-guide.pdf и все еще не могу решить свою проблему.

Это мой сценарий: я работаю в компании, которая предоставляет клиентам услуги облачной безопасности. Устройство с виртуальными машинами (ВМ), использующее VMWare ESXi 6.5, устанавливается в помещении клиента как часть наших услуг, как описано ниже:

VMs offering security services with syslog-ng client configuration.
Splunk Forwarder (UF) VM with syslog-ng server configuration.
VMs running Ubuntu 16.04.02 and syslog-ng version is 3.5

В нашей облачной среде мы запускаем Splunk Enterprise для сбора / сопоставления / анализа журналов.

В этом устройстве все виртуальные машины настроены с использованием статического IP-адреса без маршрутизации (172.16.X.X), а виртуальные машины с клиентами syslog-ng пересылают выбранные журналы на сервер syslog-ng. UF передает эти собранные журналы на SE. Эта конфигурация принадлежит ВСЕМ клиентам.

Это устройство настроено таким же образом, как и каждая виртуальная машина. Итак, на примере; если у VM1 IP 172.16.1.1, у VM2 172.16.1.2, в помещении клиента cust1, cust2 и cust3 VM1 имеют одинаковый IP 172.16.1.1 и так далее.

Итак, это наша проблема: когда SE получает журналы от виртуальных машин через UF, мы не можем определить, кто является владельцем данных, потому что виртуальные машины имели одинаковый IP-адрес у всех клиентов, поэтому, когда мы проверяем данные от Splunk, запрашивая 172.16.1.1, мы не делаем Не знаю, откуда приходят результаты: cust1, cust2 или cust3. На самом деле, мы полагаем, что в результате получается беспорядок из журналов cust1, cust2 и cust3. Кроме того, виртуальные машины выполняют некоторые проверки в помещении клиента, поэтому можно найти записи, например, для ПК с IP 10.10.1.1 в журнале VM1 и журнале VM2; Итак, если клиенты syslog-ng отправляют эти журналы на сервер syslog-ng, как мы можем узнать, принадлежит ли запись журналу VM1 или журналу VM2?

Читая упомянутый PDF-файл, я обнаружил, что мы можем изменить сообщение syslog-ng с помощью тегов. Итак, правильно идентифицируя клиентов журнала, мы думаем, что можем изменить сообщение, добавив уникальный идентификатор клиента, чтобы журналы клиентов могли консультироваться и коррелироваться в SE без путаницы.

Но я не знаю, какие команды / опции / возможности в syslog-ng мне следует использовать, чтобы отмечать журналы клиентов, как описано ранее.

Итак, вот мои вопросы: отметка - реальное решение моей проблемы? Если да, то как мне использовать теги в конфигурации syslog-ng? Вы можете привести мне несколько примеров? Есть ли другие способы решить мою проблему?

Пожалуйста, я действительно N00b о syslog-ng, и любая помощь будет оценена, даже если вы считаете базовыми вашу поддержку, руководство, совет или ответ. Я действительно открыт для ответов syslog-ng 101.

Пожалуйста, позвольте мне отметить, если вам нужно дальнейшее объяснение моей проблемы, я надеюсь, что я описал достаточно.

Большое спасибо и всего наилучшего,

Рафаэль

Вот пара замечаний и идей по поводу проблемы:

  • Пометка может быть для вас хорошим решением. Однако по умолчанию syslog-ng не пересылает теги от клиента syslog-ng на сервер syslog-ng. Если вы добавляете теги на клиенте, вы должны явно включать теги в пересылаемые сообщения и извлекать значение тега на сервере. Как это сделать, зависит от используемого протокола и формата сообщения. Если вы используете драйвер network (), вы должны использовать шаблон, который включает тег в сообщение, и каким-то образом проанализировать его на сервере. Лучше использовать драйвер syslog () и включить теги в часть сообщения SDATA (вы можете найти пример этого в этом сообщении в блоге: https://czanik.blogs.balabit.com/2015/03/using-rfc5424-syslog-to-forward-file-names/ ). Еще один способ - отправлять сообщения в формате JSON.
  • Если вы используете TLS для шифрования связи между клиентом syslog-ng и сервером, более новые версии syslog-ng могут использовать информацию из сертификата клиента как макросы. Итак, если у ваших клиентских хостов есть уникальные сертификаты, вы можете использовать эту информацию для их идентификации: https://www.balabit.com/sites/default/files/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/reference-macros.html#macro- tls-x509
  • Кроме того, если ваши клиенты имеют уникальные имена хостов (даже если их IP-адреса не уникальны), проверьте макросы, связанные с именами хостов, в их сообщениях ($ HOST_FROM, $ FULLHOST_FROM), в зависимости от вашей среды они могут содержать нужную вам информацию.
  • Если вы можете каким-то образом разделить своих клиентов на своем сервере syslog-ng (например, каждый сайт клиента отправляет сообщения на отдельный порт или IP-адрес сервера), чтобы вы могли назначить отдельный источник на сервере для каждого клиента, тогда вы можете использовать опцию host-override () исходного драйвера, чтобы присвоить сообщениям уникальное имя хоста.

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