Žiadny popis

root e0b24dc1e0 remove debug, update readme 2 mesiacov pred
addons e0b24dc1e0 remove debug, update readme 2 mesiacov pred
html 0721828ad1 Added editing of ccd files from the web interface 2 mesiacov pred
LICENSE.txt 14790c276e license changed to MIT 8 mesiacov pred
README.md e0b24dc1e0 remove debug, update readme 2 mesiacov pred

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-файл конфигурации пользователя

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