OPSEC LEA (Log Export API) – интерфейс, позволяющий получать логи с сервера управления (Checkpoint SmartCenter).
В основе OPSEC LEA лежит клиент-серверная архитектура. В качестве сервера выступает Checkpoint SmartCenter, который слушает входящие соединения на порт 18184 ТСР (по-умолчанию). Клиент OPSEC LEA подключается к Серверу на вышеуказанный порт и получает логи.
Fw1-loggrabber – программное обеспечение, поддерживающее OPSEC LEA, и предназначенное для получения логов с серверов управления (Checkpoint SmartCenter – далее SC). Fw1-loggrabber может выводить полученные логи на экран, перенаправлять в файл или в syslog.
Существуют версии данного ПО как под Linux, так и под Windows (под windows не поддерживается вывод в syslog).
Дано:
  • Сервер управления Checkpoint. Версия ПО Checkpoint – R77.30 (sc.local);
  • Сервер с CentOS 6.6 (loggraber.local);
  • Syslog сервер (syslog.local).

Задача:


получить логи c SC и передать их по протоколу syslog на внешний syslog сервер.

Решение:


Для решения данной задачи мы будем использовать технологию связи fw1-loggrabber и SC под названием «sslca», которая требует аутентификации. Также возможно использовать и другие механизмы, в том числе без аутентификации, которые описаны в MAN’е fw1-loggrabber. Мы будем использовать sslca во-первых потому, что он обеспечивает более безопасное соединение (за счет наличия аутентификации), а также сама компания Checkpoint обещает продолжить его поддержку в будущих продуктах.
Схема стенда приведена на рисунке ниже.



Рисунок 1 – Схема стенда FW1-loggrabber

Для решения задачи необходимо будет выполнить:
  1. Установку fw1-loggrabber на сервер loggrabber.local;
  2. Создание объекта OPSEC LEA на стороне Checkpoint SC;
  3. Настройка сервера управления Checkpoint;
  4. Настройку fw1-loggrabber.

1. Установка fw1-loggrabber

