Руководство пользователя VPNaaS

Для создания сервера VPN необходима лицензия VPNaaS. Как только данная лицензия будет получена, появится вкладка в левом боковом меню VPNaaS.

Что нужно для создания VPN сервера

  1. В проекте должна быть хотя бы одна внешняя сеть с маршрутизацией в интернет (желательно с публичным адресом).

    • Если публичный адрес есть — именно он будет точкой входа для внешних подключений пользователей к сетям облака.

    • Если его нет, то создаваемый VPN сервер сам определяет публичный адрес маршрутизатора через Dynamic DNS. В этом случае нужно будет открыть выбранный порт на маршрутизаторе для перенаправления трафика на внутренний адрес.

    • При создании VPN сервер также получит и DNS-имя, по которому можно будет инициировать подключения.

  2. Нужно убедиться, что в списке образов в проекте доступен образ с тэгом vpn-image. ВМ на его основе и будет являться VPN-сервером.

Как создать сервер VPN

  1. Перейти в раздел VPNaaS.

../../../../_images/vpn_serv.png
  1. Нажать Создать VPN сервер.

  2. Выбрать имя и внешнюю сеть (см. предыдущий пункт).

  3. Подождать около 5 минут.

Настройка VPN сервера

  1. Нажать в реестре VPN серверов на имя сервера.

  2. Откроется страница деталей сервера (эта страница считается базовой точкой отсчёта).

../../../../_images/vpn_settings.png
  1. Доступные действия:

    • Просмотр логов сервера (Лог сервера).

    • Изменение имени и описания (Редактировать).

  2. В секции Подробности нажать Изменить настройки.

  3. Доступные параметры:

    • Site-to-site режим

      По умолчанию сервер работает в клиентском режиме (динамические адреса для клиентов, доступ к подсетям облака, NAT для ВМ). В режиме site-to-site сервер становится прозрачным, клиенты и ВМ видят подсети друг друга, адреса статичны. Часто применяется для объединения географически разнесённых сегментов.

    • TURN-proxy

      Позволяет серверу принимать подключения даже без публичного адреса/открытого порта, используя доверенный сервер в Azure. Подключение по SSTP через DNS-имя TURN-прокси.

    • Пользовательский TURN-proxy

      Включается при активации TURN-proxy. Позволяет указать собственный сервер, порт и пароль для прокси в вашей инфраструктуре.

    • Порты UDP

      Определяет список портов UDP для VPN соединений. VPNaaS слушает все протоколы на одних и тех же портах. Например, 1194 может использоваться и для OpenVPN, и для WireGuard.

    • Порты TCP

      Аналогично UDP. Важно: порт 443/TCP закрывать нельзя, через него происходит настройка сервера.

    • Общий секретный ключ (PSK)

      Для IPSec-протоколов указывается Pre-shared key.

    • Протоколы

      Выбор доступных протоколов (список отличается для client и site-to-site режима).

Клиентский режим

Если выбран клиентский режим работы сервера, в деталях сервера доступна секция Hub. В ней доступны следующие настройки:

../../../../_images/vpn_hub.png
  1. Авторизация — интеграция с внешними службами. Варианты:

    1. Keystone — авторизация через облако moncloud (логины и пароли пользователей проекта).

    2. Radius — требует настройки сервера, порта и общего ключа.

    3. Windows AD/ND — авторизация через Active Directory/ND, требует указания сервера, порта и ключа.

    4. LDAP — требует указания сервера, DN, фильтров. Пример сервера: ldap://ipa.demo1.freeipa.org. Пользователь указывается полностью, например: uid=admin,cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org. Base DN: dc=demo1,dc=freeipa,dc=org. Фильтр для проверки принадлежности к группе: «cn=vpn-office,cn=groups,dc=demo1,dc=freeipa,dc=org».

  2. Включен шлюз — при активации весь трафик клиента выходит через VPN сервер. Для доступа только к сетям облака параметр рекомендуется выключить.

  3. DNS и резервный DNS — указываются DNS-серверы для туннельного интерфейса VPN соединения.

  4. CIDR подсети — диапазон адресов для клиентов в нотации CIDR.

  5. Дополнительные маршруты — задаются дополнительные сети, доступные через VPN (например, MGMT-сеть VPN сервера или другие сети организации). Будьте внимательны и не допускайте пересечения адресов с подключенными подсетями облака и клиентской подсетью.

  6. Лимит пользователей WireGuard — резервирование статических адресов под клиентов WG. Протокол WireGuard не поддерживает динамическое выделение адресов. Если WG не планируется использовать, рекомендуется выставить 0.

