Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Compute Cloud
  • Yandex Container Solution
    • Все руководства
    • Настройка синхронизации часов с помощью NTP
    • Автомасштабирование группы ВМ для обработки сообщений из очереди
    • Обновление группы ВМ под нагрузкой
    • Развертывание Remote Desktop Gateway
    • Начало работы с Packer
    • Передача логов с ВМ в Yandex Cloud Logging
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Миграция в Yandex Cloud с помощью Хайстекс Акура
    • Защита от сбоев с помощью Хайстекс Акура
    • Резервное копирование ВМ с помощью Хайстекс Акура
    • Развертывание отказоустойчивой архитектуры с прерываемыми ВМ
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
    • Создание триггеров, которые вызывают функции для остановки ВМ и отправки уведомлений в Telegram
    • Создание веб-приложения на Python с использованием фреймворка Flask
    • Создание SAP-программы в Yandex Cloud
    • Развертывание сервера Minecraft в Yandex Cloud
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Создание тестовых виртуальных машин через GitLab CI
    • Высокопроизводительные вычисления (HPC) на прерываемых ВМ
    • Настройка SFTP-сервера на Centos 7
    • Развертывание параллельной файловой системы GlusterFS в высокодоступном режиме
    • Развертывание параллельной файловой системы GlusterFS в высокопроизводительном режиме
    • Резервное копирование в Object Storage с помощью Bacula
    • Построение пайплайна CI/CD в GitLab с использованием serverless-продуктов
    • Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Check Point NGFW
    • Сегментация облачной инфраструктуры с помощью решения Check Point Next-Generation Firewall
    • Настройка защищенного туннеля GRE поверх IPsec
    • Создание бастионного хоста
    • Реализация отказоустойчивых сценариев для сетевых виртуальных машин
    • Создание туннеля между двумя подсетями при помощи OpenVPN Access Server
    • Создание внешней таблицы на базе таблицы из бакета Object Storage с помощью конфигурационного файла
    • Настройка сетевой связности между подсетями BareMetal и Virtual Private Cloud
    • Работа со снапшотами в Managed Service for Kubernetes
    • Запуск языковой модели DeepSeek-R1 в кластере GPU
    • Запуск библиотеки vLLM с языковой моделью Gemma 3 на ВМ с GPU
    • Доставка USB-устройств на виртуальную машину или сервер BareMetal
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

В этой статье:

  • Next-Generation Firewall
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Необходимые квоты
  • Подготовьте окружение
  • Настройте WSL
  • Создайте сервисный аккаунт с правами администратора на облако
  • Установите необходимые утилиты
  • Разверните ресурсы
  • Настройте шлюзы межсетевых экранов
  • Подключитесь к сегменту управления через VPN
  • Запустите консоль управления SmartConsole
  • Добавьте шлюзы межсетевых экранов
  • Настройте сетевые интерфейсы шлюза FW-A
  • Настройте сетевые интерфейсы шлюза FW-B
  • Создайте сетевые объекты
  • Определите правила политики безопасности
  • Настройте статическую таблицу трансляции NAT
  • Примените правила политик безопасности
  • Включите работу модуля route-switcher
  • Протестируйте работоспособность и отказоустойчивость решения
  • Проверьте работоспособность системы
  • Проверка отказоустойчивости
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Check Point NGFW

Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Check Point NGFW

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Next-Generation Firewall
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
    • Необходимые квоты
  • Подготовьте окружение
    • Настройте WSL
    • Создайте сервисный аккаунт с правами администратора на облако
    • Установите необходимые утилиты
  • Разверните ресурсы
  • Настройте шлюзы межсетевых экранов
    • Подключитесь к сегменту управления через VPN
    • Запустите консоль управления SmartConsole
    • Добавьте шлюзы межсетевых экранов
    • Настройте сетевые интерфейсы шлюза FW-A
    • Настройте сетевые интерфейсы шлюза FW-B
    • Создайте сетевые объекты
    • Определите правила политики безопасности
    • Настройте статическую таблицу трансляции NAT
    • Примените правила политик безопасности
  • Включите работу модуля route-switcher
  • Протестируйте работоспособность и отказоустойчивость решения
    • Проверьте работоспособность системы
    • Проверка отказоустойчивости
  • Как удалить созданные ресурсы

