Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Настройка сетевого взаимодействия ресурсов из разных каталогов
    • Создание бастионного хоста
    • Создание туннеля между двумя подсетями при помощи OpenVPN Access Server
    • Защищенный доступ пользователей к облачным ресурсам на основе WireGuard VPN
    • Создание и настройка шлюза UserGate в режиме межсетевого экрана
    • Реализация отказоустойчивых сценариев для сетевых ВМ
    • Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Check Point NGFW
    • Сегментация облачной инфраструктуры с помощью решения Check Point Next-Generation Firewall
    • Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе UserGate NGFW
    • Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Смарт-Софт NGFW
    • Организация доступа через Cloud Interconnect к облачным сетям, размещенным за NGFW
    • Настройка защищенного туннеля GRE поверх IPsec
    • Настройка сети для Yandex Data Processing
    • Переключение сетевого соединения при пересоздании кластера Yandex Data Processing
    • Подключение к Object Storage из VPC
    • Подключение к Container Registry из VPC
    • Создание прямого транкового подключения и приватного соединения в нем
    • Создание прямого транкового подключения и публичного соединения в нем
    • Создание нового партнерского транкового подключения и приватного соединения в нем
    • Создание нового партнерского транкового подключения и публичного соединения в нем
    • Добавление приватного соединения в прямое или партнерское транковое подключение
    • Добавление публичного соединения в прямое или партнерское транковое подключение
    • Изменить емкость транкового подключения
    • Удалить приватное соединение
    • Удалить публичное соединение
    • Удалить транковое подключение
    • Настройка VRRP для кластера серверов BareMetal
    • Настройка сетевой связности в подсети BareMetal
    • Настройка сетевой связности между подсетями BareMetal и Virtual Private Cloud
    • Доставка USB-устройств на сервер BareMetal или виртуальную машину
    • Настройка межсетевого экрана OPNsense в режиме кластера высокой доступности на серверах BareMetal
    • Развертывание веб-приложения на серверах BareMetal с L7-балансировщиком и защитой Smart Web Security

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

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Необходимые квоты
  • Подготовьте окружение
  • Создайте сервисный аккаунт с правами администратора на облако
  • Установите необходимые утилиты
  • Разверните ресурсы
  • Настройте NGFW
  • Подключитесь к сегменту управления через VPN
  • Настройте межсетевой экран FW-A
  • Настройте межсетевой экран FW-B
  • Включите работу модуля route-switcher
  • Протестируйте работоспособность и отказоустойчивость решения
  • Проверьте работоспособность системы
  • Проверка отказоустойчивости
  • Требования к развертыванию в продуктивной среде
  • Как удалить созданные ресурсы
  1. Архитектура, сетевое взаимодействие
  2. Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Смарт-Софт NGFW

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

Статья создана
Yandex Cloud
Улучшена
Обновлена 3 июля 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
    • Необходимые квоты
  • Подготовьте окружение
    • Создайте сервисный аккаунт с правами администратора на облако
    • Установите необходимые утилиты
  • Разверните ресурсы
  • Настройте NGFW
    • Подключитесь к сегменту управления через VPN
    • Настройте межсетевой экран FW-A
    • Настройте межсетевой экран FW-B
  • Включите работу модуля route-switcher
  • Протестируйте работоспособность и отказоустойчивость решения
    • Проверьте работоспособность системы
    • Проверка отказоустойчивости
  • Требования к развертыванию в продуктивной среде
  • Как удалить созданные ресурсы

С помощью руководства вы развернете защищенную сетевую инфраструктуру на основе Смарт-Софт Traffic Inspector Next Generation (TING). Инфраструктура состоит из сегментов, каждый из которых содержит ресурсы одного назначения, обособленные от других ресурсов. Например, DMZ сегмент предназначен для размещения общедоступных приложений, а сегмент mgmt содержит ресурсы для управления инфраструктурой. В облаке каждому сегменту соответствует свой каталог и своя облачная сеть VPC. Связь между сегментами происходит через виртуальную машину Next-Generation Firewall (NGFW), обеспечивающую комплексную защиту сегментов и контроль трафика между сегментами.