Режим site-to-site

../../../../_images/vpn_bridge.png

Если выбран site-to-site режим работы сервера, в деталях сервера доступна секция Bridge. В ней доступны следующие настройки:

  1. Дополнительные маршруты (right subnet) — добавление подсетей, доступных через VPN (например, MGMT-сеть VPN сервера или другие сети организации). Будьте внимательны и не допускайте пересечения адресов с подключенными подсетями облака и клиентской подсетью.

  2. Подсети для пользователя (left subnet) — назначение клиентских подсетей, видимых в облаке через гейтвей в режиме прозрачности. Эти подсети принадлежат инфраструктуре клиента. Для каждого пользователя список подсетей задаётся отдельно. Для связи site-to-site между двумя клиентами подсети соседа нужно указать в «Дополнительных маршрутах».

Подключение подсетей

../../../../_images/vpn_subnet.png
  1. Нажать в реестре VPN серверов на имя сервера.

  2. Открыть вкладку Подсети. Здесь отображаются все подсети проекта с external=False (исключая подсети VPN серверов).

  3. Нажать на троеточие у выбранной подсети и выбрать Подключить/Отключить. После этого маршрут к выбранной подсети будет добавлен/удален у клиентов. Подсеть не обязана иметь роутер в качестве гейтвея (если его нет, то он будет подключен автоматически).

Пользователи

Создание пользователя:

../../../../_images/vpn_user_create.png
  1. Нажать Создать пользователя.

  2. Задать имя (уникальное) и опционально описание.

  3. Выбрать метод авторизации:

    1. Без пароля — небезопасный вариант (только для WireGuard). OpenVPN авторизует с любым паролем, остальные - не авторизуют вовсе.

    2. По паролю — стандартный вариант. Работает со всеми протоколами, кроме WireGuard.

    3. LDAP/Keystone/Radius/Windows AD/ND — при включённых внешних сервисах.

  4. Установить ограничения (максимальное число TCP-сессий, входящая/исходящая пропускная способность в Мбит/с). Ограничения применяются к одному пользователю.

  5. Указать количество создаваемых пользователей. Если больше 1, имена будут: <имя>_<номер>. Политики из п.4 применяются к каждому пользователю отдельно. При создании нескольких пользователей с паролем, пароль у всех будет одинаковым.

  6. Указать группу. У пользователя может быть только одна группа.

../../../../_images/vpn_user.png

Редактирование пользователя: Через меню (троеточие). Можно изменить все поля, сбросить их или заполнить заново.

Удаление пользователя: Через меню (троеточие) -> Удалить пользователя.

Деактивация/Активация: Через меню (троеточие). Деактивация запрещает подключение, но не разрывает активные соединения. Чтобы разорвать соединения, нужно перейти во вкладку Подключения и отключить пользователя там.

Скачивание конфигурации:

Через детали сервера:

../../../../_images/vpn_conf.png
  1. Нажать на троеточие в правом верхнем углу деталей сервера.

  2. Выбрать Скачать конфигурацию.

  3. Выбрать протокол (WireGuard или OpenVPN).

  4. Выбрать пользователя/пользователей (для OpenVPN в режиме site-to-site или WireGuard). Конфиги нескольких пользователей скачиваются архивом.

Альтернативно для WireGuard:

  1. Перейти в детали пользователя, нажав на его имя.

  2. Нажать Загрузить конфиг Wireguard в панели справа.

Сброс конфигурации (WireGuard): Через меню (троеточие) -> Сбросить конфигурацию. Позволяет выдать новый конфиг, не меняя политик.

Добавление пользователя в группу: Через меню (троеточие) -> Добавить пользователей в группу -> выбрать группу.

Удаление пользователя из группы: Через меню (троеточие) -> Исключить из группы.

