[Из песочницы] Настройка Checkpoint. Часть 1. Установка и первоначальная конфигурация

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» ipstat_v4=«manually» ipaddr_v4=»192.168.1.1» masklen_v4=»24» default_gw_v4=»192.168.1.254» hostname=«Gaia_R77.10_MGMT» timezone=«UTC-3» primary=»8.8.8.8» И одного фаервола: install_security_gw=«true» admin_hash='HASH_OF_ADMIN_PASSWORD' ipstat_v4=«manually» ipaddr_v4=»192.168.1.2» masklen_v4=»24» default_gw_v4=»192.168.1.254» hostname=«Gaia_R77.10_FW1» timezone=«UTC-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а и простейшим фаервольным политикам.

Спасибо за внимание. Буду рад ответить на ваши вопросы.

© Habrahabr.ru