Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Практические руководства
    • Все руководства
    • Архитектура и защита базового интернет-сервиса
    • Анализ поресурсной детализации расходов с помощью Object Storage
        • Схема решения
        • Самостоятельная реализация средствами Yandex Cloud
        • Развертывание S2S VPN с помощью Cloud App strongSwan в Yandex Cloud
        • Решение SGW от команды архитекторов Yandex Cloud
      • Соединение с облачной сетью при помощи OpenVPN
      • Создание и настройка шлюза UserGate в режиме прокси-сервера

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

  • Необходимые платные ресурсы
  • Подготовьте облако к работе
  • Создайте сервисный аккаунт
  • Создайте облачную сеть
  • Зарезервируйте публичный статический IP-адрес
  • Создайте пару ключей SSH
  • Разверните приложение
  • Установите приложение
  • Привяжите таблицу маршрутизации
  • Настройте виртуальную машину
  • Как удалить созданные ресурсы
  1. Базовая инфраструктура
  2. VPNs
  3. Организация сетевой связности с помощью IPsec-шлюзов
  4. Развертывание S2S VPN с помощью Cloud App strongSwan в Yandex Cloud

Развертывание S2S VPN с помощью Cloud App strongSwan в Yandex Cloud

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 5 декабря 2025 г.
  • Необходимые платные ресурсы
  • Подготовьте облако к работе
  • Создайте сервисный аккаунт
  • Создайте облачную сеть
  • Зарезервируйте публичный статический IP-адрес
  • Создайте пару ключей SSH
  • Разверните приложение
    • Установите приложение
    • Привяжите таблицу маршрутизации
    • Настройте виртуальную машину
  • Как удалить созданные ресурсы

Важно

Часть ресурсов, необходимых для прохождения практического руководства, доступны только в регионе Россия.

В этом руководстве вы развернете защищенное site‑to‑site (S2S) VPN‑соединение между облачной инфраструктурой в Yandex Cloud и удаленной площадкой с помощью IPsec‑шлюза на базе strongSwan. Для этого будет использоваться приложение strongSwan S2S VPN из каталога Yandex Cloud Apps. Приложение автоматизирует развертывание и базовую настройку IPsec‑туннеля, позволяя:

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

Примечание

Готовое приложение автоматизирует развертывание инфраструктуры в Yandex Cloud.

При использовании strongSwan S2S VPN на удаленной площадке (в вашем локальном ЦОД, филиале или другом облаке) необходима настройка вручную.

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

  1. Подготовьте облако к работе.
  2. Создайте сервисный аккаунт.
  3. Создайте облачную сеть.
  4. Зарезервируйте публичный статический IP-адрес.
  5. Создайте пару ключей SSH.
  6. Разверните приложение.

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

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

В стоимость развертывания инфраструктуры для данного решения входят:

  • Плата за постоянно запущенную виртуальную машину (см. тарифы Yandex Compute Cloud).
  • Плата за использование статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).
  • Плата за исходящий трафик (см. тарифы Yandex Virtual Private Cloud)

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

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

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

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

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

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

Создайте сервисный аккаунт s2s-vpn-sa для автоматического создания ресурсов при установке приложения. Назначьте ему роли resource-manager.admin, iam.admin, compute.admin и vpc.admin.

Консоль управления
Yandex Cloud CLI
API
  1. Перейдите в сервис Identity and Access Management.

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

  3. Укажите имя сервисного аккаунта: s2s-vpn-sa.

  4. Нажмите Добавить роль и выберите роли:

    • resource-manager.admin
    • iam.admin
    • compute.admin
    • vpc.admin.
  5. Нажмите Создать.

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

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

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

    yc iam service-account create --name s2s-vpn-sa
    

    Результат:

    id: nfersamh4sjq********
    folder_id: b1gc1t4cb638********
    created_at: "2023-03-21T10:36:29.726397755Z"
    name: s2s-vpn-sa
    

    Сохраните идентификатор сервисного аккаунта s2s-vpn-sa (id) и каталога, в котором его создали (folder_id).

  2. Назначьте сервисному аккаунту роли resource-manager.admin, iam.admin, compute.admin и vpc.admin на каталог:

    yc resource-manager folder add-access-binding <идентификатор_каталога> \
      --role resource-manager.admin \
      --subject serviceAccount:<идентификатор_сервисного_аккаунта>
    
    yc resource-manager folder add-access-binding <идентификатор_каталога> \
      --role iam.admin \
      --subject serviceAccount:<идентификатор_сервисного_аккаунта>
    
    yc resource-manager folder add-access-binding <идентификатор_каталога> \
      --role compute.admin \
      --subject serviceAccount:<идентификатор_сервисного_аккаунта>
    
    yc resource-manager folder add-access-binding <идентификатор_каталога> \
      --role vpc.admin \
      --subject serviceAccount:<идентификатор_сервисного_аккаунта>
    

    Результат:

    done (1s)
    

