Соединение с облачной сетью при помощи OpenVPN
С помощью туннелей на порт TCP или UDP и асимметричного шифрования можно создавать виртуальные сети. VPN может быть использован, например, чтобы:
- объединить территориально удаленные сети;
- подключить внештатных сотрудников к офисной сети;
- организовать соединение с шифрованием поверх открытой сети Wi-Fi.
Продукт OpenVPN Access Server совместим с открытой версией
Ниже показан пример настройки автоподключения, а также по логину и паролю. Чтобы создать виртуальную сеть:
- Подготовьте облако к работе.
- Создайте подсети и тестовую ВМ.
- Запустите сервер VPN.
- Настройте разрешения сетевого трафика.
- Получите пароль администратора.
- Активируйте лицензию.
- Создайте пользователя OpenVPN.
- Подключитесь к VPN.
Если сервер VPN больше не нужен, удалите ВМ.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры OpenVPN входят:
- плата за диски и постоянно запущенные виртуальные машины (см. тарифы Yandex Compute Cloud);
- плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud);
- плата за лицензию OpenVPN Access Server (при использовании более двух подключений).
Создайте подсети и тестовую ВМ
Для связи облачных ресурсов с интернетом необходимо иметь созданные сети и подсети.
Создайте тестовую виртуальную машину без публичного IP-адреса и подключите ее к подсети.
Запустите сервер VPN
Создайте ВМ, которая будет шлюзом VPN-подключений:
-
На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберитеВиртуальная машина
. -
В блоке Образ загрузочного диска в поле Поиск продукта введите
OpenVPN Access Server
и выберите публичный образ OpenVPN Access Server. -
В блоке Расположение выберите зону доступности, в которой уже находится тестовая ВМ.
-
В блоке Диски и файловые хранилища задайте размер загрузочного диска
20 ГБ
. -
В блоке Вычислительные ресурсы перейдите на вкладку
Своя конфигурация
и укажите необходимую платформу, количество vCPU и объем RAM:- Платформа —
Intel Ice Lake
. - vCPU —
2
. - Гарантированная доля vCPU —
100%
. - RAM —
2 ГБ
.
- Платформа —
-
В блоке Сетевые настройки:
-
В поле Подсеть выберите сеть и подсеть, к которым нужно подключить ВМ. Если нужной сети или подсети еще нет, создайте их.
-
В поле Публичный адрес оставьте значение
Автоматически
, чтобы назначить ВМ случайный внешний IP-адрес из пула Yandex Cloud, или выберите статический адрес из списка, если вы зарезервировали его заранее.Используйте только статические публичные IP-адреса из списка, или сделайте IP-адрес созданной машины статическим. Динамический IP-адрес может измениться после перезагрузки ВМ, и соединения перестанут работать.
-
Если доступен список Группы безопасности, выберите группу безопасности. Если оставить поле пустым, будет назначена группа безопасности по умолчанию.
-
-
В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:
- В поле Логин введите имя пользователя. Не используйте имя
root
или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте командуsudo
. -
В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.
Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
- Нажмите кнопку Добавить ключ.
- Задайте имя SSH-ключа.
- Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
- Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации.
Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя создаваемой виртуальной машины.
- В поле Логин введите имя пользователя. Не используйте имя
-
В блоке Общая информация задайте имя ВМ:
vpn-server
. -
Нажмите кнопку Создать ВМ.
-
Появится окно с информацией о типе тарификации: BYOL (Bring Your Own License). Нажмите кнопку Создать.
Настройте разрешения сетевого трафика
Группы безопасности работают как виртуальный брандмауэр для входящего и исходящего трафика. См. подробнее о группе безопасности по умолчанию.
-
Для работы OpenVPN Access Server добавьте следующие правила в группу безопасности по умолчанию:
Направление
трафикаОписание Диапазон портов Протокол Источник CIDR блоки Входящий VPN Server
443
TCP
CIDR
0.0.0.0/0
Входящий VPN Server
1194
UDP
CIDR
0.0.0.0/0
Входящий Admin Web UI,
Client Web UI
943
TCP
CIDR
0.0.0.0/0
Сервер VPN способен перенаправлять трафик с порта
HTTPS
, поэтому при необходимости оставьте открытым единственный портTCP 443
. См. также настройки на вкладке Configuration → Network Settings в административной панели сервера. -
Если вы настроили собственную группу безопасности, убедитесь, что в ней разрешен трафик между сервером VPN и требуемыми ресурсами. Например, они находятся в одной группе безопасности и создано правило Self для всей группы.
Получите пароль администратора
На сервере OpenVPN заранее создан пользователь openvpn
с административными правами. Пароль генерируется автоматически при создании виртуальной машины.
Получите пароль в выводе последовательного порта или в серийной консоли. Пароль отобразится в строке:
To login please use the "openvpn" account with <пароль> password.
Где <пароль>
— пароль пользователя openvpn
.
Для первого входа в административную панель используйте логин openvpn
и полученный пароль.
Если вы не получили пароль после первого запуска сервера VPN, необходимо заново создать ВМ с OpenVPN Access Server. При перезапусках пароль не отображается.
Активируйте лицензию
Примечание
Если у вас до двух VPN-подключений, используйте продукт бесплатно (активация не требуется).
Чтобы активировать лицензию:
- Создайте учетную запись на сайте openvpn.net
. - Введите код подтверждения, полученный по электронной почте.
- В окне Where would you like to Go? отметьте опцию Remember my choice и выберите продукт Access server.
- В окне Tell us more выберите назначение: Business use или Personal Use.
- На вкладке Subscriptions выберите максимальное количество подключений в поле How many VPN connections do you need? и нажмите кнопку Create.
- На экране отобразится ваша подписка: Subscription 1.
- Чтобы скопировать ключ активации, нажмите кнопку Copy Key в блоке Subscription Key.
Дождитесь перехода ВМ в статус RUNNING
и введите ключ активации в административной панели по адресу https://<публичный_IP-адрес_ВМ>/admin/
.
Публичный IP-адрес ВМ можно узнать в консоли управления
Создайте пользователя OpenVPN
OpenVPN Access Server предоставляет два веб-интерфейса:
- Client Web UI по адресу
https://<публичный_IP-адрес_ВМ>/
. Интерфейс предназначен для входа обычных пользователей, скачивания клиентских программ и профилей конфигурации. - Admin Web UI по адресу
https://<публичный_IP-адрес_ВМ>/admin/
. Интерфейс предназначен для настройки сервера.
Примечание
По умолчанию на сервер установлен самоподписанный сертификат. Если вам необходимо поменять сертификат, воспользуйтесь инструкцией
Чтобы создать пользователя, войдите в административную панель:
- Откройте в браузере URL вида
https://<публичный_IP-адрес_ВМ>/admin/
. - Введите имя пользователя
openvpn
и пароль (см. раздел про получение пароля администратора). - Ознакомьтесь с лицензионным соглашением и нажмите кнопку Agree. Откроется главный экран административной панели OpenVPN.
- Разверните вкладку User management и выберите пункт User permissions.
- В списке пользователей в поле New Username введите имя нового пользователя. Например:
test-user
. - В столбце More Settings нажмите значок карандаша и в поле Password введите пароль нового пользователя.
- Нажмите кнопку Save settings.
- Нажмите кнопку Update running server.
Подключитесь к VPN
В панели пользователя можно загрузить OpenVPN Connect
Чтобы убедиться, что соединение устанавливается и работает, подключитесь к VPN и выполните команду ping
для внутреннего адреса тестовой ВМ:
-
Установите
openvpn
с помощью менеджера пакетов:sudo apt update && sudo apt install openvpn
-
Разрешите для пользователя
test-user
автоматическое подключение:- Войдите в панель администратора по адресу
https://<публичный_IP-адрес_ВМ>/admin/
. - Откройте вкладку User management → User permissions.
- Включите опцию Allow Auto-login в строке пользователя.
- Войдите в панель администратора по адресу
-
Настройте маршрутизацию:
- Войдите в панель администратора по адресу
https://<публичный_IP-адрес_ВМ>/admin/
. - Откройте вкладку Configuration → VPN Settings.
- В блоке Routing отключите опцию Should client Internet traffic be routed through the VPN?
- Войдите в панель администратора по адресу
-
Скачайте профиль конфигурации:
- Откройте в браузере панель пользователя по адресу
https://<публичный_IP-адрес_ВМ>/
. - Войдите с помощью логина
test-user
и пароля. - В блоке Available Connection Profiles нажмите Yourself (autologin profile) и загрузите файл
profile-1.ovpn
. - Также файл конфигурации можно скачать в панели администратора по адресу
https://<<публичный_IP-адрес_ВМ>/admin/
.
- Откройте в браузере панель пользователя по адресу
-
Загрузите профиль конфигурации на машину с Linux:
scp profile-1.ovpn user@<IP-адрес>:~
-
Переместите профиль конфигурации в каталог
/etc/openvpn
:sudo mv /home/user/profile-1.ovpn /etc/openvpn
-
Поменяйте расширение файла
ovpn
наconf
:sudo mv /etc/openvpn/profile-1.ovpn /etc/openvpn/profile-1.conf
-
Закройте доступ к файлу:
sudo chown root:root /etc/openvpn/profile-1.conf sudo chmod 600 /etc/openvpn/profile-1.conf
-
VPN-соединение включится автоматически после перезагрузки. Чтобы запустить вручную, выполните команду:
sudo openvpn --config /etc/openvpn/profile-1.conf
Результат:
2022-04-05 15:35:49 DEPRECATED OPTION: --cipher set to 'AES-256-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'AES-256-CBC' to --data-ciphers or change --cipher 'AES-256-CBC' to --data-ciphers-fallback 'AES-256-CBC' to silence this warning. 2022-04-05 15:35:49 OpenVPN 2.5.1 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2021 2022-04-05 15:35:49 library versions: OpenSSL 1.1.1k 25 Mar 2021, LZO 2.10 2022-04-05 15:35:49 Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key 2022-04-05 15:35:49 Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication 2022-04-05 15:35:49 Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key 2022-04-05 15:35:49 Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication 2022-04-05 15:35:49 TCP/UDP: Preserving recently used remote address: [AF_INET]51.250.25.105:443 2022-04-05 15:35:49 Socket Buffers: R=[131072->131072] S=[16384->16384] 2022-04-05 15:35:49 Attempting to establish TCP connection with [AF_INET]51.250.25.105:443 [nonblock] ... ... 2022-04-05 15:35:54 Initialization Sequence Completed
-
Проверьте работу сети с помощью команды
ping
:sudo ping <внутренний_IP-адрес_тестовой_ВМ>
Если команда выполняется, доступ к ВМ через VPN есть.
-
Чтобы прервать подключение, установленное вручную, нажмите Ctrl + C.
-
Скачайте дистрибутив для установки:
- Откройте в браузере панель пользователя по адресу
https://<публичный_IP-адрес_ВМ>/
. - Войдите с помощью логина
test-user
и пароля. - Скачайте дистрибутив OpenVPN Connect версии 2 или версии 3, нажав на значок Windows.
- Откройте в браузере панель пользователя по адресу
-
Установите и запустите OpenVPN Connect.
-
VPN-соединение включится автоматически, если в профиле пользователя разрешен автоматический вход.
-
В приложение можно импортировать новый профиль конфигурации. Для этого укажите адрес
https://<публичный_IP-адрес_ВМ>/
или выберите файл с профилем. -
Откройте терминал и выполните команду
ping <внутренний_IP-адрес_тестовой_ВМ>
. Если команда выполняется, доступ к ВМ через VPN есть.
-
Скачайте дистрибутив для установки:
- Откройте в браузере панель пользователя по адресу
https://<публичный_IP-адрес_ВМ>/
. - Войдите с помощью логина
test-user
и пароля. - Скачайте дистрибутив OpenVPN Connect версии 2 или версии 3, нажав на значок Apple.
- Откройте в браузере панель пользователя по адресу
-
Установите и запустите OpenVPN Connect.
-
VPN-соединение включится автоматически, если в профиле пользователя разрешен автоматический вход.
-
В приложение можно импортировать новый профиль конфигурации. Для этого укажите адрес
https://<<публичный_IP-адрес_ВМ>/
или выберите файл с профилем. -
Откройте терминал и выполните команду
ping <внутренний_IP-адрес_тестовой_ВМ>
. Если команда выполняется, доступ к ВМ через VPN есть.
Как удалить созданные ресурсы
Удалите ресурсы, которые вы больше не будете использовать, чтобы за них не списывалась плата:
- Удалите ВМ
vpn-server
и тестовую ВМ. - Если вы зарезервировали публичный статический IP-адрес, удалите его.