Для установки нужно скачать само ПО loggrabber (https://sourceforge.net/projects/fw1-loggrabber/), распаковать архив и запустить файл INSTALL.sh из-под учетной записи root в распакованной папке:
# gzip –d fw1-loggrabber-1.11.1-linux.tar.gz
# tar xvf fw1-loggrabber-1.11.1-linux.tar
# cd fw1-loggrabber-1.11.1-linux
# ./INSTALL.sh

Инсталляционный скрипт скопирует файлы loggrabber в /usr/local/fw1-loggrabber. На этом установка закончена. Переходим к настройке.

2. Создание объекта OPSEC LEA

Подключившись к консоли управления сервера sc.local с помощью графического клиента SmartConsole создаем объект Syslogclient (см. Рисунок 2).
В поле «host» указываем объект, представляющий собой хост loggraber.local, в таблице «Client Entities» выбираем «LEA». Нажимаем кнопку «Communicate» для задания SIC для установки соединения. Парольную фразу, используемую при создании SIC необходимо запомнить, она понадобится позже. Копируем и сохраняем в текстовый файл DN объекта — CN=Syslogclient,O=cpmgmt.hemltd.ru.ukwt9b, т.к. он понадобится на следующем этапе.



Рисунок 2 – Настройка OPSEC объекта в Checkpoint

Записываем также DN сервера управления Checkpoint (sc.local), который можно найти нажав на кнопку «Test SIC status» в меню «General» объекта, соответствующего серверу управления Checkpoint в интерфейсе графической консоли (см. Рисунок 3). В данном примере это: cn=cp_mgmt,o=cpmgmt.hemltd.ru.ukwt9b



Рисунок 3 – DN сервера управления Checkpoint (sc.local)

3. Настройка сервера управления Checkpoint

Подключаемся к серверу управления Checkpoint (sc.local) по ssh, переходим в режим expert и добавляем (или модифицируем) в файл $FWDIR/conf/fwopsec.conf следующие строки:
lea_server port 0  
lea server auth_port 18184  
lea server auth_type sslca

После чего перезапускаем сервисы Checkpoint:
# cpstop
# cpstart

Через графическую консоль управления Checkpoint создаем правила межсетевого экранирования, разрешающие трафик по портам tcp 18184 и tcp 18210 (по порту tcp 18210 происходит получение сертификата с сервера Checkpoint сервером loggrabber.local) в направлении от сервера loggrabber.local к sc.local.
Инсталлируем политику.

4. Настройка FW1-loggrabber

На сервере loggrabber.local устанавливаем утилиту opsec_pull из пакета opsec-tools или из OPSEC SDK. Эта утилита нужна для установления соединения SIC между fw1-loggrabber и сервера управления Checkpoint.
Получаем сертификат с сервера управления Checkpoint коммандой:
# opsec_pull_cert -h 192.168.0.1 -n Syslogclient -p <парольная фраза, использованная при создании SIC на шаге 2>

Полученный файл помещаем в папку fw1-loggraber: /usr/local/fw1-loggrabber
Модифицируем файл /usr/local/fw1-loggrabber/etc/lea.conf следующим образом:
lea_server auth_type sslca
lea_server ip 192.168.0.1
lea server port 0
lea_server auth_port 18184
opsec_sic_name "CN=Syslogclient,O=cpmgmt.hemltd.ru.ukwt9b"
opsec_sslca_file /usr/local/fw1-loggrabber/opsec.p12
lea_server opsec_entity_sic_name "cn=cp_mgmt,o=cpmgmt.hemltd.ru.ukwt9b"

В качестве lea_server ip указываем IP адрес сервера sc.local. В качестве opsec_sic_name указываем DN объекта OPSEC LEA, созданного на этапе 2. В качестве lea_server opsec_entity_sic_name указываем DN сервера Checkpoint, полученный на шаге 2. opsec_sslca_file должен указывать полный путь до файла сертификата, полученного с сервера Checkpoint (описано в начале этого этапа).
Изменяем файл /usr/local/fw1-loggrabber/etc/fw1-loggrabber.conf следующим образом:
DEBUG_LEVEL="0"  # выключен debug, для отладки можно поставить 3
FW1_LOGFILE="fw.log"  # имя файла лога на стороне сервера Checkpoint
FW1_OUTPUT="logs" # параметр говорит о том, что loggrabber будет получать логи с сервера Checkpoint. Если указать files, то при запуске loggrabber выведет список доступных файлов логов
FW1_TYPE="ng" # для старых версий Checkpoint (Checkpoint FW-1 4.1) указать в данном поле 2000
FW1_MODE="normal" # audit – логи аудита, normal – логи безопасности
ONLINE_MODE="yes" # работа в режиме реального времени. No – тогда loggrabber считывает весь лог и останавливается  
RESOLVE_MODE="no" # отключено разрешение DNS имен 
SHOW_FIELDNAMES="yes" # включать имена полей в лог
RECORD_SEPARATOR="|"  # разделитель полей
DATEFORMAT="std" # формат временной метки
LOGGING_CONFIGURATION=syslog # loggrabber передает логи в syslog, можно в file
OUTPUT_FILE_PREFIX="fw1-loggrabber" # префикс лог файла (в случае записи лога в файл)
OUTPUT_FILE_ROTATESIZE=104857600 # максимальный размер файла
SYSLOG_FACILITY="LOCAL1" # syslog facility

Запускаем fw1-loggrabber:
/usr/local/fw1-loggrabber/bin/fw1-loggrabber

В конфигурационный файл rsyslog добавляем:
LOCAL1.*	@192.168.0.3

И перезапускаем rsyslog:
/etc/init.d/rsyslog restart

Таким образом, логи, получаемые fw1-loggrabber на сервере loggrabber.local (192.168.0.2) с сервера Checkpoint sc.local (192.168.0.1), перенаправляются в LOCAL1 фасилити rsyslog’а, который отправляет их по сети на сервер syslog.local (192.168.0.3), как показано на рисунке 1.

Комментарии (2)


  1. Dimi3
    08.04.2016 16:58

    Спасибо! Интересная, нетривиальная статья о CP, которых мало в ру сегменте.
    Отказываетесь от СмартТрекера, Лог, Ивэнта и Репортера в сторону данного решения из за возможности сторить централизованный Лог Менеджмент, основанный на Syslog'e?


    1. shudv
      08.04.2016 19:07

      Рад что статья пришлась полезной.
      Не то, чтобы отказываюсь, просто есть хорошие бесплатные системы лог-мененджмента и SIEM (например OSSIM), для которых (в отличии от всяких стоящих муллиарды ArcSight'ов) коннекторов для Checkpoint нет. Вот и приходится выкручиваться.