Схема решения представлена ниже.

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

  • Каталог public предназначен для размещения ресурсов с доступом из сети интернет.
  • Каталог mgmt предназначен для управления облачной инфраструктурой и размещения служебных ресурсов. Включает в себя две ВМ для защиты инфраструктуры и сегментации сети на зоны безопасности (fw-a и fw-b) и ВМ c настроенным WireGuard VPN для защищенного доступа к сегменту управления (jump-vm).
  • Каталог dmz предоставляет возможность публикации приложений с открытым доступом из внешней сети интернет.

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

Чтобы развернуть защищенную высокодоступную сетевую инфраструктуру с выделением DMZ на основе Смарт-Софт TING:

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

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

Next-Generation FirewallNext-Generation Firewall

NGFW используется для защиты и сегментации облачной сети с выделением DMZ-зоны для размещения публичных приложений.

В Yandex Cloud Marketplace доступно несколько вариантов NGFW. В данном сценарии используется решение Смарт-Софт Traffic Inspector Next Generation (TING), предоставляющее следующие возможности:

  • межсетевой экран следующего поколения: защищает виртуальную сеть от несанкционированного доступа извне, обеспечивает NAT, проброс портов, перехват пакетов;
  • система обнаружения и предотвращения вторжений: IDS/IPS распознает источники атак и атакуемые устройства по определенным сигнатурам сетевого трафика и эффективно «очищает» его;
  • TCP/UDP-прокси-сервер общего назначения: прокси-сервер на базе Nginx обеспечивает балансировку нагрузки, переопределение заголовков веб-сервера, обработку TCP- и UDP-трафика;
  • продукт входит в реестр российского ПО и сертифицирован ФСТЭК России на соответствие требованиям к межсетевым экранам типа «Б» 4-го класса защиты, системам обнаружения вторжений уровня сети 4-го класса защиты, требованиям по безопасности информации — по 4-му уровню доверия.

Смарт-Софт TING в данном руководстве настроен с базовыми правилами межсетевого экранирования и NAT-трансляций.

Подробнее познакомиться с возможностями Смарт-Софт TING можно в документации.

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

Зарегистрируйтесь в 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);
  • плата за использование Смарт-Софт TING.

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

Важно

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

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

Количество занимаемых руководством ресурсов
Ресурс Количество
Каталоги 3
Группы виртуальных машин 1
Виртуальные машины 5
vCPU виртуальных машин 14
RAM виртуальных машин 22 ГБ
Диски 5
Объем SSD-дисков 200 ГБ
Объем HDD-дисков 30 ГБ
Облачные сети 3
Подсети 6
Таблицы маршрутизации 2
Группы безопасности 6
Статические публичные IP-адреса 4
Публичные IP-адреса 4
Статические маршруты 5
Бакеты 1
Функции Cloud Functions 1
Триггеры 1
Общий объем RAM всех запущенных функций 128 МБ
Балансировщики Network Load Balancer 2
Целевые группы для Network Load Balancer 2
Балансировщики Application Load Balancer 1
Группы бэкендов для Application Load Balancer 1
Целевые группы для Application Load Balancer 1

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

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

