Установка Pritunl VPN на Rocky Linux 8
О чём эта инструкция
Pritunl — это open-source VPN-сервер с поддержкой OpenVPN и WireGuard, управлением пользователями и масштабированием для небольших и крупных инфраструктур. Сервер использует MongoDB как хранилище конфигурации и состояния. В руководстве показано развертывание Pritunl на Rocky Linux 8 и подключение Linux-клиента через командную утилиту.
Краткое определение: CIDR — формат записи сети (например, 192.168.238.0/24) для назначения адресов.
Преимущества Pritunl
- Поддержка OpenVPN и WireGuard.
- Веб-консоль для управления пользователями и серверами.
- Работа с реплицируемой MongoDB для кластеров.
- Клиенты доступны для многих платформ.
Похожие запросы, которые покрывает статья
- Установка Pritunl на Rocky Linux
- Настройка Pritunl с MongoDB
- Развертывание VPN с OpenVPN и WireGuard
Требования перед началом
- Сервер с Rocky Linux 8 для размещения Pritunl.
- Не-root пользователь с sudo-привилегиями.
- Домен, направленный на сервер (для автоматических SSL через Let’s Encrypt).
- Клиентская машина на Rocky Linux 8 для примера подключения.
- Обновите систему:
$ sudo dnf update- Установите базовые утилиты (пример — nano):
$ sudo dnf install nanoВажно: убедитесь, что у вас есть доступ к интернет-репозиториям и что системное время синхронизировано (ntp/chrony).
Шаг 1 — Настройка брандмауэра (Firewalld)
Rocky Linux использует firewalld. Проверьте статус:
$ sudo firewall-cmd --state
runningЕсли вы увидите “running”, служба активна. Далее мы будем работать в зоне public — это зона по умолчанию.
Проверьте список сервисов, разрешённых глобально:
$ sudo firewall-cmd --permanent --list-servicesРазрешите HTTP и HTTPS для доступа к веб-консоли и получению сертификатов:
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo firewall-cmd --reloadПроверьте текущие правила:
$ sudo firewall-cmd --permanent --list-allВы увидите зону public и список сервисов. Если у вас есть внешний балансировщик или cloud security group, убедитесь, что соответствующие порты также открыты там.
Important: для WireGuard и некоторых конфигураций OpenVPN потребуется открыть UDP-порт сервера (например, 1194 или кастомный порт).
Шаг 2 — Установка MongoDB
Pritunl хранит конфигурацию в MongoDB. Rocky Linux не содержит MongoDB в стандартных репозиториях, поэтому используем официальный репозиторий MongoDB 5.0.
Примечание: MongoDB 5.0 может требовать современных CPU. На старом оборудовании используйте совместимую версию MongoDB.
Создайте файл репозитория:
$ sudo nano /etc/yum.repos.d/mongodb-org-5.0.repoВставьте:
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.ascСохраните и установите пакет MongoDB:
$ sudo dnf install mongodb-org
$ sudo systemctl enable mongod --nowПроверка статуса MongoDB:
$ sudo systemctl status mongodЕсли MongoDB будет использоваться в продакшене и в кластере, настройте репликацию (replica set). Минимальная хорошая практика — 3 ноды в replica set. Синхронизация и мониторинг MongoDB — отдельная задача; ниже есть раздел с рекомендациями.
Шаг 3 — Установка Pritunl Server
Создайте репозиторий Pritunl:
$ sudo nano /etc/yum.repos.d/pritunl.repoВставьте:
[pritunl]
name=Pritunl Repository
baseurl=https://repo.pritunl.com/stable/yum/centos/8/
gpgcheck=1
enabled=1Установите EPEL, который требуется Pritunl:
$ sudo dnf install epel-releaseИмпортируйте GPG-ключ Pritunl для проверки пакетов:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
$ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmpУстановите Pritunl:
$ sudo dnf install pritunl
$ sudo systemctl enable pritunl --nowПроверьте версию:
$ pritunl version
pritunl vX.Y.Z(в примере версия будет той, что доступна в репозитории).
Увеличение лимита открытых файлов
При высокой нагрузке может потребоваться увеличить число открытых дескрипторов:
$ sudo sh -c 'echo "* hard nofile 64000" >> /etc/security/limits.conf'
$ sudo sh -c 'echo "* soft nofile 64000" >> /etc/security/limits.conf'
$ sudo sh -c 'echo "root hard nofile 64000" >> /etc/security/limits.conf'
$ sudo sh -c 'echo "root soft nofile 64000" >> /etc/security/limits.conf'Если MongoDB установлена на отдельной машине, примените эти изменения и там.
Шаг 4 — Доступ к веб-консоли и первоначальная настройка
Откройте в браузере:
http://
Современные браузеры автоматически перенаправляют на HTTPS. При первом запуске можно получить предупреждение о сертификате — временно обойти его.
При первом запуске Pritunl обнаружит MongoDB URI автоматически.

