Нет описания

DmitrievRoman ea048e1aa6 Added regeneration of expired certificates 19 часов назад
addons ea048e1aa6 Added regeneration of expired certificates 19 часов назад
html ea048e1aa6 Added regeneration of expired certificates 19 часов назад
LICENSE.txt 14790c276e license changed to MIT 9 месяцев назад
README.md e0b24dc1e0 remove debug, update readme 2 месяцев назад

README.md

OpenVPN Status Monitor

Проект предоставляет веб-интерфейс для мониторинга состояния OpenVPN сервера.

Возможности

  • Отображение подключенных пользователей в реальном времени
  • Управление доступом:
    • Блокировка/разблокировка пользователей (ban/unban)
    • Создание сертификата клиента
    • Удаление конфигурационного файла клиента
    • Отзыв сертификата клиента
    • Редактирование серверных конфигов клиента
  • Генерация конфигурационных файлов для клиентов (открыть ссылку /ccd в браузере)
  • Автоматическое обновление данных (каждые 30 секунд)

!!!Важно!!!

Каталог /ccd надо либо не устанавливать вообще, либо закрыть паролем через вэб-сервер.
Пользователи, которым выдаёте доступ должны совпадать с логином клиента в впн-сервере.
Тогда пользователь при обращении на данную ссылку сможет получить свой конфигурационный файл.
Базу авторизации делать не стал специально - проще использовать авторизацию в вэб-сервере.

Каталог /admin - закрывайте паролем обязательно.

Требования

  • Сервер с OpenVPN
  • Веб-сервер Apache2
  • PHP 7.4+
  • Доступ к управляющему интерфейсу OpenVPN

Установка

Установите необходимые пакеты:

apt install apache2 php php-mbstring
a2enmod session

Настройте OpenVPN:

echo "management 127.0.0.1 3003 /etc/openvpn/server/password" >> /etc/openvpn/server/server1.conf
echo "your_password" > /etc/openvpn/server/password

Установите скрипты:

cp addons/sudoers.d/www-data /etc/sudoers.d/
mkdir -p /etc/openvpn/server/cmd
cp addons/cmd/*.sh /etc/openvpn/server/cmd/
chmod 755 /etc/openvpn/server/cmd/
chmod 555 /etc/openvpn/server/cmd/*.sh

Создайте шаблон конфигурации клиента (без сертификатов) в каталоге сайта.

Отредактируйте файл конфигурации config.php

Здесь name - это имя сервиса в systemd!!! т.е. если сервис называется openvpn-server@server1, то name=server1

Если какие-то опции не используются - значение долно быть пустым

'server1' => [
    'name' => 'server1',
    'title' => 'Server1',
    'config' => '/etc/openvpn/server/server.conf',
    'ccd' => '/etc/openvpn/server/server/ccd',
    'port' => '3003',
    'host' => '127.0.0.1',
    'password' => 'password',
    'cfg_template' => 'server1.ovpn.template',
    'cert_index' => '/etc/openvpn/server/server/rsa/pki/index.txt',
    'ipp_file' => '/etc/openvpn/server/server/ipp.txt'
],

Использование

Откройте веб-интерфейс в браузере

Для управления пользователями используйте кнопки:

Ban - заблокировать пользователя

Unban - разблокировать пользователя

Revoke - отозвать сертификат

Remove - удалить ccd-файл конфигурации пользователя

Для скачивания конфигурации клиента нажмите на имя пользователя