Перейти к основному контенту

Корпоративный VPN на базе Debian и OpenVPN AS

Введение

В этой инструкции показана установка и первичная настройка OpenVPN Access Server на сервере под управлением Linux.

OpenVPN AS - это коммерческая VPN-платформа с удобной веб-панелью управления, поддержкой пользователей и групп, встроенной двухфакторной аутентификацией и автоматическим выпуском сертификатов.

Бесплатная лицензия OpenVPN Access Server позволяет:

  • до 2 одновременных подключений
  • базовый функционал
  • использование без коммерческой лицензии

Если требуется больше подключений, то необходимо приобрести лицензию.

⚠️ Важно ⚠️

Данная инструкция предназначена для:

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

Инструкция не позиционируется как средство обхода блокировок или ограничений доступа к запрещённым ресурсам.
Использование VPN должно осуществляться в рамках действующего законодательства РФ.

Ответственность за использование программного обеспечения лежит на владельце сервера.

Установка

В инструкции будет использоваться домен ms.tex-lab.ru и IP сервера 62.173.138.27 как пример. Обязательно замените их на свои реальные домен и IP при настройке.

Обновление системы
apt update
apt upgrade

Обязательно обновите систему, так как без актуальных пакетов может не установиться DCO (Data Channel Offload) и другие зависимости.

Установка OpenVPN Access Server

Запускаем официальный установочный скрипт:

bash <(curl -fsS https://packages.openvpn.net/as/install.sh) --yes

image.png

Скрипт:

  1. установит все необходимые пакеты
  2. добавит официальный репозиторий
  3. скачает и установит OpenVPN AS
  4. запустит сервис
  5. выведет данные для авторизации

После установки вы увидите примерно такую информацию:

Access Server Web UIs are available here:
Admin UI:  https://62.173.138.27:943/admin
Client UI: https://62.173.138.27:943/

To login please use the "openvpn" account with "УНИКАЛЬНЫЙ_ПАРОЛЬ" password.
(password can be changed on Admin UI)
Настройка DNS

В панели домена создаём следующую запись:

A-запись

  • Тип: A
  • Имя: ms
  • Значение: 62.173.138.27

Привязка домена к серверу

Это удобно, если потребуется сменить IP-адрес - тогда клиентские конфигурации не придётся перевыпускать.

1) Авторизируемся в панели администратора

2) Переходим в раздел VPN Server

3) Указываем ваш домен

image.png

4) Нажимаем кнопку Save сверху страницы

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

Создание группы пользователей

1) Переходим в раздел Groups

2) Нажимаем справа сверху синюю кнопку Add New Group

3) Задаём название группы

image.png

4) Нажимаем Save

5) После этого нажимаем кнопку Restart

Откроется страница настроек созданной группы.

image.png

Здесь можно:

  • включить обязательную 2FA
  • запретить автологин
  • настроить маршруты
  • задать правила доступа
  • ограничить сети
  • настроить политики безопасности

Группы позволяют централизованно управлять параметрами пользователей.

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

1) Переходим в раздел Users

2) Нажимаем кнопку Add New User

3) В появившемся окне:

  • придумываем логин
  • выбираем группу
  • Нажимаем Save

image.png

4) Нажимаем Restart

Откроется страница созданного пользователя.

image.png

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

Обязательно задайте очень надёжный пароль, так как OpenVPN-серверы часто подвергаются попыткам брутфорса.

Используйте:

  • не менее 12–16 символов
  • буквы разного регистра
  • цифры
  • специальные символы

image.png

Проверка работы

Пользователь может получить файл .ovpn двумя способами.

Способ №1 - Ручной

Полезно, если нужен именно файл конфигурации для интеграции в устройства.

  1. Зайти на сайт - https://ваш-домен/
  2. Авторизироваться под своими данными
  3. Нажать кнопку Connection Profile

image.png

Также сайт автоматически определит платформу и предложит скачать официальный клиент OpenVPN.

Способ №2 - Автоматический

  1. Открыть официальный клиент OpenVPN Connect (можно скачать с сайта)
  2. Ввести домен сервера
  3. Ввести логин и пароль
  4. Выбрать Import autologin profile (если разрешено политикой)
  5. Нажать Import

image.png

Клиент автоматически скачает конфигурацию и установит её.

Останется нажать Connect.

image.png

Проверим работу в браузере:

image.png

Если подключение не работает

Проверить логи можно в панели администратора в разделе 

