
Доброго всем времени суток. Сегодня я хочу начать цикл о настройке и принципах работы межсетевых экранов Checkpoint.
Chekpoint — компания, занимающаяся разработкой решений по сетевой безопасности начиная с 1993 года. Компания позиционирует себя как разработчик собственной архитектуры управления\взаимодействия — SMART (SecurityManagment Architecture). На основании этой концепции в конечном итоге была создана операционная система Gaia, путём объединения ОС IPSO (Nokia) и ОС SPLAT (ранняя разработка СР на базе Unix-ориентированных систем). В данном программном обеспечении реализован ряд технологий, связанных с безопасностью обмена данными (например пакетная фильтрация, IPS), а так же проприетарная Stateful Inspection основной задачей которой является контроль конкретных соединений в реальном времени.©Wikipedia.
Увы, на Хабре не так много статей, посвященных этому вендору. Хотя, на мой взгляд, он заслуживает большего внимания.
Опытные инженеры систем безопасности, скорее всего, не найдут никакой новой информации в этой и последующих статьях. Но для новичков, я надеюсь, они будут полезными. Мы попробуем разобрать принципы работы основных модулей и системы в целом, а так же рассмотрим примеры настройки из “best practice".
Сегодня на повестке дня установка и начальная конфигурация устройства. Добро пожаловать под кат.
На Хабре уже была статья о том, как установить две фаервольных ноды и сделать из них кластер. Попытаюсь уделить внимание вопросам, которые в той статье рассмотрены не были.
Этап 0. Подготовка
Итак, начнем.
В первую очередь нам необходимо подобрать оборудование. Есть, по сути, только два варианта: либо покупать устройство, с любовью оклеенное этикетками Checkpoint и помещенное в специально подготовленный для него корпус, или же собирать платформу самостоятельно. В любом случае выбор устройства будет зависеть от очень большого количества параметров. Мы можем опираться лишь на свой опыт и на ту документацию, которую нам предоставляет сам вендор. Список поддерживаемых серверов можно посмотреть по ссылке. Так же можно примерно посчитать на какую нагрузку будет рассчитан конкретный девайс от компании Checkpoint (осторожно PDF). К сожалению, Checkpoint не предоставляет информацию об установленном в устройства оборудовании, лишь объем оперативной памяти и количество интерфейсов, но в Интернете можно найти кое-какую информацию о CPU.
Этап 1. Установка операционной системы Gaia
После того, как мы выбрали платформу, перейдем к установке операционной системы. Кстати, об операционной системе: Gaia (последняя из операционных систем Checkpoint'а) базируется на дистрибутиве RedHat 5.2. А значит, если Вы до этого работали с linux-based операционными системами, то Вам будет приятно увидеть многие знакомые утилиты и команды.
Здесь будет рассматриваться Gaia R77.10 в виртуальном окружении. Установка предыдущих, так и последующих версий этой операционной системы, ничем не отличается. На сегодняшний день последней является Gaia R77.30.
Компания Checkpoint не предоставляет дистрибутивы своих операционных систем без регистрации
Теперь мы вооружены всем необходимым и можем перейти непосредственно к установке.
Большинство следующих скриншотов не требуют пояснения: далее, далее, готово. Никто не предлагает установить Mail.Агент или какое-либо другое приложение, не имеющее отношение к теме.
Единственное, на что хочу обратить Ваше внимание – разметка диска. Система выдаст ошибку и прекратит установку, если объем жесткого диска менее 8Гб. В случае наличия от 8 до 15 Гб система самостоятельно разбивает диск на необходимые ей разделы. Если же объем больше 15Гб, то нам разрешат немного повлиять на этот процесс, а именно: изменить размер разделов под system-root (/) и логи (/var/logs/). Эта информация может пригодиться тем, кто собирается ставить Checkpoint на виртуальную машину. Остальным же требуется знать лишь, основное правило, которое заключается в том, что размер раздела “Backup and upgrade" должен быть не менее, чем сумма system-root и logs, так как снэпшоты операционной системы помещаются именно туда.
Теперь несколько рекомендаций по разметке дисков для менеджмент сервера и для фаервольных нод.
Менеджмент сервер:
- Рут должен быть не менее 6Гб, а если планируется использование дополнительных компонентов (блейдов), таких как: IPS, Application Control, URL Filtering, стоит увеличить размер, хотя бы до 10Гб.
- Логи – наше все. По крайней мере на менеджент сервере. Все доступное пространство выделяем им, ведь основная функция менеджмент сервера, помимо настройки правил – это хранение всевозможных логов и обновлений.
Фаервол:
- Рут – единственный раздел который фаерволу действительно нужен, и 10Гб, при включенных дополнительных блейдах, будет тоже вполне достаточно.
- Размер раздела для логов не так критичен, ведь логи пишутся на менеджмент сервер, а на фаерволе эта директория используется, в основном, для обновлений, поэтому хватит даже 5Гб.
Много картинок
Рис 1.1
Выбираем пункт “Install Gaia on this system":

Рис 1.2
Тут мы можем посмотреть информацию об установленном оборудовании:

Рис 1.3
Выбираем язык:

Рис 1.4
Размечаем диск:

Рис 1.5
Придумываем пароль:

Рис 1.6
Тут мы можем выбрать и настроить интерфейс, который в дальнейшем будем использовать для подключения к устройству через https и ssh.

Рис 1.7
Непосредственно, настройка.

После этого придется немного подождать, пока система установится на выбранный сервер.
Выбираем пункт “Install Gaia on this system":

Рис 1.2
Тут мы можем посмотреть информацию об установленном оборудовании:

Рис 1.3
Выбираем язык:

Рис 1.4
Размечаем диск:

Рис 1.5
Придумываем пароль:

Рис 1.6
Тут мы можем выбрать и настроить интерфейс, который в дальнейшем будем использовать для подключения к устройству через https и ssh.

Рис 1.7
Непосредственно, настройка.

После этого придется немного подождать, пока система установится на выбранный сервер.
Этап 2.1 Подготовка к настройке
После того, как мы установили операционную систему, логично было бы сразу перейти к настройке политик и другим фаервольным прелестям. Но тут оказывается, что нам необходимо предварительно выбрать, какую функцию будет наш сервер выполнять: будет это фаервол или менеджмент сервер. Таким образом первоначальная конфигурация включает в себя следующие пункты:
- Выбор роли сервера
- Параметры менеджмент интерфейса
- Правила доступа
- Параметры DNS, NTP, Proxy серверов (proxy только через WebUI)
Первичная настройка Checkpoint для последующей работы с ним доступна в упомянутой выше статье. Мы же сейчас попробуем сделать то же самое, но при помощи командной строки, для этого нам не понадобится отдельный компьютер, сетевое подключение к фаерволу и даже монитор, если Вы
Для того что бы произвести конфигурацию фаервола через CLI у нас есть специальная утилита config_system, точнее, это обычный bash-скрипт, содержимое которого Вы можете посмотреть и отредактировать. Лежит он в /bin/config_system.
Этот скрипт редактирует файл базы данных Gaia OS /config/db/initial.
Давайте разберем принцип его работы на примере функции по изменению ip-адреса:
DBSET=/bin/dbset
DBGET=/bin/dbget
...........
# configure new ip for interface
# $1 - interface name
# $2 - ip
# $3 - mask
set_ip() {
local cip
# get current ip
cip=$(dbget -c interface:$1:ipaddr)
# if interface configured, delete old ip first
if [[ ! -z $cip ]]; then
log "Configure IPv4 - remove old ip:$cip from $1"
$DBSET interface:$1:ipaddr:$cip
$DBSET interface:$1:ipaddr:$cip:mask
fi
# now configure new ip/mask
log "Configure IPv4 - interface:$1, new ip:$2, mask:$3"
$DBSET interface:$1:state on
$DBSET interface:$1:ipaddr:$2 t
$DBSET interface:$1:ipaddr:$2:mask $3
}
........
$DBSET :save
Получение текущих настроек из базы происходит при помощи утилиты /bin/dbget, а изменяет конфигурацию команда /bin/dbset. Вот так выглядит кусок файла, описывающий настройки интерфейса eth0:
[Expert@Gaia_R77.10_test:0]# cat /config/db/initial | grep eth0
management:interface eth0
interface:eth0 t
interface:eth0:link_speed 1000M/full
interface:eth0:state on
interface:eth0:ipaddr:192.168.1.2 t
interface:eth0:ipaddr:192.168.1.2:mask 24
interface:eth0:duplicity full
interface:eth0:speed 1000M
interface:eth0:auto_negotiation on
Параметр отделяется от значения пробелом. Теперь мы можем попробовать получить какие-нибудь значения при помощи DBGET.
[Expert@Gaia_R77.10_test:0]# dbget -c interface:eth0:ipaddr
192.168.1.2
Ключ -c необходим для вывода имени дочернего параметра с не нулевым значением. Что бы дополнительно показать значение этого параметра существует ключ -v.
[Expert@Gaia_R77.10_test:0]# dbget -cv interface:eth0:ipaddr
192.168.1.2 t
Мы получили значение равное t, то есть true. По сути это означает лишь то, что на интерфейсе задан ip-адрес, равный 192.168.1.2.
А теперь изменим ip-адрес на интерфейсе. Для этого нам надо:
- Удалить текущие значения ip-адреса и маски
- Установить новое значение ip-адреса
- Установить новое значение маски
- Сохранить конфигурацию
[Expert@Gaia_R77.10_test:0]# dbset interface:eth0:ipaddr:192.168.1.2
[Expert@Gaia_R77.10_test:0]# dbset interface:eth0:ipaddr:192.168.1.2:mask
[Expert@Gaia_R77.10_test:0]# dbset interface:eth0:ipaddr:192.168.1.1 t
[Expert@Gaia_R77.10_test:0]# dbset interface:eth0:ipaddr:192.168.1.1:mask 24
[Expert@Gaia_R77.10_test:0]# dbset :save
Этап 2.2 Первоначальная конфигурация
Config_system принимает либо файл, либо строку из необходимых параметров, разделенных амперсандом (&). Синтаксис команды со строкой в качестве параметра будет выглядеть следующим образом:
Gaia_R77.10_test> config_system "hostname=myhost&domainname=somedomain.com&timezone='UTC-3'&ftw_sic_key=aaaa&install_security_gw=true&gateway_daip=false&install_ppak=true&gateway_cluster_member=true&install_security_managment=false"
Значение каждого из этих параметров мы разберем далее. А сейчас разберемся с конфигурационным файлом.
Конфигурационный файл содержит в себе все те же самые значения, каждое на отдельной строке.
Первым делом мы создадим шаблон конфигурационного файла, который потом будем редактировать.
[Expert@Gaia_R77.10_test:0]# config_system -t /home/admin/initial.conf
initial.conf
#########################################################################
# #
# Products configuration #
# #
# For keys below set "true"/"false" after '=' within the quotes #
#########################################################################
# Install Security Gateway.
install_security_gw=
# Install Acceleration Blade (aka Performance Pack).
install_ppak=
# Enable DAIP (dynamic ip) gateway.
# Should be "false" if CXL or Security Management enabled
gateway_daip="false"
# Enable/Disable CXL.
gateway_cluster_member=
# Install Security Management.
install_security_managment=
# Optional parameters, only one of the parameters below can be "true".
# If no primary of secondary specified, log server will be installed.
# Requires Security Management to be installed.
install_mgmt_primary=
install_mgmt_secondary=
# Provider-1 paramters
# e.g: install_mds_primary=true
# install_mds_secondary=false
# install_mlm=false
# install_mds_interface=eth0
install_mds_primary=
install_mds_secondary=
install_mlm=
install_mds_interface=
# Automatically download Blade Contracts and other important data (highly recommended)
# It is highly recommended to keep this setting enabled, to ensure smooth operation of Check Point products.
# for more info see sk94508
#
# possible values: "true" / "false"
download_info="true"
# Improve product experience by sending data to Check Point
# If you enable this setting, the Security Management Server and Security Gateways may upload data that will
# help Check Point provide you with optimal services.
# for more info see sk94509
#
# possible values: "true" / "false"
upload_info="false"
# In case of Smart1 SmartEvent appliance, choose
# Security Management only, log server will be installed automatically
#########################################################################
# #
# Products Parameters #
# #
# For keys below set value after '=' #
#########################################################################
# Management administrator name
# Must be provided, if Security Management installed
mgmt_admin_name=
# Management administrator password
# Must be provided, if Security Management installed
mgmt_admin_passwd=
# Management GUI client allowed e.g. any, 1.2.3.4, 192.168.0.0/24
# Set to "any" if any host allowed to connect to managment
# Set to "range" if range of IPs allowed to connect to management
# Set to "network" if IPs from specific network allowed to connect
# to management
# Set to "this" if it' a single IP
# Must be provided if Security Management installed
mgmt_gui_clients_radio=
#
# In case of "range", provide the first and last IPs in dotted format
mgmt_gui_clients_first_ip_field=
mgmt_gui_clients_last_ip_field=
#
# In case of "network", provide IP in dotted format and netmask length
# in range 0-32
mgmt_gui_clients_ip_field=
mgmt_gui_clients_subnet_field=
#
# In case of a single IP
mgmt_gui_clients_hostname=
# Secure Internal Communication key, e.g. "aaaa"
# Must be provided, if primary Security Management not installed
ftw_sic_key=
#########################################################################
# #
# Operating System configuration - optional section #
# #
# For keys below set value after '=' #
#########################################################################
# Password (hash) of user admin.
# To get hash of admin password from configured system:
# dbget passwd:admin:passwd
# OR
# grep admin /etc/shadow | cut -d: -f2
#
# IMPORTANT! In order to preserve the literal value of each character
# in hash, inclose hash string within the quotes.
# e.g admin_hash='put_here_your_hash_string'
#
# Optional parameter
admin_hash=''
# Interface name, optional parameter
iface=
# Management interface IP in dotted format (e.g. 1.2.3.4),
# management interface mask length (in range 0-32, e,g 24 ) and
# default gateway.
# Pay attention, that if you run first time configuration remotely
# and you change IP, in order to maintain the connection,
# an old IP address will be retained as a secondary IP address.
# This secondary IP address can be delete later.
# Your session will be disconnected after first time condiguration
# process.
# Optional prameter, requires "iface" to be specified
# IPv6 address format: 0000:1111:2222:3333:4444:5555:6666:7777
# ipstat_v4 manually/off
ipstat_v4=
ipaddr_v4=
masklen_v4=
default_gw_v4=
ipstat_v6=
ipaddr_v6=
masklen_v6=
default_gw_v6=
# Host Name e.g host123, optional parameter
hostname=
# Domain Name e.g. checkpoint.com, optional parameter
domainname=
# Time Zone in format Area/Region (e.g America/New_York or Etc/GMT-5)
# Pay attention that GMT offset should be in classic UTC notation:
# GMT-5 is 5 hours behind UTC (i.e. west to Greenwich)
# Inclose time zone string within the quotes.
# Optional parameter
timezone=''
# NTP servers
# NTP parameters are optional
ntp_primary=
ntp_primary_version=
ntp_secondary=
ntp_secondary_version=
# DNS - IP address of primary, secondary, tertiary DNS servers
# DNS parameters are optional.
primary=
secondary=
tertiary=
В самом шаблоне довольно подробно описан каждый параметр. Поэтому я просто приведу пример конфигурации для менеджмент сервера:
install_security_managment="true"
mgmt_admin_name=admin
mgmt_admin_passwd=password
mgmt_gui_clients_radio="network"
mgmt_gui_clients_ip_field=192.168.1.0
mgmt_gui_clients_subnet_field=24
admin_hash='HASH_OF_ADMIN_PASSWORD'
install_mgmt_primary="true"
iface=eth0
ipstat_v4=manual
ipaddr_v4=192.168.1.1
masklen_v4=24
default_gw_v4=192.168.1.254
ipstat_v6=off
hostname=Gaia_R77.10_MGMT
timezone='Etc/GMT+3'
primary=8.8.8.8
И одного фаервола:
install_security_gw="true"
admin_hash='HASH_OF_ADMIN_PASSWORD'
iface=eth0
ipstat_v4=manual
ipaddr_v4=192.168.1.2
masklen_v4=24
default_gw_v4=192.168.1.254
ipstat_v6=off
hostname=Gaia_R77.10_FW1
timezone='Etc/GMT+3'
ftw_sic_key='onetimepassword'
primary=8.8.8.8
Единственное, на чем хочется остановиться отдельно — параметр ftw_sic_key="". SIC, или Secure Internal Communication key — это одноразовый пароль, который нужен, что бы фаерволом можно было управлять с менеджмент сервера (поэтому мы задали его только на фаерволе). Он нам будет нужен один раз при добавлении фаервола в панель управления менеджмент сервера.
Последний шаг — это отдать полученный файл скрипту и подождать пока завершится конфигурация:
[Expert@Gaia_R77.10_test:0]# config_system -f /home/admin/initial.conf
Теперь перезагружаем сервер и все готово.
Этап 3. Подведение итогов
Теперь у нас есть один менеджмент сервер и один фаервол. Они готовы к дальнейшей настройке.
В следующей статье мы научимся добавлять фаерволы для управления с одного менеджмент сервера. Узнаем как из них организовать кластер, если изначально мы к этому готовы не были. Рассмотрим варианты кластеров и их принцип работы. А так же пробежимся по способам настройки NATа и простейшим фаервольным политикам.
Спасибо за внимание. Буду рад ответить на ваши вопросы.
Комментарии (14)
lostpassword
09.06.2015 08:48Подскажите, а для серии 21000 (Check Point 21000 Appliances) эта инструкция будет применима?
slasheg Автор
09.06.2015 10:29+1Да, в том числе и для 21000 серии подойдет.
Andin
12.06.2015 12:31Фига себе, для начинающих, зачем dbset, зачем такие дебри? Для начинающих есть функциональная Web GUI консоль, есть clish.
slasheg Автор
13.06.2015 00:25Я рассмотрел пример работы скрипта первоначальной конфигурации. Что бы не оставлять его без комментариев — выделил те утилиты, назначение которых могло быть не понятно. Можно было в очередной раз рассмотреть конфигурацию через WebUI, но хочется чего-то нового добавить, даже в такой не особо интересный процесс.
linjan
Спасибо, отличная статья, жду продолжения. Вопрос: Сертифицированы ли продукты Checkpoint ФСТЭК для использования в России?
slasheg Автор
Рад, что Вам понравилась. Постараюсь не ударить в грязь лицом. На данный момент возможна установка патча c сертификацией ФСТЭК на Gaia R77.10 (только Gaia).
daem0n
На R77.10 нет сертификата ФСТЭК. Последняя версия с сертификатом — R75.40VS.
slasheg Автор
Ссылка на админ гайд.
slasheg Автор
Возможно ошибаюсь
daem0n
Админ гайд не есть сертификат =) ГОСТ для R75.40VS я имел удовольствие внедрять еще в начале 2013, а сертификат ФСТЭК он получил в конце декабря прошлого года (№3297). Сертификат для R77.10 обещали в Q1 2015, но по опыту он реально будет в лучшем случае к концу этого года, если не позже. А про ФСБ я вообще молчу.
slasheg Автор
прошу прощения)
Rel1cto
ФСТЭК (на межсетевое экранирование) — да.
Вот с ГОСТ-шифрованием VPN и сертификацией ФСБ есть большие вопросы.
ЧП утверждает, что использовать можно в случаях, когда не требуется подтверждение корректности встраивания.
Контраргументов на lukatsky.blogspot.ru/2010/05/blog-post_27.html мне до сих пор получить от них не удалось.