Сценарий разворачивает в Yandex Cloud облачную инфраструктуру для решения задач:
Каждый сегмент сети (далее сегмент) содержит ресурсы одного назначения, обособленные от других ресурсов. Например, 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, предоставляющее следующие возможности:
Решение Check Point CloudGuard IaaS доступно в Yandex Cloud Marketplace в вариантах Pay as you go и BYOL. В этом примере используется BYOL вариант с Trial периодом 15 дней:
Для использования в продуктивной среде рекомендуется рассматривать варианты:
Для контроля трафика между ресурсами внутри сегмента используются группы безопасности.
Решение создает в облаке ресурсы для 3 сегментов
Сегмент | Описание | Ресурсы | Каталоги и сети | Группы безопасности |
---|---|---|---|---|
public | Размещение ресурсов с доступом из интернет | + | + | |
mgmt | Управление облачной инфраструктурой | Check Point NGFW, сервер управления Check Point, Jump ВМ с WireGuard для подключения из интернет | + | + |
dmz | Размещение Frontend приложений, доступных из интернет | Виртуальная машина с веб-сервером Nginx для примера | + | + |
Важно
Если в будущем ожидается увеличение количества сегментов, то рекомендуется развернуть их заранее, т.к. ВМ с образом NGFW в облаке не поддерживает добавление новых сетевых интерфейсов после её создания. Дополнительные сегменты можно указать в файле
terraform.tfvars
.
Чтобы развернуть защищенную сетевую инфраструктуру на основе Check Point Next-Generation Firewall:
Если созданные ресурсы вам больше не нужны, удалите их.
Важно
Без шагов настройки NGFW проверить работоспособность решения не получится.
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
ACTIVE
или TRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.В стоимость поддержки инфраструктуры входит:
Убедитесь, что в облаке достаточно квот и они не заняты ресурсами для других задач.
В руководстве используется программное обеспечение для ОС Windows и подсистема Windows Subsystem for Linux. Инфраструктура разворачивается с помощью Terraform.
Важно
Все описанные далее действия в терминале выполняются в ОС 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:
Выполните инициализацию Terraform:
terraform init
Проверьте конфигурацию Terraform файлов:
terraform validate
Проверьте список создаваемых облачных ресурсов:
terraform plan
Создайте ресурсы:
terraform apply
После завершения процесса terraform apply
в командной строке будет выведен список информации о развернутых ресурсах. В дальнейшем его можно будет посмотреть с помощью команды terraform output
:
Вы можете настроить FW под ваши задачи в соответствие с корпоративной политикой безопасности. Для управления и настройки решения Check Point используется графическое приложение SmartConsole, доступное для операционной системы Windows.
В качестве примера приводятся шаги настройки FW с базовыми политиками доступа (Access Control) и NAT, необходимыми для проверки работоспособности, но не являющимися достаточными для развертывания инфраструктуры в продуктивной среде.
Шаги настройки NGFW в этом сценарии состоят из следующей последовательности действий, выполняемых в SmartConsole:
Подробнее с возможностями 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.
В открывшемся диалоге введите:
FW
CloudGuard IaaS
192.168.1.10
Нажмите Next.
Получите пароль доступа к FW:
terraform output fw_sic-password
В поле One-time password введите пароль, полученный ранее.
Нажмите Next и Finish.
Настройте сетевой интерфейс eth0
:
eth0
, нажмите Edit и в появившемся окне нажмите Modify....Аналогично настройте сетевые интерфейсы 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.Слева сверху в выпадающем списке 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
.
Чтобы добавить правило безопасности:
Web-server port forwarding on FW
;FW-public-IP
;http
;Accept
;Log
.Аналогично внесите остальные правила из ниже приведенной таблицы базовых правил для проверки работы политик 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) |
Destination NAT трансляции направляют запросы пользователей на веб-сервер приложения в dmz сегменте.
В заголовках пакетов с запросами от пользователей к опубликованному в DMZ приложению будет происходить трансляция Destination IP в IP адрес веб-сервера и Destination port в TCP порт 8080.
Чтобы настроить таблицы трансляции NAT шлюза FW:
В новой строке:
FW-public-IP
;http
;dmz-web-server
;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) |
Чтобы узнать публичный 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
найдите записи в моменты проведение тестов и проверьте, какие правила политики безопасности и действия были применены к трафику.
check-init...yaml
:
pt_key.pem
в надежное место либо пересоздайте его отдельно от Terraform.0.0.0.0/0
. Чтобы перестать платить за созданные ресурсы выполните команду:
terraform destroy
Terraform удалит все ресурсы без возможности восстановления: сети, подсети, виртуальные машины, каталоги и т.д.
Так как созданные ресурсы расположены в каталогах, то в качестве более быстрого способа удаления всех ресурсов можно использовать удаление всех каталогов через консоль Yandex Cloud с дальнейшим удалением файла terraform.tfstate
из папки yc-network-segmentation-with-checkpoint
на вашем ПК.