С помощью руководства вы развернете высокодоступную отказоустойчивую сетевую инфраструктуру с выделенным DMZ сегментом и комплексной защитой на основе Check Point Next-Generation Firewall.

Элементы инфраструктуры размещаются в двух зонах доступности и группируются по назначению в отдельные каталоги. Такое решение позволит публиковать общедоступные веб-ресурсы (например, фронтенд-приложения) в изолированной от внутренней инфраструктуры DMZ зоне, а также обеспечит защищенность и высокую доступность всего периметра.

Решение включает следующие основные сегменты (каталоги):

  • Каталог public содержит Application Load Balancer для организации публичного доступа из сети интернет к опубликованным в DMZ приложениям.
  • Каталог mgmt предназначен для размещения межсетевых экранов NGFW и ресурсов управления облачной инфраструктурой. Включает в себя две ВМ с межсетевыми экранами (fw-a, fw-b), ВМ сервера централизованного управления межсетевыми экранами (mgmt-server) и ВМ доступа к сегменту управления по VPN (jump-vm).
  • Каталог dmz предоставляет возможность публикации приложений с открытым доступом из внешней сети интернет.
  • Каталоги app и database могут быть использованы для размещения бизнес-логики приложений (в руководстве ВМ в них не устанавливаются).

Более подробное описание приведено в репозитории проекта.

Чтобы развернуть защищенную высокодоступную сетевую инфраструктуру с выделением DMZ на основе Check Point Next-Generation Firewall:

  1. Подготовьте облако к работе.
  2. Подготовьте окружение.
  3. Разверните ресурсы.
  4. Настройте шлюзы межсетевых экранов.
  5. Включите работу модуля route-switcher.
  6. Протестируйте работоспособность и отказоустойчивость решения.

Если созданные ресурсы вам больше не нужны, удалите их.

Next-Generation FirewallNext-Generation Firewall

Next-Generation Firewall используется для защиты и сегментации облачной сети с выделением DMZ зоны для размещения публичных приложений. В Yandex Cloud Marketplace доступно несколько вариантов NGFW.

В данном сценарии развернуто решение Check Point CloudGuard IaaS, которое предоставляет следующие возможности:

  • межсетевое экранирование;
  • NAT;
  • предотвращение вторжений;
  • антивирус;
  • защита от ботов;
  • гранулярный контроль трафика на уровне приложений;
  • логирование сессий;
  • централизованное управление с помощью решения Check Point Security Management.

В данном руководстве решение Check Point CloudGuard IaaS настроено с базовыми политиками доступа (Access Control) и NAT трансляций.

Подготовьте облако к работеПодготовьте облако к работе

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки инфраструктуры входит:

  • плата за постоянно работающие ВМ (см. тарифы Yandex Compute Cloud);
  • плата за использование Application Load Balancer (см. тарифы Yandex Application Load Balancer);
  • плата за использование Network Load Balancer (см. тарифы Yandex Network Load Balancer);
  • плата за использование публичных IP-адресов и исходящий трафик (см. тарифы Yandex Virtual Private Cloud);
  • плата за использование функций (см. тарифы Yandex Cloud Functions);
  • плата за использование CheckPoint NGFW.

Необходимые квотыНеобходимые квоты

Важно

В руководстве предполагается развертывание ресурсоемкой инфраструктуры.

Убедитесь, что в облаке достаточно квот и они не заняты ресурсами для других задач.

Количество занимаемых руководством ресурсов
Ресурс Количество
Каталоги 7
Группы виртуальных машин 1
Виртуальные машины 6
vCPU виртуальных машин 18
RAM виртуальных машин 30 ГБ
Диски 6
Объем SSD дисков 360 ГБ
Объем HDD дисков 30 ГБ
Облачные сети 7
Подсети 14
Таблицы маршрутизации 4
Группы безопасности 10
Статические публичные IP-адреса 2
Публичные IP-адреса 2
Статические маршруты 17
Бакеты 1
Cloud функции 1
Триггеры для cloud функций 1
Общий объём RAM всех запущенных функций 128 МБ
Балансировщики NLB 2
Целевые группы для NLB 2
Балансировщики ALB 1
Группы бэкендов для ALB 1
Целевые группы для ALB 1

