Установка и настройка Pritunl VPN на Ubuntu 20.04
Введение

Pritunl — это открытый и простой в эксплуатации VPN-сервер, который позволяет быстро виртуализировать приватные сети между дата-центрами и конечными устройствами. Он предоставляет удобную веб-консоль, официальные клиенты и совместимость с OpenVPN-конфигурациями для большинства платформ.
В этом руководстве подробно описаны шаги по установке Pritunl на Ubuntu 20.04 (сервер) и по подключению клиента Pritunl на рабочей станции (Desktop). Включены проверочные команды, рекомендации по безопасности, варианты отладки и контрольные списки для ролей.
Что нужно иметь перед началом
- Сервер с Ubuntu 20.04 (можно виртуальная машина или облачный инстанс).
- Клиентская машина с Ubuntu 20.04 Desktop (или другая ОС с поддержкой Pritunl/OpenVPN).
- Доступ root или пользователь с sudo.
- Открытый порт 443/TCP для веб-интерфейса Pritunl (или настроенный прокси/SSL).
Важно: если сервер находится за облачным балансировщиком, убедитесь, что проброс портов и правила безопасности позволяют доступ к порту 443.
Ключевая идея и подход
Ментальная модель: Pritunl — это менеджер OpenVPN-профилей с веб-интерфейсом и сервисом, который хранит метаданные в MongoDB. Pritunl генерирует OpenVPN-конфигурации для пользователей и управляет серверами/организациями. Установка состоит из трёх этапов: установка Pritunl, установка MongoDB, первичная настройка через веб-мастер.
Когда это не подходит: если вам нужна строгая интеграция с корпоративными LDAP/AD или вам необходимы проприетарные функции коммерческих VPN-решений, возможно, стоит рассмотреть другие продукты.
Альтернативы: OpenVPN community + вручную подконтрольные конфиги, WireGuard для простой, высокопроизводительной VPN, коммерческие решения (например, Cisco, Palo Alto) для крупных корпоративных сред.
Обновление системы и зависимости
Перед началом рекомендуется обновить пакеты:
apt-get update -yЗатем установите зависимости:
apt-get install curl gnupg2 wget unzip -yПосле этого можно переходить к установке Pritunl.
Установка Pritunl на Ubuntu 20.04
Pritunl отсутствует в стандартных репозиториях Ubuntu, поэтому нужно добавить GPG-ключи и репозиторий.
Добавьте ключи Pritunl:
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv E162F504A20CDF15827F718D4B7C549A058F8B6B
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292AДобавьте репозиторий:
echo "deb http://repo.pritunl.com/stable/apt focal main" | tee /etc/apt/sources.list.d/pritunl.listОбновите кэш и установите Pritunl:
apt-get update -y
apt-get install pritunl -yЗапустите и включите автозапуск:
systemctl start pritunl
systemctl enable pritunlПроверка статуса сервиса:
systemctl status pritunlОжидаемый результат — активный (running) сервис pritunl. Дополнительно проверьте слушающие порты:
ss -antpl | grep pritunlОбычно Pritunl слушает порт 443 для веб-интерфейса и локальный порт для внутреннего API.
Установка MongoDB
Pritunl использует MongoDB для хранения метаданных, поэтому установите MongoDB 4.4 (примеры для apt-репозитория MongoDB):
curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -Добавьте репозиторий MongoDB:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.listУстановите сервер MongoDB (как в исходном материале):
apt-get update -y
apt-get install mongodb-server -yЗапустите и включите автозапуск:
systemctl start mongodb
systemctl enable mongodbПроверьте статус и то, что MongoDB слушает порт 27017 локально:
systemctl status mongodb
ss -antpl | grep 27017Совет по безопасности: по умолчанию MongoDB слушает на localhost. Не открывайте порт 27017 в интернет без авторизации и TLS.
Первичная настройка через веб-интерфейс
Откройте в браузере:
https://
Вы увидите мастер установки Pritunl.