Там отображаются:

  • ошибки аутентификации
  • проблемы сертификатов
  • попытки брутфорса
  • ошибки подключения клиентов

image.png

Выпуск сертификатов Let's Encrypt

1. Устанавливаем certbot

apt install certbot

Если у тебя 443 порт занят OpenVPN AS, то используем standalone с временной остановкой сервиса.

systemctl stop openvpnas
certbot certonly --standalone -d ms.tex-lab.ru

image.png

systemctl start openvpnas

2. Подключаем сертификат к OpenVPN AS

После выпуска сертификаты лежат тут: /etc/letsencrypt/live/ms.tex-lab.ru/

Дальше импортируем их в AS:

cd /etc/letsencrypt/live/ms.tex-lab.ru/
/usr/local/openvpn_as/scripts/sacli --key "cs.priv_key" --value_file "privkey.pem" ConfigPut
/usr/local/openvpn_as/scripts/sacli --key "cs.cert" --value_file "fullchain.pem" ConfigPut
cat fullchain.pem privkey.pem > bundle.pem
/usr/local/openvpn_as/scripts/sacli --key "cs.ca_bundle" --value_file "bundle.pem" ConfigPut
/usr/local/openvpn_as/scripts/sacli start

Если все удачно, то получим такой вывод:

RunStart warm None
{
  "errors": {
    "web": [
      {
        "component": null,
        "description": "",
        "message": "process started successfully",
        "severity": "ok",
        "tag": "WEBSVC_PROCESS_SUCCESS"
      }
    ]
  },
  "last_restarted": "Thu Feb 26 19:40:21 2026",
  "service_status": {
    "acme": "on",
    "api": "on",
    "auth": "on",
    "bridge": "on",
    "client_query": "restarted",
    "crl": "on",
    "daemon_pre": "on",
    "db_push": "on",
    "dnsproxy": "on",
    "log": "on",
    "nf6tables_live": "on",
    "nf6tables_openvpn": "on",
    "nftables_api": "on",
    "nftables_live": "on",
    "nftables_openvpn": "on",
    "nftables_web": "restarted",
    "openvpn_0": "on",
    "openvpn_1": "on",
    "openvpn_2": "on",
    "openvpn_3": "on",
    "openvpn_4": "on",
    "openvpn_5": "on",
    "openvpn_6": "on",
    "openvpn_7": "on",
    "subscription": "on",
    "user": "on",
    "web": "restarted"
  }
}
WILL_RESTART ['web', 'client']

Проверим в браузере:

image.png

3. Автоматическое продление

Certbot уже добавляет в cron/systemd автообновление сертификатов с проверкой 2 раза в день, но OpenVPN AS сам не применит новый сертификат. Поэтому нужно добавить deploy-hook, чтобы после перевыпуска сертификат применялся в AS.

Создаем файл:

/etc/letsencrypt/renewal-hooks/deploy/openvpnas.sh

Вставляем и прописываем свои данные:

#!/bin/bash

DOMAIN="ms.tex-lab.ru"
LE_PATH="/etc/letsencrypt/live/$DOMAIN"
SACLI="/usr/local/openvpn_as/scripts/sacli"

$SACLI --key "cs.priv_key" --value_file "$LE_PATH/privkey.pem" ConfigPut
$SACLI --key "cs.cert" --value_file "$LE_PATH/cert.pem" ConfigPut
$SACLI --key "cs.ca_bundle" --value_file "$LE_PATH/chain.pem" ConfigPut
$SACLI start

Делаем исполняемым:

chmod +x /etc/letsencrypt/renewal-hooks/deploy/openvpnas.sh

Защита OpenVPN AS

Access Server автоматически:

  • генерирует собственный центр сертификации (CA)
  • выпускает клиентские сертификаты
  • управляет TLS-параметрами
  • защищает панель администратора
  • контролирует попытки входа
  • поддерживает 2FA

Дополнительно рекомендуется:

  • сменить стандартный порт
  • закрыть доступ к 943 порту по IP
  • использовать firewall

Заключение

По завершении всех шагов у вас получен работоспособный VPN-сервер на базе OpenVPN Access Server, готовый к безопасной эксплуатации в рамках ваших бизнес- или технических задач. Сервер позволяет централизованно управлять доступом, пользователями и группами, а также предоставляет удобные методы получения клиентских конфигураций для различных платформ.

Обратите внимание, что использование VPN-технологий должно осуществляться в соответствии с действующим законодательством и внутренними правилами вашей организации.