Чтобы создать сервисный аккаунт, воспользуйтесь методом create для ресурса ServiceAccount или вызовом gRPC API ServiceAccountService/Create.

Чтобы назначить сервисному аккаунту роли на каталог, воспользуйтесь методом setAccessBindings для ресурса ServiceAccount или вызовом gRPC API ServiceAccountService/SetAccessBindings.

Создайте облачную сетьСоздайте облачную сеть

Создайте облачную сеть, в которой будет размещена ВМ.

Консоль управления
Yandex Cloud CLI
API
  1. Перейдите в сервис Virtual Private Cloud.
  2. Справа сверху нажмите Создать сеть.
  3. В поле Имя укажите s2s-vpn-network.
  4. В поле Дополнительно отключите опцию Создать подсети.
  5. Нажмите Создать сеть.

Выполните команду:

yc vpc network create s2s-vpn-network

Результат:

id: enp1gg8kr3pv********
folder_id: b1gt6g8ht345********
created_at: "2023-12-20T20:08:11Z"
name: s2s-vpn-network
default_security_group_id: enppne4l2eg5********

Чтобы создать облачную сеть, воспользуйтесь методом REST API create для ресурса Network или вызовом gRPC API NetworkService/Create.

Зарезервируйте публичный статический IP-адресЗарезервируйте публичный статический IP-адрес

Зарезервируйте статический публичный IP-адрес для ВМ, на которой будет установлено приложение.

Консоль управления
  1. Перейдите в сервис Virtual Private Cloud.
  2. На панели слева выберите IP-адреса и нажмите Зарезервировать адрес.
  3. В открывшемся окне в поле Зона доступности выберите kz1-b и нажмите Зарезервировать.

Создайте пару ключей SSHСоздайте пару ключей SSH

Чтобы подключаться к ВМ по SSH, нужна пара ключей: открытый ключ размещается на ВМ, а закрытый ключ хранится у пользователя. Такой способ безопаснее, чем подключение по логину и паролю.

Примечание

В публичных образах Linux, предоставляемых Yandex Cloud, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.

Чтобы создать пару ключей:

Linux/macOS
Windows 10/11
Windows 7/8
  1. Откройте терминал.

  2. Создайте новый ключ с помощью команды ssh-keygen:

    ssh-keygen -t ed25519 -C "<опциональный_комментарий>"
    

    Вы можете передать в параметре -C пустую строку, чтобы не добавлять комментарий, или не указывать параметр -C вообще — в таком случае будет добавлен комментарий по умолчанию.

    После выполнения команды вам будет предложено указать имя и путь к файлам с ключами, а также ввести пароль для закрытого ключа. Если задать только имя, пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением .pub, закрытый ключ — в файле без расширения.

    По умолчанию команда предлагает сохранить ключ под именем id_ed25519 в директории /home/<имя_пользователя>/.ssh. Если в этой директории уже есть SSH-ключ с именем id_ed25519, вы можете случайно перезаписать его и потерять доступ к ресурсам, в которых он используется. Поэтому рекомендуется использовать уникальные имена для всех SSH-ключей.

Если у вас еще не установлен OpenSSH, установите его по инструкции.

  1. Запустите cmd.exe или powershell.exe (предварительно обновите PowerShell).

  2. Создайте новый ключ с помощью команды ssh-keygen:

    ssh-keygen -t ed25519 -C "<опциональный_комментарий>"
    

    Вы можете передать в параметре -C пустую строку, чтобы не добавлять комментарий, или не указывать параметр -C вообще — в таком случае будет добавлен комментарий по умолчанию.

    После выполнения команды вам будет предложено указать имя и путь к файлам с ключами, а также ввести пароль для закрытого ключа. Если задать только имя, пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением .pub, закрытый ключ — в файле без расширения.

    По умолчанию команда предлагает сохранить ключ под именем id_ed25519 в папку C:\Users\<имя_пользователя>/.ssh. Если в этой директории уже есть SSH-ключ с именем id_ed25519, вы можете случайно перезаписать его и потерять доступ к ресурсам, в которых он используется. Поэтому рекомендуется использовать уникальные имена для всех SSH-ключей.

Создайте ключи с помощью приложения PuTTY:

  1. Скачайте и установите PuTTY.

  2. Добавьте папку с PuTTY в переменную PATH:

    1. Нажмите кнопку Пуск и в строке поиска Windows введите Изменение системных переменных среды.
    2. Справа снизу нажмите кнопку Переменные среды....
    3. В открывшемся окне найдите параметр PATH и нажмите Изменить.
    4. Добавьте путь к папке в список.
    5. Нажмите кнопку ОК.
  3. Запустите приложение PuTTYgen.

  4. В качестве типа генерируемой пары выберите EdDSA. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.

    ssh_generate_key

  5. В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.

  6. Нажмите кнопку Save private key и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.

  7. Нажмите кнопку Save public key и сохраните открытый ключ в файле <имя_ключа>.pub.

