Гид по технологиям

Установка Pritunl VPN на Rocky Linux 8

• 8 min read • VPN • Обновлено 18 Nov 2025
Pritunl VPN на Rocky Linux 8 — установка и настройка
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

Требования перед началом

  1. Сервер с Rocky Linux 8 для размещения Pritunl.
  2. Не-root пользователь с sudo-привилегиями.
  3. Домен, направленный на сервер (для автоматических SSL через Let’s Encrypt).
  4. Клиентская машина на Rocky Linux 8 для примера подключения.
  5. Обновите систему:
$ sudo dnf update
  1. Установите базовые утилиты (пример — 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 автоматически.

Экран настройки базы данных Pritunl

Сгенерируйте ключ настройки и введите его в веб-интерфейсе:

$ sudo pritunl setup-key
eacbd641982048fd9a60cdf09f7ebaa3

После сохранения будет выполнено обновление базы и откроется экран входа.

Экран входа Pritunl

Создайте учётку администратора по умолчанию:

$ sudo pritunl default-password
[INFO] Getting default administrator password
Administrator default password:
  username: "pritunl"
  password: ""

Войдите и замените пароль администратора на сложный. В поле Lets Encrypt Domain укажите ваш домен — Pritunl попытается автоматически получить SSL-сертификат.

Экран начальной настройки Pritunl

После настройки вы сможете открыть консоль по адресу https://pritunl.example.com.

Шаг 5 — Создание организации, сервера и пользователей

Добавьте организацию в разделе Users (Пользователи) → Add Organization.

Добавление организации в Pritunl

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

Добавление пользователя в Pritunl

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

Добавление сервера в Pritunl

Поля, которые важно понимать:

  • 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-адресов клиентам.

Привяжите организацию к серверу и запустите сервер.

Привязка организации и запуск сервера

Запуск сервера Pritunl

Открытие порта 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-методология бэкапа:

  1. Ежедневный логический дамп mongodump (ротация 7 дней).
  2. Еженедельный снапшот тома (snapshot) и проверка восстановления.
  3. Хранение метаданных и конфигураций в защищённом хранилище.

Высокая доступность и масштабирование

  • 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.
  • Подключиться и протестировать доступ к ресурсам.

План запуска в продакшн (высокоуровневый)

  1. Подготовить инфраструктуру: 3 ноды MongoDB, 2+ ноды Pritunl, балансировщик.
  2. Настроить брандмауэры и приватные сети.
  3. Установить Pritunl, выполнить smoke-тесты.
  4. Подключить 5 pilot-пользователей, собрать обратную связь.
  5. Запустить миграцию/включение для всех пользователей.

Критерии приёмки

  • Публичная веб-консоль доступна по 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.
  • Настройте резервное копирование и мониторинг.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро