# OpenVPN Status Monitor Проект предоставляет веб-интерфейс для мониторинга состояния OpenVPN сервера. ## Возможности - Отображение подключенных пользователей в реальном времени - Управление доступом: - Блокировка/разблокировка пользователей (ban/unban) - Создание сертификата клиента - Удаление конфигурационного файла клиента - Отзыв сертификата клиента - Редактирование серверных конфигов клиента - Генерация конфигурационных файлов для клиентов (открыть ссылку /ccd в браузере) - Автоматическое обновление данных (каждые 30 секунд) ## !!!Важно!!! Каталог /ccd надо либо не устанавливать вообще, либо закрыть паролем через вэб-сервер. Пользователи, которым выдаёте доступ должны совпадать с логином клиента в впн-сервере. Тогда пользователь при обращении на данную ссылку сможет получить свой конфигурационный файл. Базу авторизации делать не стал специально - проще использовать авторизацию в вэб-сервере. Каталог /admin - закрывайте паролем обязательно. ## Требования - Сервер с OpenVPN - Веб-сервер Apache2 - PHP 7.4+ - Доступ к управляющему интерфейсу OpenVPN ## Установка ### Установите необходимые пакеты: ```bash apt install apache2 php php-mbstring a2enmod session ``` ### Настройте OpenVPN: ```bash echo "management 127.0.0.1 3003 /etc/openvpn/server/password" >> /etc/openvpn/server/server1.conf echo "your_password" > /etc/openvpn/server/password ``` ### Установите скрипты: ```bash 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 Если какие-то опции не используются - значение долно быть пустым ```php '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-файл конфигурации пользователя Для скачивания конфигурации клиента нажмите на имя пользователя