Консоль управления
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: ajehr0to1g8b********
    folder_id: b1gv87ssvu49********
    created_at: "2024-01-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 и дистрибутив для вашей платформы. В данном руководстве используется дистрибутив Terraform версии 1.12.1 для платформы Linux. Скачайте файл:

      curl \
        --location \
        --remote-name \
        https://hashicorp-releases.yandexcloud.net/terraform/1.12.1/terraform_1.12.1_linux_arm64.zip
      
    4. Установите утилиту zip и распакуйте zip-архив:

      apt install zip
      unzip terraform_1.12.1_linux_arm64.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. Клонируйте репозиторий из GitHub и перейдите в папку сценария yc-dmz-with-high-available-ting-ngfw:

    git clone https://github.com/yandex-cloud-examples/yc-dmz-with-high-available-ting-ngfw.git
    cd yc-dmz-with-high-available-ting-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)
      
  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"]
      
    Описание переменных в terraform.tfvars
    Название
    параметра
    Нужно
    изменение
    Описание Тип Пример
    cloud_id да Идентификатор вашего облака в Yandex Cloud string b1g8dn6s3v2e********
    az_name_list - Список из двух зон доступности Yandex Cloud для размещения ресурсов list(string) ["ru-central1-a", "ru-central1-b"]
    security_segment_names - Список названий сегментов. Первый сегмент для размещения ресурсов управления, второй — с публичным доступом в интернет, третий — для DMZ. Если требуются дополнительные сегменты, то нужно добавлять их в конец списка. При добавлении сегмента обязательно добавьте префиксы для подсетей в списки zone1_subnet_prefix_list и zone2_subnet_prefix_list. list(string) ["mgmt", "public", "dmz"]
    zone1_subnet_prefix_list - Список сетевых префиксов в первой зоне доступности для подсетей, соответствующих списку названий сегментов security_segment_names. По одному префиксу для сегмента. list(string) ["192.168.1.0/24", "172.16.1.0/24", "10.160.1.0/24"]
    zone2_subnet_prefix_list - Список сетевых префиксов во второй зоне доступности для подсетей, соответствующих списку названий сегментов security_segment_names. По одному префиксу для сегмента. list(string) ["192.168.2.0/24", "172.16.2.0/24", "10.160.2.0/24"]
    public_app_port - TCP-порт опубликованного в DMZ приложения для подключения из сети интернет number 80
    internal_app_port - Внутренний TCP-порт опубликованного в DMZ приложения, на который NGFW будет направлять трафик. Может отличаться от public_app_port или совпадать с ним. number 8080
    trusted_ip_for_access_jump-vm да Список публичных IP-адресов и подсетей, с которых разрешено подключение к Jump ВМ. Используется во входящем правиле группы безопасности для Jump ВМ. list(string) ["A.A.A.A/32", "B.B.B.0/24"]
    vm_admin_username - Имя пользователя для подключения к Jump ВМ по SSH string vm-admin
    fw_admin_username - Имя пользователя для подключения к FW по HTTPS и SSH string admin
    wg_port - UDP-порт для входящих соединений в настройках WireGuard на Jump ВМ number 51820
    wg_client_dns - Список адресов DNS-серверов в облачной сети управления, которые будет использовать рабочая станция администратора после поднятия туннеля WireGuard к Jump ВМ string 192.168.1.2, 192.168.2.2
    1. Разверните ресурсы в облаке с помощью Terraform:

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

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

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

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

      terraform apply
      
  5. После завершения процесса terraform apply в командной строке будет выведен список информации о развернутых ресурсах. В дальнейшем его можно будет посмотреть с помощью команды terraform output:

    Посмотреть информацию о развернутых ресурсах
    Название Описание Пример значения
    dmz-web-server-nlb_ip_address IP-адрес балансировщика трафика в сегменте dmz, за которым находится целевая группа с веб-серверами для тестирования публикации приложения из DMZ. Используется для настройки Destination NAT в FW. "10.160.1.100"
    fw-a_admin_password Пароль по умолчанию для доступа к FW-A "fv4a3n5eqf2dbddg4t3h"
    fw-a_ip_address IP-адрес в сети управления для FW-A "192.168.1.10"
    fw-alb_public_ip_address Публичный IP-адрес балансировщика ALB. Используется для обращения к опубликованному в DMZ приложению из сети интернет. "C.C.C.C"
    fw-b_admin_password Пароль по умолчанию для доступа к FW-B "epdn4qrm1imbakudbu5c"
    fw-b_ip_address IP-адрес в сети управления для FW-B "192.168.2.10"
    jump-vm_path_for_WireGuard_client_config Файл конфигурации для защищенного VPN-подключения с помощью клиента WireGuard к Jump ВМ "./jump-vm-wg.conf"
    jump-vm_public_ip_address_jump-vm Публичный IP-адрес Jump ВМ "D.D.D.D"
    path_for_private_ssh_key Файл с закрытым ключом для подключения по протоколу SSH к ВМ (jump-vm, fw-a, fw-b, веб-серверам в сегменте dmz) "./pt_key.pem"

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

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

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

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