Сгенерируйте ключ в терминале сервера:
pritunl setup-keyСкопируйте вывод и вставьте ключ в веб-мастере, затем сохраните.
Сгенерируйте пароль администратора по умолчанию:
pritunl default-passwordСкопируйте имя пользователя и пароль (обычно username: “pritunl”) и выполните вход в веб-интерфейс.
Далее при желании смените пароль администратора и добавьте организацию, пользователя и сервер (интерфейс шаг за шагом).
Работа с организациями и пользователями
- Создайте организацию (Organization).
- Добавьте пользователя: укажите имя и PIN — это будет требоваться при подключении.
- Перейдите в Servers и добавьте сервер: задайте порт, DNS, виртуальную сеть.
- Прикрепите организацию к серверу и запустите сервер.
Из интерфейса можно скачивать профили пользователей (.tar с .ovpn) для импорта в клиент.

Установка клиента Pritunl на рабочую станцию
На клиентской машине (Ubuntu Desktop) добавьте ключи и репозиторий Pritunl так же, как на сервере:
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv E162F504A20CDF15827F718D4B7C549A058F8B6B
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A
echo "deb http://repo.pritunl.com/stable/apt focal main" | tee /etc/apt/sources.list.d/pritunl.list
apt-get update -y
apt-get install pritunl-client-electron -yПосле установки откройте приложение Pritunl Client из меню приложений.
Подключение клиента к серверу
В веб-интерфейсе Pritunl откройте вкладку Users и скачайте профиль пользователя (обычно tar-архив):

Распакуйте архив на клиенте:
tar -xvf user1.tarВы увидите файл .ovpn, например myorg_user1_server1.ovpn.
Импортируйте этот файл в Pritunl Client: в приложении нажмите Import Profile и укажите путь к .ovpn. Затем подключитесь, введя PIN пользователя, заданный при создании.

Проверьте интерфейс tun0 после подключения:
ifconfig tun0Ожидаемый вывод покажет адрес в виртуальной сети (пример из источника):
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.237.2 P-t-P:192.168.237.2 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:3752 errors:0 dropped:0 overruns:0 frame:0
TX packets:3847 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2399700 (2.3 MB) TX bytes:807236 (807.2 KB)Чтобы убедиться, что весь трафик идёт через VPN, откройте https://whatismyipaddress.com/ — там должен отображаться IP сервера.

