Установка

Перед установкой приложения у вас должен быть OpenVPN-сервер. Руководства по установке OpenVPN-сервера для разных операционных систем:

  1. CentOS 7.
  2. Ubuntu 18.04 (на английском).

Технические требования

  • Популярный дистрибутив Linux: CentOS, RHEL, Ubuntu, ArchLinux и т. п.
  • Easy RSA 3.x (как установить).
  • Java 8.

1. Устанавливаем зависимости

CentOS

yum -y install java-1.8.0 wget

Ubuntu/Debian

apt update
apt install openjdk-8-jre

2. Распаковываем дистрибутив

unzip dfov-x.x.x.zip -d /opt/dfov

3. Подготавливаем файл конфигурации и исполняемый файл

cd /opt/dfov
cp application.properties-dist application.properties
ln -s dfov-X.X.X dfov.jar

Вместо X.X.X должна быть версия приложения, которую вы устанавливаете.

4. Настраиваем конфигурацию OpenVPN-сервера

Чтобы OpenVPN вёл реестр действующих и отозванных сертификатов, необходимо включить опцию crl-verify. Также потребуется активировать интерфейс управления.

Добавляем в /etc/openvpn/server.conf строчки:

crl-verify /etc/openvpn/easy-rsa/pki/crl.pem

management localhost 7501

Далее генерируем crl-файл:

$ cd /etc/openvpn/easy-rsa
$ ./easyrsa gen-crl

Обновляем права доступа:

chown -R openvpn: /etc/openvpn
chmod o+r /etc/openvpn/easy-rsa/pki/crl.pem

Рестартуем сервер:

systemctl restart openvpn@server

5. Подготавливаем файл сервиса для systemd

cd /opt/dfov
cp files/dfov.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable dfov

6. Даём дополнительные права пользователю openvpn

Приложение работает от имени пользователя openvpn.

Чтобы приложение могло управлять службой OpenVPN и читать информацию для проверки лицензии, нужно дать дополнительные права в системе. Последнее правило позволит пользователю openvpn читать серийный номер материнской платы сервера — он необходим чтобы сгенерировать уникальный серверный ключ.

Запускаем утилиту visudo и добавляем строчки:

openvpn ALL=NOPASSWD: /usr/bin/systemctl start openvpn@server
openvpn ALL=NOPASSWD: /usr/bin/systemctl stop openvpn@server
openvpn ALL=NOPASSWD: /usr/bin/systemctl status openvpn@server
openvpn ALL=NOPASSWD: /usr/bin/cat /sys/devices/virtual/dmi/id/board_serial

7. Делаем базовую настройку (application.properties)

В файле конфигурации application.properties указываем:

  • superadmin.password — пароль пользователя superadmin для входа в приложение.
  • management.endpoints.web.cors.allowed-origins=http://vpn.yourcompany.ru — указываем адрес, с которого разрешены запросы к приложению. Например, https://server.

Остальные настройки будут работать для большинства инсталляций. Примеры настроек с комментариями хранятся в файле application.properties-dist, который поставляется в составе дистрибутива приложения.

Указываем путь к ключу для TLS (опционально)

Если вы используете TLS, то необходимо указать путь к ключу:

openvpn.tls-auth-key=/etc/openvpn/ta.key

8. Запускаем приложение

chown -R openvpn: /opt/dfov

systemctl enable dfov
systemctl start dfov

Открываем в браузере адрес https://адрес-сервера:8080 и входим под пользователем superadmin.

Установка лицензионного ключа (опционально)

Если у вас куплена лицензия, то для установки ключа необходимо зайти в web-интерфейс приложения, страницу Настройки, вкладку Разное.