Вы также можете подключиться к Jump ВМ по SSH, используя SSH-ключ из вывода terraform output и логин из значения переменной vm_admin_username.

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

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

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

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

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

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

    ping 192.168.1.101
    

    Важно

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

Настройте межсетевой экран FW-AНастройте межсетевой экран FW-A

Подключитесь к веб-интерфейсу управления FW-A по адресу https://192.168.1.10. Учетная запись администратора: логин из значения переменной fw_admin_username, пароль из вывода terraform output fw-a_admin_password (без кавычек).

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

  1. В левом меню в секции Сводка выберите Пароль. Укажите старый пароль из вывода terraform output fw-a_admin_password и задайте новый пароль.

  2. В левом меню в секции Система выберите Настройки -> Общие. В поле Имя хоста укажите fw-a. В поле Часовой пояс выберите Ваш часовой пояс. В разделе DNS-серверы укажите IP-адрес 192.168.1.2 облачного DNS-сервера в сегменте mgmt. Нажмите Сохранить.

  3. В левом меню в секции Службы выберите Сетевое время -> Общие. В разделе Серверы времени укажите адреса NTP-серверов (см. список рекомендуемых NTP-серверов). Активируйте чекбокс напротив предпочтительного сервера в столбце Предпочитать. Нажмите Сохранить.

  4. В левом меню в секции Интерфейсы выберите [WAN]. В поле Описание укажите mgmt. Нажмите Сохранить.

  5. В левом меню в секции Система выберите Маршруты -> Конфигурация. Нажмите кнопку с символом + для добавления маршрута. В поле Адрес сети укажите 192.168.2.0/24. В поле Шлюз выберите MGMT_DHCP - 192.168.1.1. В поле Описание укажите route to mgmt-zone2. Нажмите Сохранить. Нажмите Применить.

  6. В левом меню в секции Интерфейсы выберите Назначения портов. В поле Новый интерфейс выберите порт vtnet1 и в поле Описание укажите public. Нажмите кнопку с символом +. В поле Новый интерфейс выберите порт vtnet2 и в поле Описание укажите dmz. Нажмите кнопку с символом +. Нажмите Сохранить.

  7. В левом меню в секции Интерфейсы выберите [public]. В поле Включен активируйте чекбокс Включить интерфейс. В поле Тип конфигурации IPv4 выберите DHCP. Нажмите Сохранить.

  8. В левом меню в секции Интерфейсы выберите [dmz]. В поле Включен активируйте чекбокс Включить интерфейс. В поле Тип конфигурации IPv4 выберите DHCP. Нажмите Сохранить.

  9. Вверху страницы появится сообщение об изменении конфигурации интерфейса. Нажмите Применить изменения.

  10. В левом меню в секции Система выберите Маршруты -> Конфигурация. Нажмите кнопку с символом + для добавления маршрута. Добавьте статические маршруты согласно таблице ниже. После добавления всех маршрутов нажмите Применить.