Массовые операции над пользователями: Операции «Исключить из группы», «Добавить пользователей в группу», «Удалить», «Активировать», «Деактивировать», «Сбросить конфигурацию» доступны в верхней панели вкладки Пользователи. Для использования нужно выбрать несколько пользователей (кружок рядом с именем) и нажать соответствующую кнопку.

Группы пользователей

Создание группы:

  1. Нажать Создать группу.

  2. Задать уникальное имя и опционально описание.

  3. Установить ограничения (максимальное число TCP-сессий, входящая/исходящая пропускная способность в Мбит/с). Ограничения применяются ко всем пользователям в группе СУММАРНО.

Редактирование группы: Через меню (троеточие). Можно изменить все поля.

Деактивация/активация группы: Через меню (троеточие). Деактивация запрещает подключение всем пользователям группы (независимо от их личного статуса), но не разрывает активные соединения.

Удаление группы: Через меню (троеточие) -> Удалить группу.

Массовые операции над группами: Операции «Удалить», «Активировать», «Деактивировать» доступны в верхней панели вкладки Группы. Нужно выбрать несколько групп (кружок рядом с именем) и нажать кнопку.

Создание пользователя сразу в группе: 1. Перейти в детали группы, нажав на её имя. 2. Нажать Создать пользователя. Группа будет уже выбрана.

Добавление пользователей в группу: 1. Перейти в детали группы, нажав на её имя. 2. Нажать Добавить пользователей в группу. 3. Выбрать пользователей (видны только те, кто не в этой группе) и нажать ОК.

Управление подключениями

Во вкладке Подключения отображаются все пользователи, которые когда-либо подключались.

../../../../_images/vpn_conn.png
  • Статус «Активен» — пользователь подключен. Подробности в Открытые сессии, статистика в Статистика подключения.

  • Принудительное отключение — через меню (троеточие) на карточке активного пользователя -> Отключить.

  • Массовое отключение — поддерживается через выбор нескольких пользователей в верхней панели.

ACL

По умолчанию в VPNaaS любой трафик разрешен.

Создание ACL:

  1. Нажать Создать ACL.

  2. Указать параметры:

    • Описание — произвольное описание.

    • Приоритет — меньшее число = выше приоритет.

    • Заблокировать — флаг для запрещающего правила.

    • Протокол — TCP, UDP или IP (для всех протоколов).

    • Диапазон портов отправителя/назначения — например, 80 или 80:100.

    • Адрес подсети отправителя/назначения (CIDR) — например, 10.100.2.0/24 или 10.100.2.12/32 для хоста.

    • Пользователь/группа отправителя или получателя — можно указать вместо адреса, если отправитель/получатель — клиент VPN.

Примеры правил:

Пример 1. Ограничение доступа к серверу бухгалтерии (192.168.10.5/32). Запрет всем, кроме группы Accountants. Правило-запрет (приоритет 10, протокол IP, адрес назначения 192.168.10.5/32). Правило-исключение (приоритет 5, протокол TCP, порт назначения 445, адрес назначения 192.168.10.5/32, отправитель: группа Accountants).

Пример 2. Запрет доступа клиентов VPN (10.100.2.0/24) к офисной сети (10.50.0.0/16) в режиме site-to-site. Приоритет 50, протокол IP, адрес отправителя 10.100.2.0/24, адрес назначения 10.50.0.0/16, флаг «Заблокировать» включен.

Пример 3. Блокировка torrent-трафика (порты 6881–6889 TCP) для всех. Приоритет 100, протокол TCP, порт назначения 6881:6889, флаг «Заблокировать» включен.

Пример 4. Изоляция клиентов (запрет общения внутри подсети 10.100.2.0/24). Приоритет 10, протокол IP, адрес отправителя 10.100.2.0/24, адрес назначения 10.100.2.0/24, флаг «Заблокировать» включен. После него должно быть разрешающее правило с низким приоритетом.

Пример 5. RDP-доступ (3389/TCP) только для admin_john к серверу 172.16.10.10. Правило-запрет для всех (приоритет 20, протокол TCP, порт назначения 3389, адрес назначения 172.16.10.10/32). Правило-исключение (приоритет 10, протокол TCP, порт назначения 3389, адрес назначения 172.16.10.10/32, отправитель: пользователь admin_john).