Сегментация облачной инфраструктуры с помощью решения 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.Требования к формату имени:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Нажмите кнопку Создать.
-
Назначьте аккаунту роль администратора:
- На стартовой странице
консоли управления выберите облако. - Перейдите на вкладку Права доступа.
- Найдите аккаунт
sa-terraformв списке и нажмите значок . - Нажмите кнопку Изменить роли.
- В открывшемся диалоге нажмите кнопку Добавить роль и выберите роль
admin.
- На стартовой странице
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Создайте сервисный аккаунт:
yc iam service-account create --name sa-terraformГде
name— имя сервисного аккаунта. Требования к имени:- длина — от 2 до 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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду
yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров--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 stringb1g8dn6s3v2e********az_name- Зона доступности Yandex Cloud для размещения ресурсов stringru-central1-dsecurity_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 приложения для подключения из внешнего интернета number80internal_app_port- Внутренний TCP порт опубликованного в DMZ приложения, на который NGFW будет направлять трафик. Может отличаться от public_app_port или совпадать с ним. number8080trusted_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 stringadminwg_port- UDP порт для входящих соединений в настройках WireGuard на Jump ВМ number51820Важно
Рекомендуется заранее указать дополнительные сегменты, если они могут потребоваться в будущем, т.к. ВМ с образом NGFW в облаке не поддерживает добавление новых сетевых интерфейсов после её создания.
-
-
Разверните ресурсы в облаке с помощью Terraform:
-
Выполните инициализацию Terraform:
terraform init -
Проверьте конфигурацию Terraform файлов:
terraform validate -
Проверьте список создаваемых облачных ресурсов:
terraform plan -
Создайте ресурсы:
terraform apply
-
-
После завершения процесса
terraform applyв командной строке будет выведен список информации о развернутых ресурсах. В дальнейшем его можно будет посмотреть с помощью командыterraform output:Посмотреть информацию о развернутых ресурсах
Название Описание Пример значения dmz-web-server_ip_addressIP адрес веб-сервера в сегменте dmz для тестирования публикации приложения из dmz. Используется для настройки Destination NAT в FW. 10.160.1.100fw-mgmt-server_ip_addressIP адрес сервера управления FW 192.168.1.100fw_gaia_portal_mgmt-server_passwordПароль по умолчанию для первоначального подключения по https к IP адресу сервера управления FW adminfw_mgmt_ip_addressIP адрес FW в сети управления 192.168.1.10fw_public_ip_addressПубличный IP адрес для FW D.D.D.Dfw_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.confjump-vm_public_ip_address_jump-vmПубличный IP адрес Jump ВМ E.E.E.Epath_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 на вашем ПК.