Адрес сети Шлюз Описание
10.160.2.0/24 DMZ_DHCP - 10.160.1.1 route to dmz-zone2
198.18.235.0/24 MGMT_DHCP - 192.168.1.1 route to nlb-healthcheck-net1
198.18.248.0/24 MGMT_DHCP - 192.168.1.1 route to nlb-healthcheck-net2
  1. В левом меню в секции Система выберите Шлюзы -> Одиночный. В строке шлюза PUBLIC_DHCP нажмите символ с изображением карандаша. В поле Основной шлюз активируйте чекбокс и нажмите Сохранить. Вверху страницы нажмите Применить изменения.

Диагностика применения базовых настроекДиагностика применения базовых настроек

  1. В левом меню в секции Система выберите Маршруты -> Статус. Проверьте, что в выводе маршрутной информации отображаются добавленные статические маршруты и шлюз по умолчанию 172.16.1.1.

  2. В левом меню в секции Интерфейсы выберите Диагностика -> Просмотр DNS-записей. В поле Имя хоста или IP-адрес введите доменное имя ресурса в интернете, например, ya.ru. Нажмите Просмотр DNS-записей и проверьте, что доменное имя разрешается в публичные IP-адреса.

  3. В левом меню в секции Интерфейсы выберите Диагностика -> Ping. В поле Хост введите доменное имя ресурса в интернете, например, ya.ru. Нажмите Ping и проверьте, что ping успешно выполняется. В поле Хост введите IP-адрес облачного шлюза по умолчанию 192.168.1.1 в сегменте mgmt. Нажмите Ping и проверьте, что ping успешно выполняется.

    ---  ping statistics ---
    3 packets transmitted, 3 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.293/0.471/0.664/0.152 ms
    

Настройка базовых политик безопасностиНастройка базовых политик безопасности

  1. В левом меню в секции Межсетевой экран выберите Псевдонимы. С помощью кнопки с символом + добавьте псевдонимы в соответствии с таблицей ниже. После добавления всех псевдонимов на странице Межсетевой экран: Псевдонимы нажмите Применить.