Рекомендации по безопасности и твики для продакшна
- Защитите веб-интерфейс HTTPS сертификатом (Let’s Encrypt) или используйте обратный прокси (Nginx/HAProxy) с TLS.
- Отключите доступ к MongoDB извне — оставьте 127.0.0.1 или используйте туннелирование/сетевые политики.
- Смените пароль администратора по умолчанию и отключите учетную запись по умолчанию, если не нужна.
- Настройте резервное копирование конфигурации и базы данных (см. раздел «Резервное копирование и восстановление»).
- Включите системные механизмы защиты: fail2ban, ограничение SSH по IP, регулярные обновления безопасности.
Пример проброса TLS через Nginx (альтернатива встроенному HTTPS):
- Установите nginx.
- Настройте server блок, который проксирует / на локальный 127.0.0.1:443 Pritunl и обслуживает TLS с сертификатом.
Важно: корректная настройка прокси требует правильной пересылки заголовков и работы с сокетами WebSocket, если Pritunl использует их для веб-консоли.
Резервное копирование и восстановление
Минимальная политика резервного копирования:
- Экспортировать конфигурации Pritunl (если доступна команда экспорт/backup).
- Резервировать директории /var/lib/pritunl и /etc/pritunl.
- Дамп MongoDB (mongodump) для метаданных.
Пример создания дампа MongoDB:
mkdir -p /root/pritunl-backups
mongodump --out /root/pritunl-backups/$(date +%F)Для восстановления используйте mongorestore и восстановите файлы Pritunl из резервной копии.
Отладка и часто встречающие ошибки
Проверочные команды и советы:
- Просмотр логов Pritunl:
journalctl -u pritunl -f- Просмотр логов MongoDB:
journalctl -u mongodb -f- Проверка, что порты действительно слушаются:
ss -antpl | egrep "pritunl|mongod"Типичные проблемы и решения:
Проблема: веб-интерфейс недоступен по HTTPS.
- Проверьте, что сервис pritunl запущен.
- Убедитесь, что порт 443 открыт в firewall (ufw/iptables) и на облачном уровне.
- Если используете прокси, проверьте корректность конфигурации.
Проблема: клиент не подключается, пишет, что профиль не подходит.
- Проверьте, что скачанный .ovpn соответствует нужному серверу и пользователю.
- Убедитесь, что PIN введён правильно.
Проблема: MongoDB не стартует после установки.
- Проверьте конфигурацию /etc/mongodb.conf и логи.
- Убедитесь, что в системе достаточно места и нет конфликтов портов.
Методология развёртывания — быстрый SOP
- Подготовьте сервер: обновление, базовые утилиты.
- Установите MongoDB и проверьте локальный доступ.
- Установите Pritunl, запустите сервис.
- Пройдите веб-мастер: setup-key, default-password, смена пароля.
- Создайте Organization → User → Server.
- Экспортируйте профиль, импортируйте в клиенте и протестируйте.
- Настройте SSL/прокси и политики доступа.
- Внедрите резервное копирование и мониторинг.
Критерии приёмки
- Веб-интерфейс Pritunl доступен по HTTPS с корректным сертификатом.
- MongoDB работает и слушает локально на 127.0.0.1:27017.
- Создана хотя бы одна организация и пользователь, пользователь может импортировать профиль и подключиться.
- Трафик с клиента проходит через сервер (проверка внешнего IP).
- Наличие резервной копии конфигурации и дампа MongoDB.
Роль-ориентированные контрольные списки
Администратор перед развёртыванием:
- Обновление ОС выполнено
- Открыт доступ по SSH и настроен брандмауэр
- Резервное копирование логики оговорено
Оператор при запуске:
- MongoDB запущен и слушает локально
- Pritunl запущен и отвечает
- Веб-мастер пройден, создан администратор
Обычный пользователь при подключении:
- Скачан и распакован .tar профиль
- Импортирован .ovpn в клиент Pritunl
- Введён PIN и установлен туннель
- Проверен внешний IP
Короткое руководство по тестовым сценариям
- TC-01: Установить Pritunl и MongoDB, открыть веб-мастер — успешный выход на страницу мастера.
- TC-02: Создать организацию и пользователя, скачать профиль — файл .ovpn присутствует.
- TC-03: Подключить клиента — интерфейс tun0 появляется и имеет IP из виртуальной сети.
- TC-04: Проверить доступ к ресурсам внутри виртуальной сети через VPN.
Дополнительные подходы и расширенные темы
- Использовать WireGuard вместо OpenVPN для упрощения конфигурации и повышения производительности, если Pritunl не обязателен.
- Интеграция с LDAP/AD для централизованного управления учетными записями (проверяйте поддержку версией Pritunl).
- Автоматизация развёртывания через Ansible/Terraform для масштабируемых сред.
Быстрый чек-лист перед передачей в эксплуатацию
- TLS для веб-интерфейса настроен
- MongoDB недоступен из интернета
- Резервное копирование работает
- Мониторинг логов и сервисов настроен
- Пользователь протестировал подключение
Заключение
Поздравляю! Вы установили и настроили Pritunl VPN на Ubuntu 20.04, настроили MongoDB, создали организацию и пользователя, импортировали профиль на клиент и успешно подключились. В руководстве приведены рекомендации по безопасности, резервному копированию и отладке. Если нужно, помогу адаптировать этот процесс под ваши требования: автоматизация, интеграция с LDAP, настройка высокодоступного кластера или настройка обратного прокси с Let’s Encrypt.
Важно: после запуска следите за обновлениями безопасности для Ubuntu, Pritunl и MongoDB и регулярно тестируйте резервные копии.