Подготовьте окружениеПодготовьте окружение

В руководстве используется программное обеспечение для ОС Windows и подсистема Windows Subsystem for Linux.
Инфраструктура разворачивается с помощью Terraform.

Настройте WSLНастройте WSL

  1. Проверьте, установлена ли подсистема WSL на вашем компьютере. Для этого в терминале интерфейса командной строки выполните команду:

    wsl -l
    

    При установленной WSL терминал выведет список доступных дистрибутивов, например:

    Windows Subsystem for Linux Distributions:
    docker-desktop (Default)
    docker-desktop-data
    Ubuntu
    
  2. Если WSL не установлена, установите ее и повторите предыдущий шаг.

  3. Дополнительно можно установить на подсистему WSL привычный вам дистрибутив ОС Linux, например, Ubuntu.

  4. Чтобы сделать установленный дистрибутив системой по умолчанию, выполните команду:

    wsl --setdefault ubuntu
    
  5. Чтобы перевести терминал в режим работы в подсистеме Linux, выполните команду:

    wsl ~
    

Примечание

Все описанные далее действия в терминале выполняются в ОС Linux.

Создайте сервисный аккаунт с правами администратора на облакоСоздайте сервисный аккаунт с правами администратора на облако

Консоль управления
CLI
API
  1. В консоли управления выберите каталог, в котором хотите создать сервисный аккаунт.

  2. В списке сервисов выберите Identity and Access Management.

  3. Нажмите кнопку Создать сервисный аккаунт.

  4. Введите имя сервисного аккаунта, например, sa-terraform.

    Требования к формату имени:

    • длина — от 2 до 63 символов;
    • может содержать строчные буквы латинского алфавита, цифры и дефисы;
    • первый символ — буква, последний — не дефис.

    Имя сервисного аккаунта должно быть уникальным в рамках облака.

  5. Нажмите кнопку Создать.

  6. Назначьте сервисному аккаунту роль администратора:

    1. На стартовой странице консоли управления выберите облако.
    2. Перейдите на вкладку Права доступа.
    3. Нажмите кнопку Настроить доступ.
    4. В открывшемся окне выберите раздел Сервисные аккаунты и выберите сервисный аккаунт sa-terraform.
    5. Нажмите кнопку Добавить роль и выберите роль admin.
    6. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Создайте сервисный аккаунт:

    yc iam service-account create --name sa-terraform
    

    Где name — имя сервисного аккаунта. Требования к имени:

    • длина — от 2 до 63 символов;
    • может содержать строчные буквы латинского алфавита, цифры и дефисы;
    • первый символ — буква, последний — не дефис.

    Результат:

    id: ajehr0to1g8bh0la8c8r
    folder_id: b1gv87ssvu497lpgjh5o
    created_at: "2023-03-04T09:03:11.665153755Z"
    name: sa-terraform
    
  2. Назначьте аккаунту роль администратора:

    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:

  1. Выберите роль, которую хотите назначить сервисному аккаунту. Описание ролей можно найти в документации Yandex Identity and Access Management в справочнике ролей Yandex Cloud.

  2. Узнайте ID каталога с сервисными аккаунтами.

  3. Получите IAM-токен для авторизации в API Yandex Cloud.

  4. Получите список сервисных аккаунтов в каталоге, чтобы узнать их идентификаторы:

    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"
      }
     ]
    }
    
  5. Сформируйте тело запроса, например в файле body.json. В свойстве action укажите ADD, в свойстве roleId — нужную роль, например editor, а в свойстве subject — тип serviceAccount и идентификатор сервисного аккаунта:

    body.json:

    {
      "accessBindingDeltas": [{
        "action": "ADD",
        "accessBinding": {
          "roleId": "editor",
          "subject": {
            "id": "ajebqtreob2d********",
            "type": "serviceAccount"
          }
        }
      }]
    }
    
  6. Назначьте роль сервисному аккаунту. Например, на каталог с идентификатором 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"
    

