Установка

Перед установкой приложения у вас должен быть установлен 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-интерфейс приложения, страницу Настройки, вкладка Разное.