- Описание решения
- Архитектура решения и основные компоненты
- Разворачиваемые сегменты и ресурсы
- Действия по развертыванию сценария
- Подготовьте облако к работе
- Подготовьте окружение
- Разверните ресурсы
- Настройте NGFW
- Проверка работоспособности
- Требования к развертыванию в продуктивной среде
- Удаление созданных ресурсов
Сценарий разворачивает в Yandex Cloud облачную инфраструктуру для решения задач:
- защиты и сегментации инфраструктуры на зоны безопасности
- публикации приложений в интернет из зоны DMZ
Каждый сегмент сети (далее сегмент) содержит ресурсы одного назначения, обособленные от других ресурсов. Например, DMZ сегмент предназначен для размещения общедоступных приложений (обычно Frontend веб-сервера), а сегмент mgmt содержит ресурсы, используемые для управления облачной сетевой инфраструктурой. В облаке каждому сегменту соответствует свой каталог и своя облачная сеть VPC. Связь между сегментами происходит через виртуальную машину Check Point Next-Generation Firewall (NGFW), обеспечивающую комплексную защиту сегментов и контроль трафика между сегментами.
Если необходимо обеспечить отказоустойчивость NGFW и высокую доступность развернутых приложений, то используйте рекомендуемое решение.
Описание элементов схемы:
| Название элемента | Описание | Комментарии |
|---|---|---|
| VPC: public-vpc | Сегмент сети public | Для организации публичного доступа из интернет |
| VPC: mgmt-vpc | Сегмент сети mgmt | Для управления облачной инфраструктурой и размещения служебных ресурсов |
| VPC: dmz-vpc | Сегмент сети DMZ | Для размещения Frontend приложений, доступных из интернет |
| FW | Виртуальная машина Check Point NGFW | Для защиты инфраструктуры и сегментации сети на зоны безопасности |
| mgmt, public, dmz | Интерфейсы ВМ Check Point NGFW | Каждый интерфейс подключен в соответствующий VPC |
| Jump ВМ | Виртуальная машина c настроенным WireGuard VPN | Для защищенного VPN подключения к сегменту управления |
| Сервер управления FW | Виртуальная машина c ПО Check Point Security Management | Для централизованного управления решением Check Point |
| Приложение | ВМ с веб-сервером Nginx | Пример тестового приложения, развернутого в DMZ сегменте |
В 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 в варианте BYOL с Trial периодом 15 дней:
- ВМ NGFW Check Point CloudGuard IaaS - Firewall & Threat Prevention BYOL
- ВМ сервера управления Check Point CloudGuard IaaS - Security Management BYOL для задач управления NGFW
Для использования в продуктивной среде необходимо приобрести лицензии на решение Check Point CloudGuard IaaS. Если используется своя on-prem инсталляция сервера управления Check Point, то развертывать ВМ сервера управления в облаке не требуется.
Для контроля трафика между ресурсами внутри сегмента используются группы безопасности.
Решение создает в облаке ресурсы для 3 сегментов
| Сегмент | Описание | Ресурсы | Каталоги и сети | Группы безопасности |
|---|---|---|---|---|
| public | Размещение ресурсов с доступом из интернет | + | + | |
| mgmt | Управление облачной инфраструктурой | Check Point NGFW, сервер управления Check Point, Jump ВМ с WireGuard для подключения из интернет | + | + |
| dmz | Размещение Frontend приложений, доступных из интернет | Виртуальная машина с веб-сервером Nginx для примера | + | + |
Важно
Если в будущем ожидается увеличение количества сегментов, то рекомендуется развернуть их заранее, т.к. ВМ с образом NGFW в облаке не поддерживает добавление новых сетевых интерфейсов после её создания. Дополнительные сегменты можно указать в файле
terraform.tfvars.
Чтобы развернуть защищенную сетевую инфраструктуру на основе Check Point Next-Generation Firewall:
- Подготовьте облако к работе
- Подготовьте окружение
- Разверните ресурсы
- Настройте NGFW
- Протестируйте работоспособность решения
Если созданные ресурсы вам больше не нужны, удалите их.
Важно
Без шагов настройки NGFW проверить работоспособность решения не получится.
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
- На странице Биллинг убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его. Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака. - Проверьте наличие учетной записи в облаке с правами admin на облако.
В стоимость поддержки инфраструктуры входит:
- плата за постоянно работающие ВМ (см. тарифы 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 привычный вам дистрибутив ОС Linux, например, Ubuntu.
Важно
Все описанные далее действия в терминале выполняются в ОС Linux.
-
Склонируйте репозиторий
yandex-cloud-examples/yc-network-segmentation-with-checkpointиз 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 для выполнения операций от имени сервисного аккаунта (подробности).
-
Добавьте аутентификационные данные в переменную окружения:
export YC_TOKEN=$(yc iam create-token)
-
Получите публичный IP-адрес вашего ПК:
curl ifconfig.io
-
Заполните файл
terraform.tfvarsвашими значениями переменных. Файл содержит примеры значений, но вы можете заменить их своими данными (идентификатор облака, название сегментов и IP адреса подсетей, порт приложения в dmz, параметры для подключения к Jump ВМ). Обязательно укажите идентификатор вашего облакаcloud_idи список публичных IP адресов/подсетейtrusted_ip_for_access_jump-vm, с которых разрешено подключение к Jump ВМ. Откройте файлterraform.tfvarsи отредактируйте:-
Строку, содержащую идентификатор облака:
cloud_id = "<идентификатор_облака>" -
Строку, содержащую список разрешенных публичных IP-адресов для доступа к ВМ
jump-vm:trusted_ip_for_access_jump-vm = ["<внешний_IP_ПК>/32"]
Важно
Рекомендуется заранее указать дополнительные сегменты, если они могут потребоваться в будущем, т.к. ВМ с образом NGFW в облаке не поддерживает добавление новых сетевых интерфейсов после её создания.
Посмотреть описание переменных в terraform.tfvars
Название
параметраНужно
изменениеОписание Тип Пример cloud_idда Идентификатор вашего облака в Yandex Cloud stringb1g8dn6s3v2eiid9dbciaz_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 -
-
Разверните ресурсы в облаке с помощью 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Однократный пароль (SIC) для добавления 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 под ваши задачи в соответствие с корпоративной политикой безопасности. Для управления и настройки решения Check Point используется графическое приложение SmartConsole, доступное для операционной системы Windows.
В качестве примера приводятся шаги настройки FW с базовыми политиками доступа (Access Control) и NAT, необходимыми для проверки работоспособности, но не являющимися достаточными для развертывания инфраструктуры в продуктивной среде.
Шаги настройки NGFW в этом сценарии состоят из следующей последовательности действий, выполняемых в SmartConsole:
- Добавление FW
- Настройка сетевых интерфейсов FW
- Создание сетевых объектов
- Настройка политик доступа (Access Control - Policy)
- Настройка политик NAT трансляций (Access Control - NAT)
- Применение политик безопасности
Подробнее с возможностями Check Point и его настройкой можно познакомиться в бесплатном курсе Погружение в сетевую безопасность.
После развертывания инфраструктуры в каталоге mgmt появится ВМ jump-vm на основе образа Ubuntu с настроенным WireGuard VPN для защищенного подключения. Настройте VPN туннель к ВМ jump-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-адрес ПК.
Для управления и настройки решения Check Point установите и запустите графическое приложение SmartConsole:
-
Подключитесь к серверу управления 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.
-
Получите пароль доступа к FW:
terraform output fw_sic-password
-
В поле One-time password введите пароль, полученный ранее.
-
Нажмите Next и Finish.
Настройте сетевой интерфейс 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... и создайте сети со следующими данными:
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... и создайте хосты со следующими данными:
Name IPv4 address dmz-web-server 10.160.1.100 FW-public-IP 172.16.1.10 -
Выберите More object types → Network Object → 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 | Запрет доступа для остального трафика |
Destination NAT трансляции направляют запросы пользователей на веб-сервер приложения в dmz сегменте.
В заголовках пакетов с запросами от пользователей к опубликованному в DMZ приложению будет происходить трансляция Destination IP в IP адрес веб-сервера и Destination port в TCP порт 8080.
Чтобы настроить таблицы трансляции NAT шлюза FW:
-
Перейдите в подраздел NAT раздела Access Control;
-
В таблице правил в меню выберите Add rule on 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
Чтобы перестать платить за созданные ресурсы выполните команду:
terraform destroyTerraform удалит все ресурсы без возможности восстановления: сети, подсети, виртуальные машины, каталоги и т.д.
Так как созданные ресурсы расположены в каталогах, то в качестве более быстрого способа удаления всех ресурсов можно использовать удаление всех каталогов через консоль Yandex Cloud с дальнейшим удалением файла terraform.tfstate из папки yc-network-segmentation-with-checkpoint на вашем ПК.













