Поиск по сайту:

Как настроить VPN-сервер Pritunl на Rocky Linux 8


На этой странице

  1. Предпосылки
  2. Шаг 1. Настройка брандмауэра
  3. Шаг 2. Установите MongoDB
  4. Шаг 3. Установите сервер Pritunl.
    1. Увеличить лимит открытых файлов

    1. Включить порт в брандмауэре

    1. Восстановить базу данных
    2. Сброс учетных данных
    3. Изменить порт веб-консоли

    Pritunl — это сервер VPN и IPsec с открытым исходным кодом, с управлением пользователями и горизонтальным масштабированием для малых и крупных организаций. Это дает пользователю возможность использовать протоколы OpenVPN и Wireguard. Он поставляется с простым в использовании графическим интерфейсом и поддерживает клиентов на большинстве устройств и платформ. Весь трафик между клиентами и сервером шифруется. Pritunl построен на MongoDB, надежной и масштабируемой базе данных, которую можно быстро развернуть и которая имеет встроенную поддержку репликации, что упрощает развертывание кластера Pritunl.

    В этом руководстве вы узнаете, как установить VPN-сервер Pritunl на Rocky Linux 8. Мы также рассмотрим, как подключиться к VPN с помощью клиента Linux.

    Предпосылки

    1. A system running Rocky Linux 8 for hosting Pritunl server.

    2. A non-root user with sudo privileges.

    3. A domain name pointed to the server.

    4. A system running Rocky Linux 8 as a client.

    5. Make sure everything is updated.

      $ sudo dnf update
      
    6. Install any prerequisites.

      $ sudo dnf install nano
      

    Шаг 1. Настройте брандмауэр

    Rocky Linux использует Firewalld Firewall. Проверьте состояние брандмауэров.

    $ sudo firewall-cmd --state
    running
    

    Это указывает на то, что он успешно запущен.

    Брандмауэр работает с разными зонами, и общедоступная зона является зоной по умолчанию, которую мы будем использовать. Перечислите все службы и порты, активные на брандмауэре.

    $ sudo firewall-cmd --permanent --list-services
    

    Он должен показать следующий вывод.

    dhcpv6-client mdns ssh
    

    Разрешить порты HTTP и HTTPS.

    $ sudo firewall-cmd --permanent --add-service=http
    $ sudo firewall-cmd --permanent --add-service=https
    

    Перепроверьте состояние брандмауэра.

    $ sudo firewall-cmd --permanent --list-all
    

    Вы должны увидеть аналогичный вывод.

    public
      target: default
      icmp-block-inversion: no
      interfaces:
      sources:
      services: cockpit dhcpv6-client http https ssh
      ports: 
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:
    

    Перезагрузите брандмауэр, чтобы изменения вступили в силу.

    $ sudo firewall-cmd --reload
    

    Шаг 2 — Установите MongoDB

    Pritunl построен на основе базы данных MongoDB, поэтому сначала нам нужно ее установить. Rocky Linux не поставляется с MongoDB, поэтому нам нужно использовать официальный репозиторий MongoDB.

    Примечание. MongoDB 5.0 работает только на более новых процессорах. Если ваш сервер работает на более старом оборудовании, вам следует выбрать более старую версию MongoDB или переключиться на более новый сервер.

    Создайте и откройте файл /etc/yum.repos.d/mongodb-org-5.0.repo для редактирования.

    $ 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
    

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса после завершения.

    Установите МонгоДБ.

    $ sudo dnf install mongodb-org
    

    Включите и запустите службу MongoDB.

    $ sudo systemctl enable mongod --now
    

    Шаг 3 — Установите сервер Pritunl

    Первый шаг — создать официальный репозиторий для Pritunl. Создайте и откройте файл /etc/yum.repos.d/pritunl.repo для редактирования.

    $ 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
    

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса после завершения.

    Сначала установите репозиторий 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
    

    Установите Притунл.

    $ sudo dnf install pritunl
    

    Проверьте версию Pritunl.

    $ pritunl version
    pritunl v1.30.2960.4
    

    Включите и запустите службу Pritunl.

    $ sudo systemctl enable pritunl --now
    

    Увеличить лимит открытых файлов

    Выполните следующие команды, чтобы увеличить лимит открытых файлов на сервере. Это предотвратит любые проблемы с подключением в случае высокой нагрузки. Если вы установили MongoDB на отдельный сервер, вам необходимо выполнить эти команды на этом сервере.

    $ 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'
    

    Шаг 4. Доступ и настройка Pritunl

    Вы можете запустить Pritunl, введя http:/// в браузере. Современные браузеры пытаются получить доступ к HTTPS-версии каждого сайта, поэтому вам нужно будет обойти ошибку конфиденциальности, выдаваемую браузером.

    Вы получите следующий экран при первом запуске URL.

    Он автоматически захватывает URI MongoDB. Для ключа установки выполните следующую команду.

    $ sudo pritunl setup-key
    eacbd641982048fd9a60cdf09f7ebaa3
    

    Введите сгенерированный ключ на сайте и нажмите кнопку Сохранить. Это обновит базу данных и откроет экран входа в систему.

    Выполните следующую команду, чтобы сгенерировать информацию для входа по умолчанию.

    $ sudo pritunl default-password
    [undefined][2021-11-08 22:34:55,255][INFO] Getting default administrator password
    Administrator default password:
      username: "pritunl"
      password: "krZQLlH9U7P1"
    

    Введите данные для входа и войдите в систему. Вы получите следующий экран настройки.

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

    Теперь вы можете запустить сервер, используя доменное имя, введя https://pritunl.example.com в браузере.

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

    Следующим шагом будет добавление организации для вашей VPN. Перейдите на вкладку «Пользователи» и нажмите кнопку «Добавить организацию».

    Нажмите кнопку «Добавить», чтобы продолжить.

    Следующим шагом будет добавление пользователя. Есть два варианта. Вы можете добавлять пользователей по одному или массово. Сейчас мы собираемся добавить одного пользователя. Нажмите на кнопку «Добавить пользователя».

    Поле PIN не является обязательным и используется, если вы собираетесь использовать двухфакторную аутентификацию. ПИН-код состоит только из цифр.

    После настройки организации и пользователей перейдите на вкладку «Серверы» и нажмите кнопку «Добавить сервер».

    Порт: Вы можете добавить любой порт, который будет использовать сервер. Убедитесь, что указанный вами порт открыт для всего входящего трафика в группе безопасности.

    DNS: вы можете добавить либо Google DNS, либо OpenDNS.

    Виртуальная сеть: вы можете добавить частный IP-адрес в это поле, но убедитесь, что его не использует какой-либо другой ресурс. Клиентам будут выделены IP-адреса из этого диапазона.

    Виртуальная сеть WG: сетевые адреса WireGuard для частной сети, которая будет назначена клиентам WireGuard. Он должен иметь тот же блок CIDR, что и виртуальная сеть.

    Включить WireGuard: если этот флажок установлен, будет использоваться WireGuard вместо OpenVPN. Однако в нашем руководстве мы будем использовать OpenVPN, поэтому не устанавливайте этот флажок.

    Порт WG: этот порт будет использоваться для соединений WireGuard. Его следует использовать только тогда, когда мы включили опцию WireGuard.

    Включить Google Authenticator: чтобы использовать двухэтапную проверку, включите этот параметр. Если эта опция включена на сервере, все клиенты этого сервера должны каждый раз проверять OTP перед подключением к VPN.

    Включить IPv6: включает DNS-серверы IPv6. Клиентам предоставляются частные IPv6-адреса.

    Нажмите кнопку «Добавить», чтобы закончить.

    Нажмите кнопку «Добавить организацию», чтобы связать организацию с вновь созданным сервером.

    Нажмите кнопку Start Server, чтобы запустить VPN.

    Включить порт в брандмауэре

    Чтобы принимать подключения от клиента через порт VPN, нам нужно включить его через наш брандмауэр.

    $ sudo firewall-cmd --permanent --add-port=18412/udp
    $ sudo firewall-cmd --reload
    

    Шаг 6 - Установите клиент Pritunl

    Теперь, когда наш сервер запущен и работает, пришло время установить клиент и подключиться к VPN. Pritunl предлагает два типа клиентов — командную строку и клиент с графическим интерфейсом.

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

    Установите репозиторий EPEL, необходимый клиенту Pritunl.

    $ sudo dnf install epel-release
    

    Добавьте официальный репозиторий Pritunl в вашу систему Rocky Linux.

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

    На вкладке пользователей сайта сервера Pritunl получите ссылку на временный профиль для подключения к клиенту.

    Скопируйте временную ссылку URI из последней записи.

    Введите следующую команду на клиентском терминале, чтобы добавить профиль.

    $ pritunl-client add pritunl://example.com/ku/2hd6S6Ug
    

    Убедитесь, что вы добавили ссылку на профиль, скопированную ранее, после add в команде.

    Проверьте список добавленных профилей.

    $ pritunl-client list
    +----------------------------------+-------------------------+--------------+----------------+----------------+
    |                ID                |          NAME           |  ONLINE FOR  | SERVER ADDRESS | CLIENT ADDRESS |
    +----------------------------------+-------------------------+--------------+----------------+----------------+
    | wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | Disconnected | -              | -              |
    +----------------------------------+-------------------------+--------------+----------------+----------------+
    

    Выполните следующую команду, чтобы подключиться к профилю. Вам не нужно использовать полный идентификатор профиля в команде. Просто используйте первые 3 буквы идентификатора профиля, чтобы сослаться на него.

    $ pritunl-client start wki --mode=ovpn --password=PINOTP
    

    • Чтобы указать режим OPVN, добавьте в команду флаг --mode=ovpn.
    • Если вы включили параметр Google Authenticator, вам необходимо настроить его с помощью Google Authenticator или клиента Authy.
    • Чтобы указать PIN-код и код двухфакторной аутентификации, используйте в команде флаг --password=PINOTP. Например, если пин-код — 54321, а OTP-код — 456789, используйте флаг --password=54321456789 в приведенной выше команде. Если вы используете только PIN-код, используйте флаг --password=PIN.

    Запустите команду list еще раз, чтобы проверить, работает ли соединение.

    $ pritunl-client list
    +----------------------------------+-------------------------+------------+----------------+----------------+
    |                ID                |          NAME           | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS |
    +----------------------------------+-------------------------+------------+----------------+----------------+
    | wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | 6 secs     | 178.62.233.196 | 192.168.238.2  |
    +----------------------------------+-------------------------+------------+----------------+----------------+
    

    Вы успешно подключились к Pritunl VPN.

    Командная строка Pritunl

    Сервер Pritunl поставляется с инструментом командной строки, который можно использовать для выполнения некоторых основных операций.

    Восстановить базу данных

    Вы можете использовать Pritunl для восстановления базы данных и разрешить восстановление поврежденной или несогласованной базы данных.

    Во-первых, остановите сервер Pritunl.

    $ sudo systemctl stop pritunl
    

    Восстановите базу данных.

    $ sudo pritunl repair-database
    

    Перезапустите службу Pritunl.

    $ sudo systemctl start pritunl
    

    Команда repair-database очистит все журналы, сбросит все статические виртуальные IP-адреса пользователей и переведет все серверы в остановленное состояние.

    Сбросить учетные данные

    Следующая команда вернет имя пользователя и пароль администратора к pritunl. Он также удалит все настройки единого входа и двухэтапной аутентификации для пользователя-администратора, если они включены.

    $ sudo pritunl reset-password
    

    Изменить порт веб-консоли

    По умолчанию Pritunl работает на порту 443. Если вы хотите изменить его, используйте следующую команду.

    $ sudo pritunl set app.server_port 8443
    

    Pritunl запускает веб-сервер на порту 80 для проверки Lets Encrypt и перенаправляет HTTP-запросы на HTTPS. Вы можете отключить перенаправление с помощью следующей команды. Это также предотвратит использование сертификатов Lets Encrypt.

    $ sudo pritunl set app.redirect_server false
    

    Заключение

    На этом мы завершаем наше руководство по настройке и использованию VPN-сервера Pritunl на сервере Rocky Linux 8. Если вы хотите узнать больше о Pritunl, вы можете ознакомиться с его официальной документацией. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.