Установите необходимые утилитыУстановите необходимые утилиты

  1. Установите Git с помощью команды:

    sudo apt install git
    
  2. Установите Terraform:

    1. Перейдите в корневую папку:

      cd ~
      
    2. Создайте папку terraform и перейдите в нее:

      mkdir terraform
      cd terraform
      
    3. Скачайте файл 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
      
    4. Установите утилиту zip и распакуйте zip-архив:

      apt install zip
      unzip terraform_1.3.9_linux_amd64.zip
      
    5. Добавьте путь к папке, в которой находится исполняемый файл, в переменную PATH:

      export PATH=$PATH:~/terraform
      
    6. Убедитесь, что Terraform установлен, выполнив команду:

      terraform -help
      
  3. Создайте конфигурационный файл с указанием источника провайдеров для Terraform:

    1. Создайте файл .terraformrc с помощью встроенного редактора nano:

      cd ~
      nano .terraformrc
      
    2. Добавьте в него следующий блок:

      provider_installation {
        network_mirror {
          url = "https://terraform-mirror.yandexcloud.net/"
          include = ["registry.terraform.io/*/*"]
        }
        direct {
          exclude = ["registry.terraform.io/*/*"]
        }
      }
      

      Подробнее о настройках зеркал см. в документации Terraform.

Разверните ресурсыРазверните ресурсы

  1. Склонируйте репозиторий yandex-cloud-examples/yc-dmz-with-high-available-ngfw из GitHub и перейдите в папку сценария yc-dmz-with-high-available-ngfw:

    git clone https://github.com/yandex-cloud-examples/yc-dmz-with-high-available-ngfw.git
    cd yc-dmz-with-high-available-ngfw
    
  2. Настройте профиль CLI для выполнения операций от имени сервисного аккаунта:

    CLI

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

    По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

    1. Создайте авторизованный ключ для сервисного аккаунта и запишите его файл:

      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
      
    2. Создайте профиль CLI для выполнения операций от имени сервисного аккаунта:

      yc config profile create sa-terraform
      

      Результат:

      Profile 'sa-terraform' created and activated
      
    3. Задайте конфигурацию профиля:

      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 — идентификатор каталога.
    4. Добавьте аутентификационные данные в переменные окружения:

      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)
      
  3. Получите IP-адрес вашего ПК:

    curl 2ip.ru
    

    Результат:

    192.2**.**.**
    
  4. Откройте файл terraform.tfvars с помощью редактора nano и отредактируйте:

    1. Строку, содержащую идентификатор облака:

      cloud_id = "<идентификатор_облака>"
      
    2. Строку, содержащую список разрешенных публичных IP-адресов для доступа к ВМ jump-vm:

      trusted_ip_for_access_jump-vm = ["<внешний_IP-адрес_ПК>/32"]
      
  5. Разверните ресурсы в облаке с помощью Terraform:

    1. Выполните инициализацию Terraform:

      terraform init
      
    2. Проверьте конфигурацию Terraform файлов:

      terraform validate
      
    3. Проверьте список создаваемых облачных ресурсов:

      terraform plan
      
    4. Создайте ресурсы:

      terraform apply
      

Настройте шлюзы межсетевых экрановНастройте шлюзы межсетевых экранов

В руководстве в качестве примера приводятся шаги настройки шлюзов межсетевых экранов FW-A и FW-B с базовыми политиками доступа (Access Control) и NAT, необходимыми для проверки работоспособности и тестирования отказоустойчивости, но не являющимися достаточными для развертывания инфраструктуры в продуктивной среде.

Подключитесь к сегменту управления через VPNПодключитесь к сегменту управления через VPN

После развертывания инфраструктуры в каталоге mgmt появится ВМ jump-vm на основе образа Ubuntu с настроенным WireGuard VPN для защищенного подключения. На вашем ПК настройте VPN туннель к ВМ jump-vm для доступа к подсетям сегментов mgmt, dmz, app, database.