Сгенерируйте ключ настройки и введите его в веб-интерфейсе:
$ sudo pritunl setup-key
eacbd641982048fd9a60cdf09f7ebaa3После сохранения будет выполнено обновление базы и откроется экран входа.

Создайте учётку администратора по умолчанию:
$ sudo pritunl default-password
[INFO] Getting default administrator password
Administrator default password:
username: "pritunl"
password: "" Войдите и замените пароль администратора на сложный. В поле Lets Encrypt Domain укажите ваш домен — Pritunl попытается автоматически получить SSL-сертификат.

После настройки вы сможете открыть консоль по адресу https://pritunl.example.com.
Шаг 5 — Создание организации, сервера и пользователей
Добавьте организацию в разделе Users (Пользователи) → Add Organization.

Добавьте пользователя (индивидуально или массово) — PIN необязателен, используется для двухфакторной аутентификации.

Далее добавьте сервер в разделе Servers → Add Server.

Поля, которые важно понимать:
- Port: порт сервера VPN. Откройте его в брандмауэре/SG.
- DNS: DNS-серверы для клиентов (Google/OpenDNS/свои).
- Virtual Network: приватный диапазон IP для VPN-клиентов (например, 192.168.238.0/24).
- Virtual WG Network: диапазон для WireGuard — должен совпадать с Virtual Network по CIDR.
- Enable WireGuard: если включено, сервер будет использовать WireGuard.
- WG Port: порт WireGuard (UDP).
- Enable Google Authenticator: включает двухфакторную аутентификацию для всех клиентов сервера.
- Enable IPv6: выдача частных IPv6-адресов клиентам.
Привяжите организацию к серверу и запустите сервер.


Открытие порта VPN в брандмауэре
Если ваш сервер использует, например, порт 18412 (UDP):
$ sudo firewall-cmd --permanent --add-port=18412/udp
$ sudo firewall-cmd --reloadПроверьте, что порт открыт в внешнем firewall или security group облака.
Шаг 6 — Установка клиента Pritunl
Pritunl предлагает GUI и CLI клиенты. В примере используется CLI-клиент.
Установите EPEL (если ещё не установлен) и репозиторий Pritunl:
$ sudo dnf install epel-release
$ sudo tee -a /etc/yum.repos.d/pritunl.repo << EOF
[pritunl]
name=Pritunl Stable Repository
baseurl=https://repo.pritunl.com/stable/yum/centos/8/
gpgcheck=1
enabled=1
EOFИмпортируйте GPG-ключ и установите клиент:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
$ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
$ sudo dnf install pritunl-clientШаг 7 — Подключение клиента к серверу
Получите временный профиль из веб-консоли (Users → профиль → Temporary profile link).

