С помощью этого руководства вы настроите сетевую связность между инфраструктурой в облаке Cloud.ru Evolution и некоторой удаленной стороной. На практике в качестве удаленной стороны может выступать, например, сетевая инфраструктура в офисе или в другом облаке.
Для организации защищенного соединения вы настроите IPsec-туннель с помощью ПО strongSwan, где в качестве одной из сторон выступает инфраструктура в облаке Cloud.ru Evolution. Виртуальная машина в облаке используется как VPN-шлюз, через который другие машины из этого облака отправляют трафик в удаленную подсеть. Такой туннель позволяет безопасно передавать трафик между приватными сетями через интернет.
В качестве удаленной вы развернете аналогичную инфраструктуру на платформе Cloud.ru Advanced.
Вы будете использовать следующие сервисы:
Виртуальные машины — сервис, в рамках которого предоставляется виртуальная машина.
VPC — изолированная виртуальная сеть для создания безопасной инфраструктуры.
strongSwan — программное решение с открытым исходным кодом для создания защищенных VPN-соединений по протоколу IPsec.
Шаги:
Перед началом работы
-
Если вы уже зарегистрированы, войдите под своей учетной записью.
Убедитесь, что для вашей учетной записи достаточно прав на проект. При необходимости настройте права или запросите их у администратора.
1. Разверните инфраструктуру на стороне Evolution
На этом шаге в облаке Evolution вы создадите и подготовите виртуальную сеть, подсеть, группу безопасности и две виртуальные машины.
Создайте виртуальную сеть с названием cloud-vpc.
Создайте подсеть со следующими параметрами:
Название — cloud-subnet.
VPC — cloud-vpc.
Зона доступности — ru.AZ-1.
Адрес — 172.16.0.0/24.
Скопируйте и сохраните адрес подсети: он потребуется для дальнейшей настройки.
Создайте группу безопасности с названием cloud-sg в зоне доступности ru.AZ-1 и добавьте в нее правило исходящего трафика:
Протокол
Порт
Тип адресата
Адресат
Любой
Оставьте пустым
IP-адрес
0.0.0.0/0
После создания удаленного VPN-шлюза на платформе Advanced в эту группу необходимо добавить правила для входящего трафика.
Создайте виртуальную машину со следующими параметрами:
Название — cloud-gateway.
Зона доступности — ru.AZ-1
Образ — на вкладке Маркетплейс выберите образ «strongSwan».
Сетевой интерфейс — выберите тип Подсеть с публичным IP.
VPC — cloud-vpc.
Подсеть — cloud-subnet.
Публичный IP — оставьте Арендовать новый или выберите IP-адрес из списка арендованных.
Группы безопасности — добавьте группу cloud-sg.
Имя пользователя — cloud-user.
Метод аутентификации — Пароль.
Пароль — задайте пароль пользователя.
Виртуальная машина будет выполнять роль облачного VPN-шлюза, который принимает трафик от клиентских ВМ и направляет его в удаленную подсеть.
В строке ВМ cloud-gateway скопируйте и сохраните адреса из столбцов Внутренний IP и Публичный IP: они потребуются для дальнейшей настройки.
Создайте виртуальную машину со следующими параметрами:
Название — cloud-vm.
Зона доступности — ru.AZ-1
Образ — на вкладке Публичные выберите Ubuntu 22.04.
Сетевой интерфейс — выберите тип Подсеть.
VPC — cloud-vpc.
Подсеть — cloud-subnet.
Группы безопасности — добавьте группу cloud-sg.
Логин — client.
Метод аутентификации — Пароль.
Пароль — задайте пароль пользователя.
Виртуальная машина будет выполнять роль клиента, который отправляет трафик в удаленную подсеть через облачный VPN-шлюз.
В строке ВМ cloud-vm скопируйте и сохраните адрес из столбца Внутренний IP: он потребуется для дальнейшей настройки.
На сетевом интерфейсе облачного VPN-шлюза отключите проверку адресов источника и назначения.
На странице сервиса «Виртуальные машины» выберите виртуальную машину cloud-gateway.
Перейдите на вкладку Сетевые параметры.
В правом верхнем углу блока нужного сетевого интерфейса нажмите
и выберите Свойства.
Отключите опцию Проверка адреса источника/назначения.
Подтвердите отключение.
2. Разверните инфраструктуру на стороне Advanced
На этом шаге в облаке Advanced вы создадите и подготовите виртуальную сеть, подсеть, группу безопасности и две виртуальные машины.
Создайте сеть VPC и подсеть со следующими параметрами:
В блоке Basic Information:
Name — remote-vpc.
IPv4 CIDR Block — 10.0.0.0/8-24.
Enterprise Project — выберите существующий проект из списка или нажмите Create Enterprise Project, чтобы создать новый.
В блоке Subnet Setting:
Subnet Name — remote-subnet.
IPv4 CIDR Block — 10.0.0.0/24. Сохраните адрес подсети — он потребуется для дальнейшей настройки.
Создайте группу безопасности со следующими параметрами:
Name — remote-sg.
Enterprise Project — выберите существующий проект из списка или нажмите Create Enterprise Project, чтобы создать новый.
Template — Fast-add rule.
Добавьте правила в группу безопасности согласно таблице:
Priority
Action
Type
Protocol & Port
Source
1
Allow
IPv4
UDP: 500
<cloud_gateway_public_ip>
1
Allow
IPv4
UDP: 4500
<cloud_gateway_public_ip>
1
Allow
IPv4
ICMP: All
<cloud_subnet_ip>
Где:
<cloud_gateway_public_ip> — публичный IP-адрес ВМ cloud-gateway на платформе Evolution.
<cloud_subnet_ip> — адрес подсети cloud-subnet на платформе Evolution.
Создайте виртуальную машину со следующими параметрами:
На этапе Configure Basic Settings:
AZ — AZ1.
Specifications — выберите спецификацию General-Purpose и флейвор s6.small.1.
Image — Ubuntu 22.04.
На этапе Configure Network:
Network — выберите облачную сеть remote-vpc и подсеть remote-subnet.
Source/Destination Check — отключите опцию.
Security Group — remote-sg.
EIP — Auto assign.
Billed By — By Traffic.
На этапе Configure Advanced Settings:
ECS Name — remote-gateway.
Login Mode — Password.
Password — введите пароль пользователя.
Confirm Password — повторите введенный ранее пароль.
На этапе Confirm проверьте настройки виртуальной машины и в поле Enterprise Project выберите проект, в котором она будет создана.
Виртуальная машина будет выполнять роль удаленного VPN-шлюза, который принимает трафик от клиентских ВМ и направляет его в подсеть на стороне Evolution.
Сохраните IP-адреса виртуальной машины remote-gateway из столбца IP Address: публичный (EIP) и внутренний (Private IP). Они потребуются для дальнейшей настройки.
Создайте виртуальную машину со следующими параметрами:
На этапе Configure Basic Settings:
AZ — AZ1.
Specifications — выберите спецификацию General-Purpose и флейвор s6.small.1.
Image — Ubuntu 22.04.
На этапе Configure Network:
Network — выберите облачную сеть remote-vpc и подсеть remote-subnet.
Security Group — remote-sg.
EIP — Do not use.
На этапе Configure Advanced Settings:
ECS Name — remote-vm.
Login Mode — Password.
Password — введите пароль пользователя.
Confirm Password — повторите введенный ранее пароль.
На этапе Confirm проверьте настройки виртуальной машины и в поле Enterprise Project выберите проект, в котором она будет создана.
Виртуальная машина будет выполнять роль клиента, который отправляет трафик в подсеть на стороне Evolution через удаленный VPN-шлюз.
Сохраните внутренний IP-адрес виртуальной машины remote-vm из столбца IP Address: он потребуется для дальнейшей настройки.
3. Добавьте правила в группу безопасности облачного VPN-шлюза
Для работы strongSwan и проверки доступности виртуальных машин необходимо:
разрешить входящий трафик со стороны удаленного VPN-шлюза через порты UDP 500 и 4500;
разрешить входящий трафик из удаленной подсети по протоколу ICMP.
Добавьте правила входящего трафика в группу безопасности cloud-sg согласно таблице:
Протокол | Порт | Тип источника | Источник |
---|---|---|---|
UDP | 500 | IP-адрес | <remote_gateway_public_ip> |
UDP | 4500 | IP-адрес | <remote_gateway_public_ip> |
ICMP | Любой | IP-адрес | <remote_subnet_ip> |
Где:
<remote_gateway_public_ip> — публичный IP-адрес ВМ remote-gateway на платформе Advanced.
<remote_subnet_ip> — адрес подсети remote-subnet на платформе Advanced.
4. Настройте VPN-шлюзы
Для установления IPsec-туннеля необходимо настроить VPN-шлюзы на стороне Evolution и Advanced.
Настройте облачный VPN-шлюз
Перейдите в личный кабинет платформы Evolution.
На верхней панели слева нажмите
и выберите Инфраструктура → Виртуальные машины.
Выберите виртуальную машину cloud-gateway в списке.
Перейдите на вкладку Серийная консоль.
Введите логин и пароль, указанные при создании виртуальной машины.
Включите маршрутизацию пакетов и отключите функциональность ICMP Redirects:
Откройте файл /etc/sysctl.conf для редактирования. В терминале выполните команду:
sudo nano /etc/sysctl.confДобавьте в файл параметры:
net.ipv4.ip_forward = 1net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.enp3s0.accept_redirects = 0net.ipv4.conf.enp3s0.send_redirects = 0Примените изменения:
sudo sysctl -p /etc/sysctl.conf
Заполните файл конфигурации IPsec-туннеля:
Откройте файл /etc/ipsec.conf для редактирования:
sudo nano /etc/ipsec.confВставьте конфигурацию в файл:
config setupstrictcrlpolicy=yesuniqueids=yesconn evo-to-advancedtype=tunnelauto=startkeyexchange=ikev2authby=secretleft=<left_internal_ip>leftid=<left_public_ip>leftsubnet=<left_subnet>right=<right_public_ip>rightsubnet=<right_subnet>ike=aes256-sha2_256-modp1024!esp=aes256-sha2_256!Где:
<left_internal_ip> — внутренний IP-адрес ВМ cloud-gateway.
<left_public_ip> — публичный IP-адрес ВМ cloud-gateway.
<left_subnet> — адрес подсети cloud-subnet.
<right_public_ip> — публичный IP-адрес ВМ remote-gateway на платформе Advanced.
<right_subnet> — адрес подсети remote-subnet на платформе Advanced.
Подробное описание параметров файла /etc/ipsec.conf смотрите в документации strongSwan.
Заполните файл секретов:
Откройте файл /etc/ipsec.secrets для редактирования:
sudo nano /etc/ipsec.secretsВставьте в файл ключевую фразу (PSK, Pre-Shared Key) туннеля:
<left_public_ip> <right_public_ip> : PSK "<secret_phrase>"Где:
<left_public_ip> — публичный IP-адрес ВМ cloud-gateway.
<right_public_ip> — публичный IP-адрес ВМ remote-gateway на платформе Advanced.
<secret_phrase> — ключ для установки IPsec-соединения. Значение ключа необходимо придумать самостоятельно.
Перезапустите strongSwan:
sudo systemctl restart strongswan-starter.serviceПроверьте, что VPN-шлюз на стороне Evolution поднят и находится в ожидании установления IPsec-туннеля c удаленной стороной:
sudo ipsec statusРезультат:
Security Associations (0 up, 1 connecting):evo-to-advanced[1]: CONNECTING, 172.31.***.***[%any]...37.18.***.***[%any]
Настройте удаленный VPN-шлюз
Войдите в консоль управления Advanced:
В списке сервисов выберите Elastic Cloud Server.
Напротив виртуальной машины remote-gateway нажмите Remote Login.
Введите логин и пароль, указанные при создании виртуальной машины.
Обновите версии пакетов. В терминале выполните команду:
sudo apt updateУстановите strongSwan:
sudo apt install -y strongswanВключите маршрутизацию пакетов и отключите функциональность ICMP Redirects:
Откройте файл /etc/sysctl.conf для редактирования:
sudo nano /etc/sysctl.confДобавьте в файл параметры:
net.ipv4.ip_forward = 1net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.eth0.accept_redirects = 0net.ipv4.conf.eth0.send_redirects = 0ПримечаниеНа практике имена локальных интерфейсов на удаленной стороне могут отличаться.
Примените изменения:
sudo sysctl -p /etc/sysctl.conf
Заполните файл конфигурации IPsec-туннеля:
Откройте файл /etc/ipsec.conf для редактирования.
sudo nano /etc/ipsec.confВставьте конфигурацию в файл:
config setupstrictcrlpolicy=yesuniqueids=yesconn advanced-to-evotype=tunnelauto=startkeyexchange=ikev2authby=secretright=<right_public_ip>rightsubnet=<right_subnet>left=<left_internal_ip>leftid=<left_public_ip>leftsubnet=<left_subnet>ike=aes256-sha2_256-modp1024!esp=aes256-sha2_256!Где:
<right_public_ip> — публичный IP-адрес ВМ cloud-gateway на платформе Evolution.
<right_subnet> — адрес подсети cloud-subnet на платформе Evolution.
<left_internal_ip> — внутренний IP-адрес ВМ remote-gateway.
<left_public_ip> — публичный IP-адрес ВМ remote-gateway.
<left_subnet> — адрес подсети remote-subnet.
При настройке удаленной стороны она становится левой стороной туннеля, а сторона облака Evolution становится правой стороной.
Подробное описание параметров файла /etc/ipsec.conf смотрите в документации strongSwan.
Заполните файл секретов:
Откройте файл /etc/ipsec.secrets для редактирования:
sudo nano /etc/ipsec.secretsВставьте в файл ключевую фразу (PSK, Pre-Shared Key) туннеля:
<left_public_ip> <right_public_ip> : PSK "<secret_phrase>"Где:
<left_public_ip> — публичный IP-адрес ВМ cloud-gateway на платформе Evolution.
<right_public_ip> — публичный IP-адрес ВМ remote-gateway.
<secret_phrase> — ключ для установки IPsec-соединения. Укажите такое же значение, как и в настройках облачного VPN-шлюза.
Перезапустите strongSwan:
sudo systemctl restart strongswan-starter.serviceПроверьте, что VPN-шлюз на стороне Advanced поднят, а IPsec-туннель установлен:
sudo ipsec statusРезультат:
Security Associations (1 up, 0 connecting):advanced-to-evo[2]: ESTABLISHED 110 seconds ago, 10.0.***.***[37.18.***.***]...176.108.***.***[176.108.***.***]advanced-to-evo{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c9c35ad9_i c0c7b197_oadvanced-to-evo{1}: 10.0.***.***/24 === 172.31.***.***/24
Проверьте работу шлюзов
Проверьте, что на обоих VPN-шлюзах появилась возможность пинговать внутренний IP-адрес шлюза с противоположной стороны.
На стороне платформы Evolution на ВМ cloud-gateway выполните команду:
ping -c4 <remote_gateway_internal_ip>Где <remote_gateway_internal_ip> — внутренний IP-адрес ВМ remote-gateway на платформе Advanced.
На стороне платформы Advanced на ВМ remote-gateway выполните команду:
ping -c4 <cloud_gateway_internal_ip>Где <cloud_gateway_internal_ip> — внутренний IP-адрес ВМ cloud-gateway на платформе Evolution.
5. Настройте маршрутизацию
В виртуальных сетях на обеих сторонах необходимо добавить статические маршруты. Это позволит перенаправлять трафик с клиентских ВМ на противоположную сторону туннеля через внутренний интерфейс VPN-шлюза.
Настройте маршрутизацию в Evolution
Перейдите в личный кабинет платформы Evolution.
На верхней панели слева нажмите
и выберите Сеть → VPC.
Выберите сеть cloud-vpc.
Перейдите на вкладку Маршруты.
Нажмите Создать маршрут.
Укажите параметры маршрута:
Адрес назначения — адрес подсети remote-subnet на платформе Advanced.
Next Hop Type — Виртуальная машина.
Виртуальная машина — cloud-gateway.
Интерфейс — выберите интерфейс ВМ cloud-gateway, который подключен к подсети cloud-subnet.
Нажмите Создать.
Дождитесь, когда статус маршрута сменится на «Активен».
Настройте маршрутизацию в Advanced
Войдите в консоль управления Advanced:
В списке сервисов выберите Virtual Private Cloud.
В меню слева выберите Route Tables.
Нажмите Create Route Table.
Укажите параметры таблицы маршрутизации:
Name — rtb-remote-vpc.
VPC — remote-vpc.
Добавьте маршрут в таблицу:
В блоке Route Settings нажмите Add Route.
Укажите параметры маршрута:
Destination Type — IP address.
Destination — адрес подсети cloud-subnet на платформе Evolution.
Next Hop Type — Server.
Next Hop — remote-gateway.
Нажмите OK.
Во всплывающем окне нажмите Associate Subnet.
На вкладке Associated Subnets нажмите Associate Subnet.
Отметьте подсеть remote-subnet и нажмите OK.
6. Проверьте сетевую связность
Проверьте, что удаленный VPN-шлюз и удаленная клиентская ВМ доступны с облачной клиентской ВМ:
Перейдите в личный кабинет платформы Evolution.
На верхней панели слева нажмите
и выберите Инфраструктура → Виртуальные машины.
Выберите виртуальную машину cloud-vm в списке.
Перейдите на вкладку Серийная консоль.
Введите логин и пароль, указанные при создании виртуальной машины.
В терминале поочередно выполните команды:
ping -c4 <remote_gateway_internal_ip>ping -c4 <remote_vm_internal_ip>Где:
<remote_gateway_internal_ip> — внутренний IP-адрес ВМ remote-gateway на платформе Advanced.
<remote_vm_internal_ip> — внутренний IP-адрес ВМ remote-vm на платформе Advanced.
Проверьте, что облачный VPN-шлюз и облачная ВМ доступны с удаленной клиентской ВМ:
Войдите в консоль управления Advanced:
В списке сервисов выберите Elastic Cloud Server.
Напротив виртуальной машины remote-vm нажмите Remote Login.
Введите логин и пароль, указанные при создании виртуальной машины.
В терминале поочередно выполните команды:
ping -c4 <cloud_gateway_internal_ip>ping -c4 <cloud_vm_internal_ip>Где:
<cloud_gateway_internal_ip> — внутренний IP-адрес ВМ cloud-gateway на платформе Evolution.
<cloud_vm_internal_ip> — внутренний IP-адрес ВМ cloud-vm на платформе Evolution.
Теперь клиентские ВМ могут обмениваться трафиком с помощью настроенного IPsec-туннеля.
Результат
Вы научились настраивать защищенное соединение между инфраструктурой в облаке Cloud.ru Evolution и удаленной стороной.
- Перед началом работы
- 1. Разверните инфраструктуру на стороне Evolution
- 2. Разверните инфраструктуру на стороне Advanced
- 3. Добавьте правила в группу безопасности облачного VPN-шлюза
- 4. Настройте VPN-шлюзы
- 5. Настройте маршрутизацию
- 6. Проверьте сетевую связность
- Результат