Чтобы настроить VPN туннель:

  1. Получите имя пользователя в подсистеме Linux:

    whoami
    
  2. Установите на ваш ПК приложение WireGuard.

  3. Откройте приложение WireGuard и нажмите кнопку Add Tunnel.

  4. В появившемся диалоге выберите файл jump-vm-wg.conf в папке yc-dmz-with-high-available-ngfw.

    Чтобы найти папку, созданную в подсистеме Linux, например, Ubuntu, введите в адресной строке диалога путь к файлу:

    \\wsl$\Ubuntu\home\<имя_пользователя_Ubuntu>\yc-dmz-with-high-available-ngfw
    

    Где <имя_пользователя_Ubuntu> — полученное ранее имя пользователя текущего дистрибутива ОС Linux.

  5. Нажмите кнопку Activate, чтобы активировать туннель.

  6. Проверьте сетевую связность с сервером управления через VPN туннель WireGuard, выполнив в терминале команду:

    ping 192.168.1.100
    

    Важно

    Если пакеты не достигают сервера управления, убедитесь, что в группе безопасности mgmt-jump-vm-sg в правилах входящего трафика указан верный внешний IP-адрес ПК.

Запустите консоль управления SmartConsoleЗапустите консоль управления SmartConsole

Для управления и настройки решения Check Point установите и запустите графическое приложение SmartConsole:

  1. Подключитесь к серверу управления NGFW. Для этого в браузере перейдите по адресу https://192.168.1.100.

  2. Авторизуйтесь, используя логин admin и пароль admin.

  3. В открывшемся интерфейсе Gaia Portal скачайте графическое приложение SmartConsole. Для этого нажмите Manage Software Blades using SmartConsole. Download Now!.

  4. Установите приложение SmartConsole на ваш ПК.

  5. Получите пароль доступа к SmartConsole. Для этого в терминале выполните команду:

    terraform output fw_smartconsole_mgmt-server_password
    
  6. Откройте SmartConsole и авторизуйтесь, указав логин admin, IP-адрес сервера управления 192.168.1.100 и полученный на предыдущем шаге пароль доступа к SmartConsole.

Добавьте шлюзы межсетевых экрановДобавьте шлюзы межсетевых экранов

В режиме Wizard добавьте в сервер управления шлюз межсетевого экрана FW-A:

  1. Слева сверху в выпадающем списке Objects выберите More object types → Network Object → Gateways and Servers → New Gateway....

  2. Нажмите Wizard Mode.

  3. В открывшемся диалоге введите:

    • Gateway name: FW-A
    • Gateway platform: CloudGuard IaaS
    • IPv4: 192.168.1.10
  4. Нажмите Next.

  5. Получите пароль доступа к межсетевым экранам. Для этого в терминале выполните команду:

    terraform output fw_sic-password
    
  6. В поле One-time password введите полученный на предыдущем шаге пароль.

  7. Нажмите Next и Finish.

Аналогичным образом добавьте в сервер управления шлюз межсетевого экрана FW-B со следующими значениями:

  • Gateway name: FW-B
  • IPv4: 192.168.2.10

Настройте сетевые интерфейсы шлюза FW-AНастройте сетевые интерфейсы шлюза FW-A

Настройте сетевой интерфейс eth0 шлюза FW-A:

  1. На вкладке Gateways & Servers откройте диалог настроек шлюза FW-A.
  2. На вкладке Network Management в таблице Topology выберите интерфейс eth0 и нажмите Modify....
  3. В разделе Leads To выберите Override.
  4. Напротив опции Specific наведите курсор на имя интерфейса FW-A-eth0 и в появившемся окне нажмите значок редактирования.
  5. В открывшемся диалоге переименуйте FW-A-eth0 в mgmt.
  6. В разделе Security Zone активируйте Specify Security Zone и выберите InternalZone.

