Корпоративный 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
Скрипт:
- установит все необходимые пакеты
- добавит официальный репозиторий
- скачает и установит OpenVPN AS
- запустит сервис
- выведет данные для авторизации
После установки вы увидите примерно такую информацию:
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) Указываем ваш домен
4) Нажимаем кнопку Save сверху страницы
После сохранения можно заходить в панель уже по доменному имени.
Создание группы пользователей
1) Переходим в раздел Groups
2) Нажимаем справа сверху синюю кнопку Add New Group
3) Задаём название группы
4) Нажимаем Save
5) После этого нажимаем кнопку Restart
Откроется страница настроек созданной группы.
Здесь можно:
- включить обязательную 2FA
- запретить автологин
- настроить маршруты
- задать правила доступа
- ограничить сети
- настроить политики безопасности
Группы позволяют централизованно управлять параметрами пользователей.
Создание пользователя
1) Переходим в раздел Users
2) Нажимаем кнопку Add New User
3) В появившемся окне:
- придумываем логин
- выбираем группу
- Нажимаем Save
4) Нажимаем Restart
Откроется страница созданного пользователя.
Можно задать индивидуальные настройки, либо оставить параметры группы.
Обязательно задайте очень надёжный пароль, так как OpenVPN-серверы часто подвергаются попыткам брутфорса.
Используйте:
- не менее 12–16 символов
- буквы разного регистра
- цифры
- специальные символы
Проверка работы
Пользователь может получить файл .ovpn двумя способами.
Способ №1 - Ручной
Полезно, если нужен именно файл конфигурации для интеграции в устройства.
- Зайти на сайт - https://ваш-домен/
- Авторизироваться под своими данными
- Нажать кнопку Connection Profile
Также сайт автоматически определит платформу и предложит скачать официальный клиент OpenVPN.
Способ №2 - Автоматический
- Открыть официальный клиент OpenVPN Connect (можно скачать с сайта)
- Ввести домен сервера
- Ввести логин и пароль
- Выбрать Import autologin profile (если разрешено политикой)
- Нажать Import
Клиент автоматически скачает конфигурацию и установит её.
Останется нажать Connect.
Проверим работу в браузере:
Если подключение не работает
Проверить логи можно в панели администратора в разделе
Там отображаются:
- ошибки аутентификации
- проблемы сертификатов
- попытки брутфорса
- ошибки подключения клиентов
Выпуск сертификатов Let's Encrypt
1. Устанавливаем certbot
apt install certbot
Если у тебя 443 порт занят OpenVPN AS, то используем standalone с временной остановкой сервиса.
systemctl stop openvpnas
certbot certonly --standalone -d ms.tex-lab.ru
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']
Проверим в браузере:
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-технологий должно осуществляться в соответствии с действующим законодательством и внутренними правилами вашей организации.