Имя Тип Содержание
mgmt Сеть 192.168.1.0/24
192.168.2.0/24
dmz Сеть 10.160.1.0/24
10.160.2.0/24
public Сеть 172.16.1.0
172.16.2.0/24
healthcheck_net Сеть 198.18.235.0/24
198.18.248.0/24
dmz_web_server Хост 10.160.1.100
TCP_8080 Порт 8080
yandex Хост ya.ru
  1. В левом меню в секции Межсетевой экран выберите Правила -> mgmt. По умолчанию в TING созданы правила, разрешающие доступ на сетевой интерфейс FW в mgmt сегменте по портам 443, 22, 80. Отредактируйте эти правила, нажав последовательно на символ с изображением карандаша напротив каждого правила:

    • Правило для порта 80 используется для проверок состояния FW балансировщиком NLB route-switcher-lb-.... В поле Отправитель выберите псевдоним healthcheck_net. В поле Описание укажите NLB healthcheck. Нажмите Сохранить.
    • Правило для порта 443 используется для управления FW по протоколу HTTPS. В поле Отправитель выберите псевдоним mgmt. В поле Описание укажите HTTPS FW management. Опционально в поле Журналирование активируйте чекбокс Журналировать пакеты, соответствующие правилу. Нажмите Сохранить.
    • Правило для порта 22 используется для управления FW по протоколу SSH. В поле Отправитель выберите псевдоним mgmt. В поле Описание укажите SSH FW management. Опционально в поле Журналирование активируйте чекбокс Журналировать пакеты, соответствующие правилу. Нажмите Сохранить.
  2. В правилах межсетевого экрана для интерфейса mgmt добавьте правило для доступа из сегмента mgmt к сегменту dmz для задач управления. Для добавления правила нажмите кнопку с символом +. В поле Отправитель выберите псевдоним mgmt. В поле Получатель выберите псевдоним dmz. В поле Описание укажите mgmt to dmz. Опционально в поле Журналирование активируйте чекбокс Журналировать пакеты, соответствующие правилу. Нажмите Сохранить.

  3. В левом меню в секции Межсетевой экран выберите Правила -> dmz. Для проверки работоспособности и тестирования отказоустойчивости добавьте правило для отправки ICMP-пакетов из dmz сегмента в интернет к домену ya.ru. Чтобы добавить правило, нажмите кнопку с символом +. В поле Протокол выберите ICMP. Тип ICMP оставьте любой. В поле Отправитель выберите псевдоним dmz. В поле Получатель выберите псевдоним yandex. В поле Описание укажите ping from dmz to ya.ru. Опционально в поле Журналирование активируйте чекбокс Журналировать пакеты, соответствующие правилу. Нажмите Сохранить.

  4. После добавления всех правил на странице Межсетевой экран: Правила: dmz нажмите Применить.

    Примечание

    Сетевой пакет проверяется на совпадение с критериями правил по порядку, сверху вниз. Порядком правил в списке можно управлять.

    Если сетевой пакет удовлетворяет критериям правила, то к пакету применяется действие, заданное в правиле. Если к пакету применено правило, то обработка пакета межсетевым экраном прекращается — такой пакет далее не будет сверяться с оставшимися правилами в списке.

    Если сетевой пакет не удовлетворяет критериям ни одного правила, то пакет блокируется (т. е. отбрасывается без индикации удаленной стороне).

  5. В левом меню в секции Межсетевой экран выберите NAT -> Переадресация портов. Добавьте правило для направления запросов пользователей на сетевой балансировщик трафика в сегменте dmz, за которым находится группа веб-серверов приложения. Нажмите кнопку с символом + для добавления правила. В поле Интерфейс выберите только интерфейс public. В поле Отправитель нажмите Дополнительно, затем выберите псевдоним public. В поле Получатель выберите public адрес. В поле Диапазон портов назначения выберите TCP_8080 для полей от: и к:. В поле Перенаправление целевого IP-адреса выберите псевдоним dmz_web_server. В поле Целевой порт перенаправления выберите TCP_8080. Опционально в поле Журналирование активируйте чекбокс для журналирования пакетов. В поле Описание укажите DNAT public to dmz-web-server. В поле Ассоциация правила фильтрации выберите Добавить ассоциированное правило. Нажмите Сохранить.

  6. В левом меню в секции Межсетевой экран выберите NAT -> Исходящий. В разделе Режим включите настройку Ручное создание правил исходящего NAT (правила не будут созданы автоматически). Нажмите Сохранить.

  7. На странице Межсетевой экран: NAT: Исходящий добавьте правило, которое обеспечивает прохождение ответа от приложения через тот же FW, через который поступил запрос от пользователя:

    • Нажмите кнопку с символом + для добавления правила.
    • В поле Интерфейс выберите dmz.
    • В поле Протокол выберите TCP.
    • В поле IP-адрес источника выберите псевдоним public.
    • В поле IP-адрес назначения выберите псевдоним dmz_web_server.
    • В поле Порт назначения выберите TCP_8080.
    • В поле Транслируемый IP-адрес / целевой IP-адрес оставьте Адрес интерфейса.
    • Опционально в поле Журналирование активируйте чекбокс Журналировать пакеты, соответствующие правилу.
    • В поле Описание укажите SNAT public to dmz-web-server.
    • Нажмите Сохранить.
  8. На странице Межсетевой экран: NAT: Исходящий добавьте правило для предоставления доступа в интернет из сегмента dmz, чтобы заголовки пакетов с запросами из сегмента dmz в интернет транслировались в Source IP интерфейса FW-a в сегменте public:

    • Нажмите кнопку с символом + для добавления правила.
    • В поле Интерфейс выберите public.
    • В поле IP-адрес источника выберите псевдоним dmz.
    • В поле Транслируемый IP-адрес / целевой IP-адрес оставьте Адрес интерфейса.
    • Опционально в поле Журналирование активируйте чекбокс Журналировать пакеты, соответствующие правилу.
    • В поле Описание укажите SNAT dmz to public.
    • Нажмите Сохранить.
  9. После добавления всех правил NAT на странице Межсетевой экран: NAT: Исходящий нажмите Применить изменения.

    Примечание

    После настройки правил межсетевого экрана, правил NAT и проверки доступа к управлению FW можете отключить правило антиблокировки управления. Перед отключением антиблокировки убедитесь, что у вас есть правило межсетевого экрана, которое позволяет вам подключиться к интерфейсу управления FW. Иначе вы заблокируете себе доступ к управлению.

    Чтобы отключить антиблокировку управления, в левом меню в секции Межсетевой экран выберите Настройки -> Дополнительно. В поле Отключить анти-блокировку активируйте чекбокс Отключить правило анти-блокировки управления. Нажмите Сохранить.