Аналогичным образом настройте сетевые интерфейсы eth1, eth2, eth3 и eth4:

  1. Для интерфейса eth1 в разделе Security Zone укажите зону ExternalZone. Переименовывать интерфейс не нужно.

  2. Интерфейс eth2 переименуйте в dmz, активируйте Interface leads to DMZ и укажите зону DMZZone.

    Чтобы скрыть адреса ВМ, которые находятся в DMZ-сегменте и выходят в интернет, настройте Automatic Hide NAT. Для этого:

    1. В диалоге редактирования интерфейса dmz нажмите на сеть Net_10.160.1.0 и перейдите вкладку NAT.
    2. Активируйте опцию Add automatic address translation rules, в выпадающем списке выберите Hide и опцию Hide behind gateway.
    3. Повторите те же действия для сети Net_10.160.2.0.
  3. Интерфейс eth3 переименуйте в app и укажите зону InternalZone.

  4. Интерфейс eth4 переименуйте в database и укажите зону InternalZone.

Настройте сетевые интерфейсы шлюза FW-BНастройте сетевые интерфейсы шлюза FW-B

Настройте сетевые интерфейсы шлюза FW-B аналогично сетевым интерфейсам шлюза FW-A. При названии интерфейсов выбирайте существующие имена из списка.

Чтобы выбрать имя интерфейса из уже заданных:

  1. В разделе Leads To выберите Override.
  2. Напротив опции Specific в выпадающем списке найдите нужное имя.

Важно

Повторное переименование интерфейсов приведет к ошибке реплицирования имен сетевых объектов во время установки политик безопасности.

Создайте сетевые объектыСоздайте сетевые объекты

  1. Слева сверху в выпадающем списке Objects выберите New Network... и создайте сети public - a и public - b со следующими параметрами:

    Name Network address Net mask
    public - a 172.16.1.0 255.255.255.0
    public - b 172.16.2.0 255.255.255.0
  2. Выберите New Network Group... и создайте группу public, добавив в нее сети public - a и public - b.

  3. Выберите New Host... и создайте хосты со следующими параметрами:

    Name IPv4 address
    dmz-web-server 10.160.1.100
    FW-a-dmz-IP 10.160.1.10
    FW-a-public-IP 172.16.1.10
    FW-b-dmz-IP 10.160.2.10
    FW-b-public-IP 172.16.2.10
  4. Выберите More object types → Network Object → Service → New TCP... и создайте TCP-сервис для развернутого приложения в DMZ-сегменте, указав имя TCP_8080 и порт 8080.

Определите правила политики безопасностиОпределите правила политики безопасности

Чтобы добавить правило безопасности:

  1. На вкладке Security policies в разделе Access Control выберите подраздел Policy.
  2. В таблице правил нажмите правую кнопку мыши и в открывшемся контекстном меню напротив опции New Rule выберите Above или Below.
  3. В новой строке:
    • в колонке Name укажите Web-server port forwarding on FW-a;
    • в колонке Source нажмите иконку + и выберите объект public;
    • в колонке Destination выберите объект FW-a-public-IP;
    • в колонке Services & Applications выберите объект TCP_8080;
    • в колонке Action выберите опцию Accept;
    • в колонке Track выберите опцию Log;
    • в колонке Install On выберите объект FW-a.

Аналогичным образом внесите остальные правила из приведенной ниже таблицы базовых правил для проверки работы политик межсетевых экранов, прохождения проверок NLB healtcheck, публикации тестового приложения из DMZ-сегмента и тестирования отказоустойчивости.

No Name Source Destination VPN Services & Applications Action Track Install On
1 Web-server port forwarding on FW-a public FW-a-public-IP Any TCP_8080 Accept Log FW-a
2 Web-server port forwarding on FW-b public FW-b-public-IP Any TCP_8080 Accept Log FW-b
3 FW management & NLB healthcheck mgmt FW-a, FW-b, mgmt-server Any https, ssh Accept Log Policy Targets (All gateways)
4 Stealth Any FW-a, FW-b, mgmt-server Any Any Drop Log Policy Targets (All gateways)
5 mgmt to DMZ mgmt dmz Any Any Accept Log Policy Targets (All gateways)
6 mgmt to app mgmt app Any Any Accept Log Policy Targets (All gateways)
7 mgmt to database mgmt database Any Any Accept Log Policy Targets (All gateways)
8 ping from dmz to internet dmz ExternalZone Any icmp-requests (Group) Accept Log Policy Targets (All gateways)
9 Cleanup rule Any Any Any Any Drop Log Policy Targets (All gateways)