Разверните приложениеРазверните приложение

Установите приложениеУстановите приложение

В результате установки приложения будут автоматически созданы ресурсы Yandex Cloud:

  • сервисный аккаунт;
  • подсеть;
  • IP-адрес;
  • таблица маршрутизации;
  • группа безопасности;
  • виртуальная машина.

Важно

Убедитесь, что в целевом облаке не израсходованы квоты:

  • Количество сервисных аккаунтов
  • Количество подсетей
  • Количество статических публичных IP-адресов
  • Количество таблиц маршрутизации
  • Количество статических маршрутов
  • Количество групп безопасности
  • Количество виртуальных машин
  • Количество дисков
  • Общий объём SSD-дисков
  • Общий объём RAM виртуальных машин

Если какая-либо квота израсходована, создайте запрос на расширение квоты и дождитесь его исполнения.

Консоль управления
  1. Перейдите в сервис Cloud Apps.

  2. На панели слева выберите Магазин приложений.

  3. В поле Поиск продуктов введите strongswan, выберите strongSwan S2S VPN и нажмите Использовать.

  4. В открывшемся окне укажите:

    • Имя — s2s-vpn.
    • Сервисный аккаунт — s2s-vpn-sa.
    • Сеть VPC — s2s-vpn-network.
    • CIDR новой подсети — 10.130.0.0/24.
    • Зона новой подсети — kz1-b.
    • IP-адрес удалённого шлюза — IP-адрес удаленного VPN-шлюза, который будет добавлен в конфигурацию strongSwan.
    • CIDR удаленных подсетей — список подсетей в виде перечисления CIDR через запятую, которые будут автоматически добавлены в таблицу маршрутизации.
    • Ключ SSH — содержимое открытого SSH-ключа, созданного ранее.
    • IPsec IKE Proposal — aes128gcm16-prfsha256-ecp256.
    • IPsec ESP Proposal — aes128gcm16.
    • IPsec PSK — ключ IPsec Pre-Shared Key (PSK), который будет указан в конфигурации strongSwan.
  5. Нажмите Установить и дождитесь завершения установки.

Привяжите таблицу маршрутизацииПривяжите таблицу маршрутизации

Чтобы трафик между облачной и удаленной сетями направлялся через VPN-туннель, свяжите таблицу маршрутизации и подсеть.

Консоль управления
Yandex Cloud CLI
API
  1. Перейдите в сервис Virtual Private Cloud.
  2. На панели слева выберите Подсети.
  3. В строке автоматически созданной подсети ipsec-sgw-... нажмите → Привязать таблицу маршрутизации и выберите автоматически созданную таблицу ipsec-sgw-....
  4. Нажмите Привязать.

Выполните команду:

yc vpc subnet update <имя_автоматически_созданной_подсети> \
  --route-table-name=<имя_автоматически_созданной_таблицы>

Результат:

id: e9b6n3jj3gh6********
folder_id: b1g681qpemb4********
created_at: "2024-05-19T13:24:58Z"
name: ipsec-sgw-kz1-b
network_id: enppoggov6ub********
zone_id: kz1-b
v4_cidr_blocks:
  - 10.1.0.0/16
route_table_id: enp4v8foko6s********
dhcp_options: {}

Чтобы привязать таблицу маршрутизации к подсети, воспользуйтесь методом REST API update для ресурса Subnet или вызовом gRPC API SubnetService/Update.

Важно

Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

Настройте виртуальную машинуНастройте виртуальную машину

После установки приложения выполните финальную настройку IPsec-шлюза на ВМ.

  1. Подключитесь к ВМ по SSH. Для этого используйте логин admin и закрытый SSH-ключ созданный ранее.

  2. Получите права администратора:

    sudo su
    
  3. Перейдите в домашнюю папку администратора и запустите скрипт:

    cd /root
    ./update.sh
    

    В папке /root будут созданы текстовые файлы ipsec-*.txt, которые могут быть использованы как пример для настройки подключения на удаленном эндпоинте.

    Совет

    В случае совпадения IP-диапазонов в Yandex Cloud и удаленной сети может потребоваться использование Source NAT. Для этого выполните команду:

    iptables \
      -t nat \
      -A POSTROUTING \
      -s <локальная_подсеть> \
      -d <удаленная_подсеть> \
      -j SNAT \
      --to-source <новый_адрес>
    

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

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

  • Удалите приложение strongSwan S2S VPN:

    1. Перейдите в сервис Cloud Apps.

    2. В строке с приложением нажмите → Удалить и подтвердите удаление.

      Вместе с приложением удалятся все связанные с ним ресурсы.

  • Удалите таблицу маршрутизации.

  • Удалите сервисный аккаунт.

  • Удалите статический публичный IP-адрес.

  • Удалите облачную сеть.

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

Предыдущая
Самостоятельная реализация средствами Yandex Cloud
Следующая
Решение SGW от команды архитекторов Yandex Cloud
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»