Настройте межсетевой экран FW-BНастройте межсетевой экран FW-B

Подключитесь к веб-интерфейсу управления FW-B по адресу https://192.168.2.10. Учетная запись администратора: логин из значения переменной fw_admin_username, пароль из вывода terraform output fw-b_admin_password (без кавычек).

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

  1. В левом меню в секции Сводка выберите Пароль. Укажите старый пароль из вывода terraform output fw-b_admin_password и задайте новый пароль.

  2. В левом меню в секции Система выберите Настройки -> Общие. В поле Имя хоста укажите fw-b. В поле Часовой пояс выберите Ваш часовой пояс. В разделе DNS-серверы укажите IP-адрес 192.168.2.2 облачного DNS-сервера в сегменте mgmt. Нажмите Сохранить.

  3. В левом меню в секции Службы выберите Сетевое время -> Общие. В разделе Серверы времени укажите адреса NTP-серверов (см. список рекомендуемых NTP-серверов). Активируйте чекбокс напротив предпочтительного сервера в столбце Предпочитать. Нажмите Сохранить.

  4. В левом меню в секции Интерфейсы выберите [WAN]. В поле Описание укажите mgmt. Нажмите Сохранить.

  5. В левом меню в секции Система выберите Маршруты -> Конфигурация. Нажмите кнопку с символом + для добавления маршрута. В поле Адрес сети укажите 192.168.1.0/24. В поле Шлюз выберите MGMT_DHCP - 192.168.2.1. В поле Описание укажите route to mgmt-zone1. Нажмите Сохранить. Нажмите Применить.

  6. В левом меню в секции Интерфейсы выберите Назначения портов. В поле Новый интерфейс выберите порт vtnet1 и в поле Описание укажите public. Нажмите кнопку с символом +. В поле Новый интерфейс выберите порт vtnet2 и в поле Описание укажите dmz. Нажмите кнопку с символом +. Нажмите Сохранить.

  7. В левом меню в секции Интерфейсы выберите [public]. В поле Включен активируйте чекбокс Включить интерфейс. В поле Тип конфигурации IPv4 выберите DHCP. Нажмите Сохранить.

  8. В левом меню в секции Интерфейсы выберите [dmz]. В поле Включен активируйте чекбокс Включить интерфейс. В поле Тип конфигурации IPv4 выберите DHCP. Нажмите Сохранить.

  9. Вверху страницы появится сообщение об изменении конфигурации интерфейса. Нажмите Применить изменения.

  10. В левом меню в секции Система выберите Маршруты -> Конфигурация. Нажмите кнопку с символом + для добавления маршрута. Добавьте статические маршруты согласно таблице ниже. После добавления всех маршрутов нажмите Применить.

    Адрес сети Шлюз Описание
    10.160.1.0/24 DMZ_DHCP - 10.160.2.1 route to dmz-zone1
    198.18.235.0/24 MGMT_DHCP - 192.168.2.1 route to nlb-healthcheck-net1
    198.18.248.0/24 MGMT_DHCP - 192.168.2.1 route to nlb-healthcheck-net2
  11. В левом меню в секции Система выберите Шлюзы -> Одиночный. В строке шлюза PUBLIC_DHCP нажмите символ с изображением карандаша. В поле Основной шлюз активируйте чекбокс и нажмите Сохранить. Вверху страницы нажмите Применить изменения.