Настройте статическую таблицу трансляции NATНастройте статическую таблицу трансляции NAT

Source NAT трансляции обеспечивают прохождение ответа от приложения через тот же межсетевой экран, через который поступил запрос от пользователя. Destination NAT трансляции направляют запросы пользователей на сетевой балансировщик трафика, за которым находится группа веб-серверов приложения.

Заголовки пакетов, приходящих от Application Load Balancer с запросами от пользователей к опубликованному в DMZ приложению, будут транслироваться в Source IP DMZ-интерфейсов межсетевых экранов и в Destination IP балансировщика трафика для веб-серверов.

Чтобы настроить таблицы трансляции NAT шлюза FW-A:

  1. Перейдите в подраздел NAT раздела Access Control.
  2. В таблице правил нажмите правую кнопку мыши и в открывшемся контекстном меню напротив опции New Rule выберите Above или Below.
  3. В новой строке:
    • в колонке Original Source нажмите иконку + и выберите объект public;
    • в колонке Original Destination выберите объект FW-a-public-IP ;
    • в колонке Original Services выберите объект TCP_8080;
    • в колонке Translated Source выберите объект FW-a-dmz-IP;
    • в колонке Translated Destination выберите объект dmz-web-server;
    • в колонке Install On выберите объект FW-a.
  4. Обязательно поменяйте метод NAT для FW-a-dmz-IP. Для этого в таблице правой кнопкой мыши нажмите на объект FW-a-dmz-IP и в контекстном меню выберите NAT Method > Hide.

Аналогичным образом настройте статическую таблицу трансляции NAT для шлюза FW-B в соответствии с таблицей:

No Original Source Original Destination Original Services Translated Source Translated Destination Translated Services Install On
1 public FW-a-public-IP TCP_8080 FW-a-dmz-IP (Hide) dmz-web-server Original FW-a
2 public FW-b-public-IP TCP_8080 FW-b-dmz-IP (Hide) dmz-web-server Original FW-b

Примените правила политик безопасностиПримените правила политик безопасности

  1. Сверху слева нажмите Install Policy.
  2. В открывшемся диалоге нажмите Push & Install.
  3. В следующем диалоге нажмите Install и дождитесь завершения процесса.

Включите работу модуля route-switcherВключите работу модуля route-switcher

После завершения настройки NGFW убедитесь, что проверка состояния FW-A и FW-B выдает значение Healthy. Для этого в консоли управления Yandex Cloud в каталоге mgmt выберите сервис Network Load Balancer и перейдите на страницу сетевого балансировщика route-switcher-lb-.... Раскройте целевую группу и убедитесь, что состояния целевых ресурсов — Healthy. Если их состояние — Unhealthy, то необходимо убедиться, что FW-A и FW-B запущены, функционируют и настроены.

Когда статус FW-A и FW-B изменится на Healthy, в файле route-switcher.tf измените значение параметра start_module модуля route-switcher на true. Чтобы включить работу модуля, выполните команды:

terraform plan
terraform apply

В течение 5 минут модуль route-switcher начнет работу по обеспечению отказоустойчивости исходящего трафика в сегментах.

Протестируйте работоспособность и отказоустойчивость решенияПротестируйте работоспособность и отказоустойчивость решения

