Checkpoint Logo
Доброго всем времени суток. Сегодня я хочу начать цикл о настройке и принципах работы межсетевых экранов 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 не предоставляет дистрибутивы своих операционных систем без регистрации и SMS на сайте, поэтому поиск образа я полностью доверяю вам. Если же у вас имеется учетная запись, то загрузить необходимый дистрибутив можно по ссылке.

Теперь мы вооружены всем необходимым и можем перейти непосредственно к установке.

Большинство следующих скриншотов не требуют пояснения: далее, далее, готово. Никто не предлагает установить 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.1
Рис 1.2

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

Рис 1.2

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

Рис 1.3

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

Рис 1.4

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

Рис 1.5

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

Рис 1.7
Непосредственно, настройка.
Рис 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)


  1. linjan
    08.06.2015 23:30

    Спасибо, отличная статья, жду продолжения. Вопрос: Сертифицированы ли продукты Checkpoint ФСТЭК для использования в России?


    1. slasheg Автор
      08.06.2015 23:49

      Рад, что Вам понравилась. Постараюсь не ударить в грязь лицом. На данный момент возможна установка патча c сертификацией ФСТЭК на Gaia R77.10 (только Gaia).


      1. daem0n
        17.06.2015 15:36

        На R77.10 нет сертификата ФСТЭК. Последняя версия с сертификатом — R75.40VS.



        1. slasheg Автор
          17.06.2015 20:45

          Возможно ошибаюсь


          1. daem0n
            17.06.2015 22:46

            Админ гайд не есть сертификат =) ГОСТ для R75.40VS я имел удовольствие внедрять еще в начале 2013, а сертификат ФСТЭК он получил в конце декабря прошлого года (№3297). Сертификат для R77.10 обещали в Q1 2015, но по опыту он реально будет в лучшем случае к концу этого года, если не позже. А про ФСБ я вообще молчу.


            1. slasheg Автор
              17.06.2015 23:00

              прошу прощения)


    1. Rel1cto
      09.06.2015 09:43

      ФСТЭК (на межсетевое экранирование) — да.
      Вот с ГОСТ-шифрованием VPN и сертификацией ФСБ есть большие вопросы.
      ЧП утверждает, что использовать можно в случаях, когда не требуется подтверждение корректности встраивания.
      Контраргументов на lukatsky.blogspot.ru/2010/05/blog-post_27.html мне до сих пор получить от них не удалось.


  1. lostpassword
    09.06.2015 08:48

    Подскажите, а для серии 21000 (Check Point 21000 Appliances) эта инструкция будет применима?


    1. slasheg Автор
      09.06.2015 10:29
      +1

      Да, в том числе и для 21000 серии подойдет.


      1. lostpassword
        09.06.2015 10:37

        Спасибо, будет интересно.)


        1. slasheg Автор
          09.06.2015 10:47
          +1

          Скоро следующая статья )


  1. Andin
    12.06.2015 12:31

    Фига себе, для начинающих, зачем dbset, зачем такие дебри? Для начинающих есть функциональная Web GUI консоль, есть clish.


    1. slasheg Автор
      13.06.2015 00:25

      Я рассмотрел пример работы скрипта первоначальной конфигурации. Что бы не оставлять его без комментариев — выделил те утилиты, назначение которых могло быть не понятно. Можно было в очередной раз рассмотреть конфигурацию через WebUI, но хочется чего-то нового добавить, даже в такой не особо интересный процесс.