Диагностика применения базовых настроекДиагностика применения базовых настроек

  1. В левом меню в секции Система выберите Маршруты -> Статус. Проверьте, что в выводе маршрутной информации отображаются добавленные статические маршруты и шлюз по умолчанию 172.16.2.1.

  2. В левом меню в секции Интерфейсы выберите Диагностика -> Просмотр DNS-записей. В поле Имя хоста или IP-адрес введите доменное имя ресурса в интернете, например, ya.ru. Нажмите Просмотр DNS-записей и проверьте, что доменное имя разрешается в публичные IP-адреса.

  3. В левом меню в секции Интерфейсы выберите Диагностика -> Ping. В поле Хост введите доменное имя ресурса в интернете, например, ya.ru. Нажмите Ping и проверьте, что ping успешно выполняется. В поле Хост введите IP-адрес облачного шлюза по умолчанию 192.168.2.1 в сегменте mgmt. Нажмите Ping и проверьте, что ping успешно выполняется.

    ---  ping statistics ---
    3 packets transmitted, 3 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.371/0.462/0.638/0.125 ms
    

Настройка базовых политик безопасностиНастройка базовых политик безопасности

Настройте базовые политики безопасности аналогично FW-A.

Включите работу модуля 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-ting-ngfw и подключитесь по SSH к одной из ВМ в DMZ-сегменте. Используйте для подключения логин из значения переменной vm_admin_username:

    cd yc-dmz-with-high-available-ting-ngfw
    ssh -i pt_key.pem <логин>@<внутренний_IP-адрес_ВМ_в_DMZ_сегменте>
    
  4. Подключитесь к веб-интерфейсу управления FW-A по адресу https://192.168.1.10. В меню слева в секции Межсетевой экран выберите Журналы -> Живой просмотр. В фильтре логов выберите метка, затем содержит и ping from dmz to ya.ru. Нажмите кнопку с символом +.

  5. Чтобы проверить наличие доступа из ВМ в DMZ-сегменте к публичному ресурсу в сети интернет, выполните команду:

    ping ya.ru
    

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

  6. На странице Межсетевой экран: Журналы: Живой просмотр проверьте, что отображается запись разрешенного трафика к ресурсу ya.ru. Остановите ping.

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

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

    ping 192.168.1.101
    

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

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

  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-сегменте. Используйте для подключения логин из значения переменной vm_admin_username:

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

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

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

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

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

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

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

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

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

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

Требования к развертыванию в продуктивной средеТребования к развертыванию в продуктивной среде

  • Сохраните закрытый SSH-ключ pt_key.pem в надежное место либо пересоздайте его отдельно от Terraform.
  • Удалите Jump ВМ, если не планируете ей пользоваться.
  • Если планируете использовать Jump ВМ для подключения к сегменту управления с помощью VPN WireGuard, то измените ключи для WireGuard на Jump ВМ и рабочей станции администратора.
  • Настройте Смарт-Софт TING под ваши задачи в соответствии с корпоративной политикой безопасности.
  • Не назначайте публичные IP-адреса на ВМ в сегментах, где используются таблицы маршрутизации с маршрутом по умолчанию 0.0.0.0/0 через Смарт-Софт TING (подробности). Исключением — сегмент управления mgmt, где в таблицах маршрутизации не используется маршрут по умолчанию 0.0.0.0/0.

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

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

terraform destroy

Важно

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

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

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

Предыдущая
Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе UserGate NGFW
Следующая
Организация доступа через Cloud Interconnect к облачным сетям, размещенным за NGFW
Проект Яндекса
© 2025 ООО «Яндекс.Облако»