Проверьте работоспособность системыПроверьте работоспособность системы

  1. Чтобы узнать публичный IP-адрес балансировщика, в терминале выполните команду:

    terraform output fw-alb_public_ip_address
    
  2. Убедитесь, что сетевая инфраструктура доступна извне. Для этого в браузере перейдите по адресу:

    http://<публичный_IP-адрес_балансировщика_ALB>
    

    Если система доступна извне, в браузере откроется страница Welcome to nginx!.

  3. Убедитесь, что разрешающие правила политики безопасности межсетевых экранов активны. Для этого на вашем ПК перейдите в папку yc-dmz-with-high-available-ngfw и подключитесь по SSH к одной из ВМ в DMZ-сегменте:

    cd ~/yc-dmz-with-high-available-ngfw
    ssh -i pt_key.pem admin@<внутренний_IP-адрес_ВМ_в_DMZ_сегменте>
    
  4. Чтобы проверить наличие доступа из ВМ в DMZ сегменте к публичному ресурсу в сети интернет, выполните команду:

    ping ya.ru
    

    Команда должна выполниться в соответствии с разрешающим правилом ping from dmz to internet.

  5. Убедитесь, что запрещающие правила политики безопасности выполняются.

    Чтобы проверить отсутствие доступа к ВМ Jump ВМ в сегменте mgmt из сегмента dmz, выполните команду:

    ping 192.168.1.101
    

    Выполнение команды должно завершиться ошибкой в соответствии с запрещающим правилом Cleanup rule.

Проверка отказоустойчивостиПроверка отказоустойчивости

  1. На вашем ПК установите утилиту httping для выполнения периодических http-запросов:

    sudo apt-get install httping
    
  2. Чтобы узнать публичный IP-адрес балансировщика, в терминале выполните команду:

    terraform output fw-alb_public_ip_address
    
  3. Запустите входящий трафик к опубликованному в DMZ-сегменте приложению с помощью запроса к публичному IP-адресу балансировщика ALB:

    httping http://<публичный_IP-адрес_балансировщика_ALB>
    
  4. Откройте еще одно окно терминала и подключитесь по SSH к одной из ВМ в DMZ-сегменте:

    ssh -i pt_key.pem admin@<внутренний_IP-адрес_ВМ_в_DMZ_сегменте>
    
  5. Установите пароль для пользователя admin:

    sudo passwd admin
    
  6. В консоли управления Yandex Cloud измените параметры этой ВМ:

    1. В списке сервисов выберите Compute Cloud.
    2. На панели слева выберите Виртуальные машины.
    3. В строке с нужной ВМ нажмите и выберите Редактировать.
    4. В открывшемся окне в блоке Дополнительно включите опцию Доступ к серийной консоли.
    5. Нажмите кнопку Сохранить изменения.
  7. Подключитесь к серийной консоли ВМ, введите логин admin и созданный ранее пароль.

  8. С помощью команды ping запустите исходящий трафик из ВМ в DMZ-сегменте к ресурсу в сети интернет:

    ping ya.ru
    
  9. В консоли управления Yandex Cloud в каталоге mgmt остановите ВМ fw-a, эмулируя отказ основного межсетевого экрана.

  10. Наблюдайте за пропаданием пакетов, отправляемых httping и ping. После отказа FW-A может наблюдаться пропадание трафика на протяжении приблизительно 1 мин, после чего трафик должен восстановиться.

  11. Убедитесь, что в таблице маршрутизации dmz-rt в каталоге dmz для next hop используется адрес FW-B.

  12. В консоли управления Yandex Cloud запустите ВМ fw-a, эмулируя восстановление основного межсетевого экрана.

  13. Наблюдайте за пропаданием пакетов, отправляемых httping и ping. После восстановления FW-A может наблюдаться пропадание трафика на протяжении приблизительно 1 мин, после чего трафик должен восстановиться.

  14. Убедитесь, что в таблице маршрутизации dmz-rt в каталоге dmz для next hop используется адрес FW-A.

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы выполните команду:

terraform destroy

Terraform удалит все ресурсы без возможности восстановления: сети, подсети, виртуальные машины, балансировщики, каталоги и т.д.

Так как созданные ресурсы расположены в каталогах, то в качестве более быстрого способа удаления всех ресурсов можно использовать удаление всех каталогов через консоль Yandex Cloud с последующим удалением файла terraform.tfstate из папки yc-dmz-with-high-available-ngfw на вашем ПК.

Была ли статья полезна?

Предыдущая
Построение пайплайна CI/CD в GitLab с использованием serverless-продуктов
Следующая
Сегментация облачной инфраструктуры с помощью решения Check Point Next-Generation Firewall
Проект Яндекса
© 2025 ООО «Яндекс.Облако»