Сегментация облачной инфраструктуры с помощью решения Check Point Next-Generation Firewall
- Подготовьте облако к работе
- Подготовьте окружение
- Разверните ресурсы
- Настройте шлюз межсетевого экрана
- Подключитесь к сегменту управления через VPN
- Запустите консоль управления SmartConsole
- Добавьте шлюз межсетевого экрана
- Настройте сетевые интерфейсы шлюза FW
- Создайте сетевые объекты
- Определите правила политики безопасности
- Настройте статическую таблицу трансляции NAT
- Примените правила политик безопасности
- Протестируйте работоспособность решения
- Требования к развертыванию в продуктивной среде
- Как удалить созданные ресурсы
С помощью руководства вы развернете защищенную сетевую инфраструктуру на основе Check Point Next-Generation Firewall. Инфраструктура состоит из трех сегментов, каждый из которых содержит ресурсы одного назначения, обособленные от других ресурсов. Например, выделенный DMZ
Если необходимо обеспечить отказоустойчивость NGFW и высокую доступность развернутых приложений, то используйте рекомендуемое решение.
Схема решения представлена ниже.
Решение включает следующие основные сегменты (каталоги):
- Каталог public предназначен для размещения ресурсов с доступом из интернет;
- Каталог mgmt предназначен для управления облачной инфраструктурой и размещения служебных ресурсов. Включает в себя ВМ для защиты инфраструктуры и сегментации сети на зоны безопасности (fw), ВМ сервера централизованного управления межсетевыми экранами (mgmt-server) и ВМ c настроенным WireGuard VPN
для защищенного доступа к сегменту управления по VPN (jump-vm); - Каталог dmz предоставляет возможность публикации приложений с открытым доступом из внешней сети интернет.
Более подробное описание приведено в репозитории проекта
Чтобы развернуть защищенную сетевую инфраструктуру на основе Check Point Next-Generation Firewall:
- Подготовьте облако к работе.
- Подготовьте окружение.
- Разверните ресурсы.
- Настройте шлюз межсетевого экрана.
- Протестируйте работоспособность решения.
- Требования к развертыванию в продуктивной среде
Если созданные ресурсы вам больше не нужны, удалите их.
Next-Generation Firewall
В Yandex Cloud Marketplace доступно несколько вариантов NGFW. В данном сценарии используется решение Check Point CloudGuard IaaS, предоставляющее следующие возможности:
- Межсетевой экран, NAT, предотвращение вторжений, антивирус и защита от ботов;
- Гранулярный контроль трафика на уровне приложений, логирование сессий;
- Централизованное управление с помощью решения Check Point Security Management;
- Решение Check Point в данном примере настроено с базовыми политиками доступа (Access Control) и NAT.
Решение Check Point CloudGuard IaaS доступно в Yandex Cloud Marketplace в вариантах Pay as you go и BYOL. В этом примере используется BYOL вариант с Trial периодом 15 дней:
- ВМ NGFW Check Point CloudGuard IaaS - Firewall & Threat Prevention BYOL;
- ВМ сервера управления Check Point CloudGuard IaaS - Security Management BYOL для задач управления NGFW.
Для использования в продуктивной среде рекомендуется рассматривать варианты:
- NGFW Check Point CloudGuard IaaS - Firewall & Threat Prevention PAYG;
- Для сервера управления Check Point CloudGuard IaaS - Security Management необходимо приобрести отдельную лицензию либо использовать свою on-prem инсталляцию сервера управления.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры входит:
- плата за постоянно работающие ВМ (см. тарифы Yandex Compute Cloud);
- плата за использование публичных IP-адресов и исходящий трафик (см. тарифы Yandex Virtual Private Cloud).
Необходимые квоты
Важно
В руководстве предполагается развертывание ресурсоемкой инфраструктуры.
Убедитесь, что в облаке достаточно квот и они не заняты ресурсами для других задач.
Количество занимаемых руководством ресурсов
Ресурс | Количество |
---|---|
Каталоги | 3 |
Виртуальные машины | 4 |
vCPU виртуальных машин | 12 |
RAM виртуальных машин | 20 ГБ |
Диски | 4 |
Объем SSD дисков | 240 ГБ |
Объем HDD дисков | 20 ГБ |
Облачные сети | 3 |
Подсети | 3 |
Таблицы маршрутизации | 2 |
Группы безопасности | 5 |
Статические публичные IP-адреса | 2 |
Статические маршруты | 3 |
Подготовьте окружение
В руководстве используется программное обеспечение для ОС Windows и подсистема Windows Subsystem for Linux
Инфраструктура разворачивается с помощью Terraform
Настройте WSL
-
Проверьте, установлена ли подсистема WSL на вашем компьютере. Для этого выполните в терминале интерфейса командной строки команду:
wsl -l
При установленной WSL терминал выведет список доступных дистрибутивов, например:
Windows Subsystem for Linux Distributions: docker-desktop (Default) docker-desktop-data Ubuntu
-
Если WSL не установлена, установите
ее и повторите предыдущий шаг. -
Дополнительно можно установить на подсистему WSL привычный вам дистрибутив ОС Linux, например, Ubuntu
. -
Чтобы сделать установленный дистрибутив системой по умолчанию, выполните:
wsl --setdefault ubuntu
-
Переведите терминал в режим работы в подсистеме Linux, выполнив команду:
wsl ~
Примечание
Все описанные далее действия в терминале выполняются в ОС Linux.
Создайте сервисный аккаунт с правами администратора на облако
-
В консоли управления
выберите каталог, в котором хотите создать сервисный аккаунт. -
В списке сервисов выберите Identity and Access Management.
-
Нажмите кнопку Создать сервисный аккаунт.
-
Введите имя сервисного аккаунта, например,
sa-terraform
.Требования к формату имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Нажмите кнопку Создать.
-
Назначьте аккаунту роль администратора:
- На стартовой странице
консоли управления выберите облако. - Перейдите на вкладку Права доступа.
- Найдите аккаунт
sa-terraform
в списке и нажмите значок . - Нажмите кнопку Изменить роли.
- В открывшемся диалоге нажмите кнопку Добавить роль и выберите роль
admin
.
- На стартовой странице
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Создайте сервисный аккаунт:
yc iam service-account create --name sa-terraform
Где
name
— имя сервисного аккаунта. Требования к имени:- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
Результат:
id: ajehr0to1g8b******** folder_id: b1gv87ssvu49******** created_at: "2024-01-04T09:03:11.665153755Z" name: sa-terraform
-
Назначьте аккаунту роль администратора:
yc resource-manager cloud add-access-binding <идентификатор_облака> \ --role admin \ --subject serviceAccount:<идентификатор_сервисного_аккаунта>
Результат:
done (1s)
Чтобы создать сервисный аккаунт, воспользуйтесь методом REST API create для ресурса ServiceAccount или вызовом gRPC API ServiceAccountService/Create.
Чтобы назначить сервисному аккаунту роль на облако или каталог, воспользуйтесь методом REST API updateAccessBindings
для ресурса Cloud или Folder:
-
Выберите роль, которую хотите назначить сервисному аккаунту. Описание ролей можно найти в документации Yandex Identity and Access Management в справочнике ролей Yandex Cloud.
-
Узнайте ID каталога с сервисными аккаунтами.
-
Получите IAM-токен для авторизации в API Yandex Cloud.
-
Получите список сервисных аккаунтов в каталоге, чтобы узнать их идентификаторы:
export FOLDER_ID=b1gvmob95yys******** export IAM_TOKEN=CggaATEVAgA... curl \ --header "Authorization: Bearer ${IAM_TOKEN}" \ "https://iam.api.cloud.yandex.net/iam/v1/serviceAccounts?folderId=${FOLDER_ID}"
Результат:
{ "serviceAccounts": [ { "id": "ajebqtreob2d********", "folderId": "b1gvmob95yys********", "createdAt": "2018-10-18T13:42:40Z", "name": "my-robot", "description": "my description" } ] }
-
Сформируйте тело запроса, например в файле
body.json
. В свойствеaction
укажитеADD
, в свойствеroleId
— нужную роль, напримерeditor
, а в свойствеsubject
— типserviceAccount
и идентификатор сервисного аккаунта:body.json:
{ "accessBindingDeltas": [{ "action": "ADD", "accessBinding": { "roleId": "editor", "subject": { "id": "ajebqtreob2d********", "type": "serviceAccount" } } }] }
-
Назначьте роль сервисному аккаунту. Например, на каталог с идентификатором
b1gvmob95yys********
:export FOLDER_ID=b1gvmob95yys******** export IAM_TOKEN=CggaAT******** curl \ --request POST \ --header "Content-Type: application/json" \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --data '@body.json' \ "https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/${FOLDER_ID}:updateAccessBindings"
Установите необходимые утилиты
-
Установите Git
с помощью команды:sudo apt install git
-
Установите Terraform:
-
Перейдите в корневую папку:
cd ~
-
Создайте папку
terraform
и перейдите в нее:mkdir terraform cd terraform
-
Скачайте файл
terraform_1.3.9_linux_amd64.zip
с официального сайта, выполнив команду:curl --location --remote-name https://hashicorp-releases.yandexcloud.net/terraform/1.3.9/terraform_1.3.9_linux_amd64.zip
-
Установите утилиту
zip
и распакуйте zip-архив:apt install zip unzip terraform_1.3.9_linux_amd64.zip
-
Добавьте путь к папке, в которой находится исполняемый файл, в переменную
PATH
:export PATH=$PATH:~/terraform
-
Проверьте, что Terraform установлен, выполнив команду:
terraform -help
-
-
Создайте конфигурационный файл с указанием источника провайдеров для Terraform:
-
Создайте файл
.terraformrc
с помощью встроенного редактораnano
:cd ~ nano .terraformrc
-
Добавьте в него следующий блок:
provider_installation { network_mirror { url = "https://terraform-mirror.yandexcloud.net/" include = ["registry.terraform.io/*/*"] } direct { exclude = ["registry.terraform.io/*/*"] } }
Подробнее о настройках зеркал см. в документации Terraform
.
-
Разверните ресурсы
-
Клонируйте репозиторий
из GitHub и перейдите в папку сценарияyc-network-segmentation-with-checkpoint
:git clone https://github.com/yandex-cloud-examples/yc-network-segmentation-with-checkpoint.git cd yc-network-segmentation-with-checkpoint
-
Настройте профиль CLI для выполнения операций от имени сервисного аккаунта:
CLIЕсли у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
.-
Создайте авторизованный ключ для сервисного аккаунта и запишите его файл:
yc iam key create \ --service-account-id <идентификатор_сервисного_аккаунта> \ --folder-id <id_каталога_с_сервисным_аккаунтом> \ --output key.json
Где:
service-account-id
— идентификатор сервисного аккаунта;folder-id
— идентификатор каталога, в котором создан сервисный аккаунт;output
— имя файла с авторизованным ключом.
Результат:
id: aje8nn871qo4******** service_account_id: ajehr0to1g8b******** created_at: "2023-03-04T09:16:43.479156798Z" key_algorithm: RSA_2048
-
Создайте профиль CLI для выполнения операций от имени сервисного аккаунта:
yc config profile create sa-terraform
Результат:
Profile 'sa-terraform' created and activated
-
Задайте конфигурацию профиля:
yc config set service-account-key key.json yc config set cloud-id <идентификатор_облака> yc config set folder-id <идентификатор_каталога>
Где:
service-account-key
— файл с авторизованным ключом сервисного аккаунта;cloud-id
— идентификатор облака;folder-id
— идентификатор каталога.
-
Добавьте аутентификационные данные в переменные окружения:
export YC_TOKEN=$(yc iam create-token) export YC_CLOUD_ID=$(yc config get cloud-id) export YC_FOLDER_ID=$(yc config get folder-id)
-
-
Получите IP вашего ПК:
curl 2ip.ru
Результат:
192.240.24.87
-
Откройте файл
terraform.tfvars
с помощью редактораnano
и отредактируйте:-
Строку, содержащую идентификатор облака:
cloud_id = "<идентификатор_облака>"
-
Строку, содержащую список разрешенных публичных IP-адресов для доступа к ВМ
jump-vm
:trusted_ip_for_access_jump-vm = ["<внешний_IP_ПК>/32"]
Описание переменных в terraform.tfvars
Название
параметраНужно
изменениеОписание Тип Пример cloud_id
да Идентификатор вашего облака в Yandex Cloud string
b1g8dn6s3v2e********
az_name
- Зона доступности Yandex Cloud для размещения ресурсов string
ru-central1-d
security_segment_names
- Список названий сегментов. Первый сегмент для размещения ресурсов управления, второй с публичным доступом в интернет, третий для DMZ. Если требуются дополнительные сегменты, то нужно добавлять их в конец списка. При добавлении сегмента обязательно добавьте префикс для подсети в список subnet_prefix_list
.list(string)
["mgmt", "public", "dmz"]
subnet_prefix_list
- Список сетевых префиксов для подсетей, соответствующих списку названия сегментов security_segment_names
. По одному префиксу для сегмента.list(string)
["192.168.1.0/24", "172.16.1.0/24", "10.160.1.0/24"]
public_app_port
- TCP порт для опубликованного в DMZ приложения для подключения из внешнего интернета number
80
internal_app_port
- Внутренний TCP порт опубликованного в DMZ приложения, на который NGFW будет направлять трафик. Может отличаться от public_app_port или совпадать с ним. number
8080
trusted_ip_for_access_jump-vm
да Список публичных IP адресов/подсетей, с которых разрешено подключение к Jump ВМ. Используется во входящем правиле группы безопасности для Jump ВМ. list(string)
["A.A.A.A/32", "B.B.B.0/24"]
jump_vm_admin_username
- Имя пользователя для подключения к Jump ВМ по SSH string
admin
wg_port
- UDP порт для входящих соединений в настройках WireGuard на Jump ВМ number
51820
Важно
Рекомендуется заранее указать дополнительные сегменты, если они могут потребоваться в будущем, т.к. ВМ с образом NGFW в облаке не поддерживает добавление новых сетевых интерфейсов после её создания.
-
-
Разверните ресурсы в облаке с помощью Terraform:
-
Выполните инициализацию Terraform:
terraform init
-
Проверьте конфигурацию Terraform файлов:
terraform validate
-
Проверьте список создаваемых облачных ресурсов:
terraform plan
-
Создайте ресурсы:
terraform apply
-
-
После завершения процесса
terraform apply
в командной строке будет выведен список информации о развернутых ресурсах. В дальнейшем его можно будет посмотреть с помощью командыterraform output
:Посмотреть информацию о развернутых ресурсах
Название Описание Пример значения dmz-web-server_ip_address
IP адрес веб-сервера в сегменте dmz для тестирования публикации приложения из dmz. Используется для настройки Destination NAT в FW. 10.160.1.100
fw-mgmt-server_ip_address
IP адрес сервера управления FW 192.168.1.100
fw_gaia_portal_mgmt-server_password
Пароль по умолчанию для первоначального подключения по https к IP адресу сервера управления FW admin
fw_mgmt_ip_address
IP адрес FW в сети управления 192.168.1.10
fw_public_ip_address
Публичный IP адрес для FW D.D.D.D
fw_sic-password
Однократный пароль для добавления FW в сервер управления FW Не показывается в общем выводе terraform output
. Для отображения значения используйтеterraform output fw_sic-password
.fw_smartconsole_mgmt-server_password
Пароль для подключения к серверу управления FW с помощью графического приложения Check Point SmartConsole Не показывается в общем выводе terraform output
. Для отображения значения используйтеterraform output fw_smartconsole_mgmt-server_password
.jump-vm_path_for_WireGuard_client_config
Файл конфигурации для защищенного VPN подключения с помощью клиента WireGuard к Jump ВМ ./jump-vm-wg.conf
jump-vm_public_ip_address_jump-vm
Публичный IP адрес Jump ВМ E.E.E.E
path_for_private_ssh_key
Файл с private ключом для подключения по протоколу SSH к ВМ (jump-vm, fw, mgmt-server, веб-сервер в сегменте dmz) ./pt_key.pem
Настройте шлюз межсетевого экрана
В руководстве приводятся шаги настройки FW с базовыми политиками доступа (Access Control) и NAT, необходимыми для проверки работоспособности, но не являющимися достаточными для развертывания инфраструктуры в продуктивной среде.
Подробнее с возможностями Check Point и его настройкой можно познакомиться в бесплатном курсе Погружение в сетевую безопасность.
Подключитесь к сегменту управления через VPN
После развертывания инфраструктуры в каталоге mgmt
появится ВМ jump-vm
на основе образа Ubuntu с настроенным WireGuard VPNjump-vm
на вашем ПК для доступа к подсетям сегментов mgmt
, dmz
, public
.
Чтобы настроить VPN туннель:
-
Получите имя пользователя в подсистеме Linux:
whoami
-
Установите
на ваш ПК приложение WireGuard. -
Откройте приложение WireGuard и нажмите кнопку Add Tunnel.
-
В появившемся диалоге выберите файл
jump-vm-wg.conf
в папкеyc-network-segmentation-with-checkpoint
.
Чтобы найти папку, созданную в подсистеме Linux, например, Ubuntu, введите в адресной строке диалога путь к файлу:\\wsl$\Ubuntu\home\<имя_пользователя_Ubuntu>\yc-network-segmentation-with-checkpoint
Где
<имя_пользователя_Ubuntu>
— имя пользователя текущего дистрибутива ОС Linux. -
Активируйте туннель нажатием на кнопку Activate.
-
Проверьте сетевую связность с сервером управления через VPN туннель WireGuard, выполнив в терминале команду:
ping 192.168.1.100
Важно
Если пакеты не достигают сервера управления, проверьте, что в группе безопасности
mgmt-jump-vm-sg
в правилах входящего трафика прописан верный внешний IP-адрес ПК.
Запустите консоль управления SmartConsole
Для управления и настройки решения Check Point
-
Подключитесь к серверу управления NGFW, перейдя в браузере по адресу
https://192.168.1.100
. -
Авторизуйтесь используя логин
admin
и парольadmin
. -
В открывшемся интерфейсе Gaia Portal скачайте графическое приложение SmartConsole. Для этого нажмите Manage Software Blades using SmartConsole. Download Now!.
-
Установите приложение SmartConsole на ПК.
-
Получите пароль доступа к SmartConsole:
terraform output fw_smartconsole_mgmt-server_password
-
Откройте SmartConsole и авторизуйтесь, указав логин
admin
, IP-адрес сервера управления192.168.1.100
и пароль доступа к SmartConsole.
Добавьте шлюз межсетевого экрана
Добавьте шлюз межсетевого экрана FW в сервер управления, используя Wizard:
-
Слева сверху в выпадающем списке Objects выберите More object types → Network Object → Gateways and Servers → New Gateway....
-
Нажмите Wizard Mode.
-
В открывшемся диалоге введите:
- Gateway name:
FW
- Gateway platform:
CloudGuard IaaS
- IPv4:
192.168.1.10
- Gateway name:
-
Нажмите Next.
-
Получите пароль доступа к межсетевому экрану:
terraform output fw_sic-password
-
В поле One-time password введите пароль, полученный ранее.
-
Нажмите Next и Finish.
Настройте сетевые интерфейсы шлюза FW
Настройте сетевой интерфейс eth0
:
- На вкладке Gateways & Servers откройте диалог настроек шлюза FW. Для этого в списке кликните дважды на добавленный FW.
- На вкладке Network Management в таблице Topology выберите интерфейс
eth0
, нажмите Edit и в появившемся окне нажмите Modify.... - В разделе Security Zone активируйте Specify Security Zone и выберите InternalZone.
Аналогично настройте сетевые интерфейсы eth1
, eth2
:
- Для интерфейса
eth1
укажите в разделе Security Zone зону ExternalZone. - Для интерфейса
eth2
в разделе Leads To выберите Override и активируйте Interface leads to DMZ. В разделе Security Zone укажите зону DMZZone.
Interface | IPv4 address/mask | Leads To | Security Zone | Anti Spoofing |
---|---|---|---|---|
eth0 | 192.168.1.10/24 | This network (Internal) | InternalZone | Prevent and Log |
eth1 | 172.16.1.10/24 | Internet (External) | ExternalZone | Prevent and Log |
eth2 | 10.160.1.10/24 | This network, DMZ (Internal) | DMZZone | Prevent and Log |
Создайте сетевые объекты
-
Слева сверху в выпадающем списке Objects выберите New Network... и создайте сети
mgmt
,public
иdmz
со следующими данными:Name Network address Net mask mgmt 192.168.1.0 255.255.255.0 public 172.16.1.0 255.255.255.0 dmz 10.160.1.0 255.255.255.0 Для сети dmz настройте Automatic Hide NAT, чтобы скрыть адреса ВМ, которые находятся в DMZ сегменте и выходят в интернет, за IP адресом FW в сегменте public. Для этого:
- В диалоге редактирования сети
dmz
перейдите на вкладку NAT. - Активируйте Add automatic address translation rules, выберите Hide из выпадающего списка и опцию Hide behind the gateway.
- В диалоге редактирования сети
-
Слева сверху в выпадающем списке Objects выберите New Host... и создайте хосты
dmz-web-server
иFW-public-IP
со следующими данными:Name IPv4 address dmz-web-server 10.160.1.100 FW-public-IP 172.16.1.10 -
Выберите More object types → Service → New TCP... и создайте TCP-сервис для развернутого приложения в DMZ-сегменте, указав имя
TCP_8080
и порт8080
.
Определите правила политики безопасности
Чтобы добавить правило безопасности:
- На вкладке Security policies в разделе Access Control выберите подраздел Policy.
- В таблице правил нажмите правую кнопку мыши и напротив опции New Rule контекстного меню выберите Above или Below.
- В новой строке:
- в колонке Name впишите
Web-server port forwarding on FW
; - в колонке Destination выберите объект
FW-public-IP
; - в колонке Services & Applications выберите объект
http
; - в колонке Action выберите опцию
Accept
; - в колонке Track выберите опцию
Log
.
- в колонке Name впишите
Аналогично внесите остальные правила из ниже приведенной таблицы базовых правил для проверки работы политик FW, публикации тестового приложения из DMZ сегмента и тестирования отказоустойчивости.
No | Name | Source | Destination | VPN | Services & Applications | Action | Track | Install On |
---|---|---|---|---|---|---|---|---|
1 | Web-server port forwarding on FW | Any | FW-public-IP | Any | http | Accept | Log | Policy Targets (All gateways) |
2 | FW management | mgmt | FW, mgmt-server | Any | https, ssh | Accept | Log | Policy Targets (All gateways) |
3 | Stealth | Any | FW, mgmt-server | Any | Any | Drop | Log | Policy Targets (All gateways) |
4 | mgmt to DMZ | mgmt | dmz | Any | Any | Accept | Log | Policy Targets (All gateways) |
5 | mgmt to public | mgmt | public | Any | Any | Accept | Log | Policy Targets (All gateways) |
6 | ping from dmz to internet | dmz | ExternalZone | Any | icmp-reguests (Group) | Accept | Log | Policy Targets (All gateways) |
7 | Cleanup rule | Any | Any | Any | Any | Drop | Log | Policy Targets (All gateways) |
Описание правил политики доступа Access Control - Policy
Номер | Имя | Описание |
---|---|---|
1 | Web-server port forwarding on FW | Разрешение доступа из внешнего интернета к IP адресу FW в public сегменте по порту TCP 80 |
2 | FW management | Разрешение доступа к FW, серверу управления FW из mgmt сегмента для задач управления |
3 | Stealth | Запрет доступа к FW, серверу управления FW из других сегментов |
4 | mgmt to DMZ | Разрешение доступа из mgmt сегмента к dmz сегменту для задач управления |
5 | mgmt to public | Разрешение доступа из mgmt сегмента к public сегменту для задач управления |
6 | ping from dmz to internet | Разрешение ICMP пакетов из dmz сегмента в интернет для проверки работоспособности |
7 | Cleanup rule | Запрет доступа для остального трафика |
Настройте статическую таблицу трансляции NAT
Destination NAT трансляции направляют запросы пользователей на веб-сервер приложения в dmz сегменте.
В заголовках пакетов с запросами от пользователей к опубликованному в DMZ приложению будет происходить трансляция Destination IP в IP адрес веб-сервера и Destination port в TCP порт 8080.
Чтобы настроить таблицы трансляции NAT шлюза FW:
-
Перейдите в подраздел NAT раздела Access Control;
-
В таблице правил в меню выберите Add rule to top.
-
В новой строке:
- в колонке Original Destination выберите объект
FW-public-IP
; - в колонке Original Services выберите объект
http
; - в колонке Translated Destination выберите объект
dmz-web-server
; - в колонке Translated Services выберите объект
TCP_8080
.
В таблице NAT появится правило:
No Original Source Original Destination Original Services Translated Source Translated Destination Translated Services Install On 1 Any FW-public-IP http Original dmz-web-server TCP_8080 Policy Targets (All gateways) - в колонке Original Destination выберите объект
Примените правила политик безопасности
- Вверху слева нажмите Install Policy.
- В открывшемся диалоге нажмите Publish & Install.
- В следующем диалоге нажмите Install и дождитесь завершения процесса.
Протестируйте работоспособность решения
-
Чтобы узнать публичный IP-адрес FW, выполните в терминале команду:
terraform output fw_public_ip_address
-
Проверьте, что сетевая инфраструктура доступна извне, перейдя в браузере по адресу:
http://<Публичный_ip_адрес_FW>
Если система доступна извне, должна открыться страница
Welcome to nginx!
. -
Проверьте, что активны разрешающие правила политики безопасности FW. Для этого на вашем ПК перейдите в папку
yc-network-segmentation-with-checkpoint
и подключитесь к ВМ в DMZ-сегменте по SSH:cd ~/yc-network-segmentation-with-checkpoint ssh -i pt_key.pem admin@<Внутренний_ip_адрес_ВМ_в_DMZ_сегменте>
-
Чтобы проверить наличие доступа из ВМ в DMZ сегменте к публичному ресурсу в сети интернет, выполните команду:
ping ya.ru
Команда должна выполниться в соответствие с разрешающим правилом
ping from dmz to internet
. -
Проверьте, что выполняются запрещающие правила политики безопасности.
Чтобы проверить отсутствие доступа к ВМJump ВМ
в сегментеmgmt
из сегментаdmz
, выполните команду:ping 192.168.1.101
Команда должна выполниться с ошибкой в соответствие с запрещающим правилом
Cleanup rule
. -
В SmartConsole в разделе
LOGS & MONITOR
на вкладкеLogs
найдите записи в моменты проведения тестов и проверьте, какие правила политики безопасности и действия были применены к трафику.
Требования к развертыванию в продуктивной среде
- Если необходимо обеспечить отказоустойчивость NGFW и высокую доступность развернутых приложений, то используйте рекомендуемое решение;
- Обязательно смените пароли, которые были переданы через сервис metadata в файлах
check-init...yaml
:- Пароль SIC для связи FW и сервера управления FW;
- Пароль от графической консоли Check Point SmartConsole;
- Пароль пользователя admin в сервере управления FW (можно изменить через Gaia Portal).
- Сохраните private SSH ключ
pt_key.pem
в надежное место либо пересоздайте его отдельно от Terraform; - Удалите публичный IP адрес у Jump ВМ, если не планируете ей пользоваться;
- Если планируете использовать Jump ВМ для подключения к сегменту управления с помощью VPN WireGuard, то измените ключи для WireGuard на Jump ВМ и рабочей станции администратора;
- Настройте Access Control политики и NAT в Check Point NGFW для вашей инсталляции;
- Настройте правила в группах безопасности в сегментах, необходимые для работы развернутых приложений;
- Не назначайте публичные IP адреса на ВМ в сегментах, где используются таблицы маршрутизации через Check Point NGFW. Исключением является mgmt сегмент управления, где в таблицах маршрутизации не используется default route
0.0.0.0/0
; - Выберите подходящую лицензию и образ для Check Point CloudGuard IaaS (смотрите раздел Next-Generation Firewall).
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы, выполните команду:
terraform destroy
Terraform удалит все ресурсы без возможности восстановления: сети, подсети, виртуальные машины, каталоги и т.д.
Так как созданные ресурсы расположены в каталогах, то в качестве более быстрого способа удаления всех ресурсов можно использовать удаление всех каталогов через консоль Yandex Cloud с дальнейшим удалением файла terraform.tfstate
из папки yc-network-segmentation-with-checkpoint
на вашем ПК.