Сбор логов межсетевого экрана Checkpoint (OPSEC LEA)
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
Для решения задачи необходимо будет выполнить:
- Установку fw1-loggrabber на сервер loggrabber.local;
- Создание объекта OPSEC LEA на стороне Checkpoint SC;
- Настройка сервера управления Checkpoint;
- Настройку 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.