Добавьте профиль на клиенте:
$ pritunl-client add pritunl://example.com/ku/2hd6S6UgПроверьте список профилей:
$ pritunl-client list
+----------------------------------+-------------------------+--------------+----------------+----------------+
| ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS |
+----------------------------------+-------------------------+--------------+----------------+----------------+
| wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | Disconnected | - | - |
+----------------------------------+-------------------------+--------------+----------------+----------------+Запустите подключение (можно указывать первые 3 символа ID):
$ pritunl-client start wki --mode=ovpn --password=PINOTPПояснения:
- –mode=ovpn указывает режим OpenVPN.
- Если включён Google Authenticator, используйте OTP вместе с PIN: –password=PINOTP (например 54321456789).
Проверьте список ещё раз — в колонке ONLINE FOR появится время, а в SERVER ADDRESS и CLIENT ADDRESS — соответствующие адреса.
Командная утилита Pritunl на сервере
Pritunl предоставляет встроенные команды для обслуживания.
Восстановление базы данных
Остановите Pritunl:
$ sudo systemctl stop pritunlЗапустите восстановление:
$ sudo pritunl repair-databaseПерезапустите службу:
$ sudo systemctl start pritunlЭто удалит логи, сбросит статические IP пользователей и остановит серверы. Используйте в случаях повреждения данных.
Сброс учётных данных администратора
Сбросит имя и пароль администратора на pritunl и удалит SSO/2FA для администратора:
$ sudo pritunl reset-passwordСмена порта веб-консоли
По умолчанию Pritunl использует 443. Для изменения:
$ sudo pritunl set app.server_port 8443Отключение перенаправления HTTP → HTTPS (и автоматического получения Let’s Encrypt):
$ sudo pritunl set app.redirect_server falseБезопасность и hardening (рекомендации)
- Используйте отдельную MongoDB с replica set для отказоустойчивости и доступа по защищённой сети.
- Включите SELinux в режиме Enforcing и протестируйте политику.
- Ограничьте доступ к веб-консоли по IP (через firewalld или внешние ACL).
- Используйте сильные пароли и двухфакторную аутентификацию для админов.
- Регулярно обновляйте пакеты OS, MongoDB и Pritunl.
- В продакшене отключите прямой доступ к MongoDB из интернета; используйте только внутреннюю сеть или туннель.
Резервное копирование и восстановление
- Резервную копию MongoDB делайте с помощью mongodump или снимков томов (snapshot).
- Перед обновлением Pritunl снимайте бэкап базы Pritunl (эскпорт MongoDB).
- Тестируйте восстановление на отдельной стендовой среде.
Mini-методология бэкапа:
- Ежедневный логический дамп mongodump (ротация 7 дней).
- Еженедельный снапшот тома (snapshot) и проверка восстановления.
- Хранение метаданных и конфигураций в защищённом хранилище.
Высокая доступность и масштабирование
- MongoDB: Replica set (минимум 3 ноды) для устойчивости к отказам.
- Pritunl: запускайте несколько инстансов Pritunl, указывая общую MongoDB. Pritunl синхронизирует состояние через MongoDB.
- Балансировка: используйте балансировщик для веб-консоли и UDP-лаунчей (если требуется). Учтите, что stateful VPN-сессии иногда требуют sticky-сессий.
Мониторинг и SLI/SLO (на уровне практики)
- Метрики: количество активных подключений, нагрузка CPU/RAM, задержки сети, диск/IO.
- Логи: системные логи Pritunl и MongoDB — собирайте в централизованную систему (ELK/Prometheus+Grafana).
- Оповещения: деградация доступности сервиса, падение MongoDB node, критические ошибки при auth.
Руководство по отладке (частые проблемы)
Проблема: веб-консоль просит ключ, но ключ не генерируется.
Решение: проверьте связь с MongoDB и проверьте логи /var/log/pritunl.Проблема: клиент не может подключиться (timeout).
Решение: проверьте, открыт ли UDP-порт в firewalld и внешнем security group; проверьте, слушает ли pritunl процесс нужный порт.Проблема: не выдаётся SSL через Let’s Encrypt.
Решение: убедитесь, что порт 80 открыт и домен корректно резолвится на сервер. Также проверьте app.redirect_server и лог Pritunl для ошибок получения сертификата.
Ролевые чеклисты
Администратор (до развертывания):
- Проверить требования (CPU, RAM, диск).
- Настроить домен и DNS.
- Подготовить отдельную MongoDB (реплика).
Оператор (развёртывание):
- Установить MongoDB и Pritunl.
- Настроить правила брандмауэра.
- Настроить резервное копирование.
Пользователь (подключение):
- Получить временный профиль от администратора.
- Установить pritunl-client.
- Подключиться и протестировать доступ к ресурсам.
План запуска в продакшн (высокоуровневый)
- Подготовить инфраструктуру: 3 ноды MongoDB, 2+ ноды Pritunl, балансировщик.
- Настроить брандмауэры и приватные сети.
- Установить Pritunl, выполнить smoke-тесты.
- Подключить 5 pilot-пользователей, собрать обратную связь.
- Запустить миграцию/включение для всех пользователей.
Критерии приёмки
- Публичная веб-консоль доступна по HTTPS на рабочем домене.
- Клиент успешно подключается и получаетIP из Virtual Network.
- Резервное копирование MongoDB проходит успешно.
- Нагрузочные тесты: соединения в пределах ожидаемой нагрузки.
Частые вопросы (FAQ)
Q: Можно ли использовать Pritunl без MongoDB на отдельной машине?
A: Нет — Pritunl требует MongoDB для хранения конфигурации. Можно развернуть MongoDB локально на том же сервере, но для продакшна рекомендуется отдельный реплика-сет.
Q: Как переключиться на WireGuard?
A: При создании или редактировании сервера включите опцию Enable WireGuard и укажите WG Port и Virtual WG Network.
Q: Можно ли настроить двухфакторную аутентификацию?
A: Да — поставьте галочку Enable Google Authenticator в конфигурации сервера и инструктируйте пользователей настроить Authenticator app.
Примеры команд — шпаргалка
# Проверить статус firewalld
$ sudo firewall-cmd --state
# Открыть HTTP/HTTPS
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo firewall-cmd --reload
# Открыть порт WireGuard (пример)
$ sudo firewall-cmd --permanent --add-port=51820/udp
$ sudo firewall-cmd --reload
# Генерация setup key
$ sudo pritunl setup-key
# Сброс пароля администратора
$ sudo pritunl reset-passwordЗаключение
Вы развернули Pritunl на Rocky Linux 8, настроили MongoDB, открыли необходимые порты и подключили клиент. Для продакшн-окружения рекомендуются отдельный replica set MongoDB, резервное копирование, мониторинг и строгие политики доступа к веб-консоли.
Если хотите продолжить, изучите официальную документацию Pritunl по интеграции с LDAP/SSO, расширенной настройке WireGuard и автоматизации развертываний.
Краткое резюме:
- Pritunl требует MongoDB и настроек брандмауэра.
- Для отказоустойчивости используйте replica set и несколько инстансов Pritunl.
- Настройте резервное копирование и мониторинг.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента