Впервые увидел и попробовал очень удобную панель управления для OpenVPN. Если быть точным, то это скорее панель наблюдения за пользователями OpenVPN сервера. Речь пойдёт про проект openvpn-monitor.
С его помощью можно посмотреть следующую информацию о пользователях:
▪️имя пользователя;
▪️время подключения;
▪️внутренний и внешний IP пользователя;
▪️суммарный трафик;
▪️время подключения и соответственно время онлайна;
▪️расположение пользователя на географический карте.
При желании пользователя можно отключить через веб интерфейс.
Openvpn-monitor представляет из себя веб интерфейс, написанный на Python, запущенный через обычный веб сервер Nginx или Apache. Информацию о пользователях он берёт через стандартную management console сервера OpenVPN. Её надо включить. Для этого достаточно добавить в конфиг сервера:
или
Не забудьте ограничить доступ к консоли с помощью файрвола. Можно ещё паролем закрыть, но я бы не рассчитывал только на него. Лучше полностью скрыть. Также можно открыть доступ к ней через unix socket. Подробности в документации.
Openvpn-monitor можно запускать на любой машине, откуда будет доступ к открытой консоли. Проще всего запустить её в Docker, чтобы не устанавливать все пакеты и зависимости, хотя такая возможность тоже есть. Можно посмотреть в документации.
Я тестировал в Docker. Показываю сразу рабочий вариант, на котором я остановился:
Здесь указана широта и долгота Москвы как стартовая точка на карте и IP адрес VPN сервера. SITES_0 задаёт параметры одного сервера. Можно в одну панель добавить несколько, задавая настройки соответственно SITES_1_, SITES_2_ и т.д.
Это вся настройка. Теперь можно идти в IP интерфейс на порт 8181 и смотреть информацию о пользователях. Не забудьте его тоже скрыть от посторонних глаз либо за Firewall, либо за любой веб сервер с режимом обратного прокси. Встроенной аутентификации у openvpn-monitor нет.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#openvpn
С его помощью можно посмотреть следующую информацию о пользователях:
▪️имя пользователя;
▪️время подключения;
▪️внутренний и внешний IP пользователя;
▪️суммарный трафик;
▪️время подключения и соответственно время онлайна;
▪️расположение пользователя на географический карте.
При желании пользователя можно отключить через веб интерфейс.
Openvpn-monitor представляет из себя веб интерфейс, написанный на Python, запущенный через обычный веб сервер Nginx или Apache. Информацию о пользователях он берёт через стандартную management console сервера OpenVPN. Её надо включить. Для этого достаточно добавить в конфиг сервера:
management 127.0.0.1 5555или
management 0.0.0.0 5555Не забудьте ограничить доступ к консоли с помощью файрвола. Можно ещё паролем закрыть, но я бы не рассчитывал только на него. Лучше полностью скрыть. Также можно открыть доступ к ней через unix socket. Подробности в документации.
Openvpn-monitor можно запускать на любой машине, откуда будет доступ к открытой консоли. Проще всего запустить её в Docker, чтобы не устанавливать все пакеты и зависимости, хотя такая возможность тоже есть. Можно посмотреть в документации.
Я тестировал в Docker. Показываю сразу рабочий вариант, на котором я остановился:
# docker run -d --name openvpn-monitor \ -e OPENVPNMONITOR_DEFAULT_DATETIMEFORMAT="%%d/%%m/%%Y" \ -e OPENVPNMONITOR_DEFAULT_LATITUDE=55 \ -e OPENVPNMONITOR_DEFAULT_LONGITUDE=37 \ -e OPENVPNMONITOR_DEFAULT_MAPS=True \ -e OPENVPNMONITOR_DEFAULT_MAPSHEIGHT=500 \ -e OPENVPNMONITOR_DEFAULT_SITE=Test \ -e OPENVPNMONITOR_SITES_0_ALIAS=UDP \ -e OPENVPNMONITOR_SITES_0_HOST=97.145.145.233 \ -e OPENVPNMONITOR_SITES_0_NAME=OVPN-UDP \ -e OPENVPNMONITOR_SITES_0_PORT=5555 \ -e OPENVPNMONITOR_SITES_0_SHOWDISCONNECT=True \ -p 8181:80 ruimarinho/openvpn-monitorЗдесь указана широта и долгота Москвы как стартовая точка на карте и IP адрес VPN сервера. SITES_0 задаёт параметры одного сервера. Можно в одну панель добавить несколько, задавая настройки соответственно SITES_1_, SITES_2_ и т.д.
Это вся настройка. Теперь можно идти в IP интерфейс на порт 8181 и смотреть информацию о пользователях. Не забудьте его тоже скрыть от посторонних глаз либо за Firewall, либо за любой веб сервер с режимом обратного прокси. Встроенной аутентификации у openvpn-monitor нет.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#openvpn
2👍122👎3
❓Возник вопрос вчера на тему OpenVPN. Можно как-то собирать статистику по подключениям пользователей и выводить отчёт? В целом, задача эта решаема, так как OVPN сервер выдаёт всю статистику о своём состоянии и пользователях как через встроенную консоль управления, так и через лог файл, который задаётся параметром status в конфигурационном файле.
Расскажу, как эту задачу решаю я. Вроде бы в контексте именно статистики по пользователям я про неё не писал. В интернете можно найти много вариантов настройки мониторинга за пользователями OpenVPN. Я лично по старинке использую тот, что когда-то давно попробовал и внедрил. Видел варианты более элегантные и удобные. Я уже просто привык к своему, он нормально работает, так что использую:
⇨ Мониторинг openvpn подключений пользователей в zabbix
Идея сбора статистики в том, что при подключении пользователя срабатывает триггер, при отключении он гаснет. И всё. Zabbix сам собирает всю статистику. Потом по ней можно какой-то отчёт сделать и выгрузить его в CSV. Триггерам можно повесить отдельный тэг и самую низкую важность, чтобы они больше нигде не отсвечивали.
Тут получается немного нецелевое использование системы мониторинга, но зато ничего самому по аналитике делать не надо: искать какую-то панель для этого, агрегировать данные и т.д.
Дополнительно можно сделать отдельный Dashboard с информацией об активных сессиях. Там же добавить виджет с историей подключений и отключений и т.д. В целом удобно и заменяет многие простые панели без непосредственно управления. При этом лично мне именно в Zabbix функциональность подобного рода нравится больше, чем примерно то же самое, но в Grafana с метриками от какого-нибудь экспортера Prometheus. По крайней мере из тех, что я видел.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#zabbix #openvpn
Расскажу, как эту задачу решаю я. Вроде бы в контексте именно статистики по пользователям я про неё не писал. В интернете можно найти много вариантов настройки мониторинга за пользователями OpenVPN. Я лично по старинке использую тот, что когда-то давно попробовал и внедрил. Видел варианты более элегантные и удобные. Я уже просто привык к своему, он нормально работает, так что использую:
⇨ Мониторинг openvpn подключений пользователей в zabbix
Идея сбора статистики в том, что при подключении пользователя срабатывает триггер, при отключении он гаснет. И всё. Zabbix сам собирает всю статистику. Потом по ней можно какой-то отчёт сделать и выгрузить его в CSV. Триггерам можно повесить отдельный тэг и самую низкую важность, чтобы они больше нигде не отсвечивали.
Тут получается немного нецелевое использование системы мониторинга, но зато ничего самому по аналитике делать не надо: искать какую-то панель для этого, агрегировать данные и т.д.
Дополнительно можно сделать отдельный Dashboard с информацией об активных сессиях. Там же добавить виджет с историей подключений и отключений и т.д. В целом удобно и заменяет многие простые панели без непосредственно управления. При этом лично мне именно в Zabbix функциональность подобного рода нравится больше, чем примерно то же самое, но в Grafana с метриками от какого-нибудь экспортера Prometheus. По крайней мере из тех, что я видел.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#zabbix #openvpn
1👍91👎3
В настоящее время есть много технологий VPN, с помощью которых можно объединять подсети и подключать к ним внешних клиентов. Речь идёт не о блокировках и всем, что с этим связано, а об условно корпоративных VPN. Определённую популярность набрали сервисы на основе WireGuard, которые строят с его помощью mesh сети. Это не чистый WG, а программная обвязка вокруг него на дополнительном ПО. Примеры: Nebula, Tailscale, ZeroTier, Netmaker.
Я же хочу рассказать про старый добрый OpenVPN, который несмотря на все прочие современные реализации VPN остаётся актуален и удобен. И это не привычка и нежелание переходить на что-то новое, а объективное удобство. Перечислю несколько основных фактов, которые держат на OpenVPN.
1️⃣ Первый и самый главный – OpenVPN сервер умеет передавать клиенту во время подключения различные настройки, в том числе сетевые маршруты. Например, клиент подключается и мы ему тут же сообщаем, что он весь свой трафик должен завернуть в VPN. А когда нам это не нужно, перечисляем только список подсетей, которые заворачиваются в VPN.
Например, у меня есть несколько VPN серверов с внешними IP. Я их использую для доступа к закрытым ресурсам, куда разрешён доступ только мне. На этих VPN серверах перечислены по IP адресам те серверы, куда я должен подключаться через VPN. В момент моего подключения к OVPN серверу я получаю список маршрутов до этих IP адресов через VPN сервер. И только туда. Весь остальной трафик будет ходить напрямую.
Помимо маршрутов можно передавать и другие настройки. Несколько примеров:
- настройка своего внутреннего DNS сервера;
- разрешение клиентов взаимодействовать друг с другом;
- настройки внутреннего IP адреса;
- разрешение, запрет на подключение;
- разрешение, запрет сжатия трафика;
- и многие другие.
Всё это управляется централизованно на сервере. На клиентах никаких настроек менять не надо. Один раз передали конфиг с зашитыми сертификатами и всё.
2️⃣ Помимо передачи маршрутов клиентам внутри OVPN сети есть своя реализация динамической маршрутизации. Если у вас филиальная сеть объединена с помощью OVPN, вы у пользователей весь нужный трафик направляете в VPN туннель. А на OVPN сервере управляете, какие подсети какой филиал обслуживает. Добавился новый филиал - добавили его в список маршрутов и указали, что за новую подсеть отвечает новый сервер в филиале. Настройки клиентов трогать не надо, пускать поверх VPN сети ospf и bgp тоже. Реализация очень простая в настройке и управлении. Возможно для очень больших сетей этого будет недостаточно, но для малых и средних вполне.
3️⃣ Гибкость в возможностях аутентификации. Вы можете использовать традиционную для OVPN аутентификацию по сертификатам, можно оставить только логин с паролем, можно подключать внешний скрипт для аутентификации, а там уже реализовывать любую логику.
Можно всё убрать и настроить простой туннель вообще без какой-либо аутентификации и шифрования:
Всё, серверы видят друг друга по указанным внутренним IP адресам.
4️⃣ OVPN сервер поддерживает оба протокола TCP и UDP, можно использовать любой порт. Вкупе с предыдущим пунктом, одна технология VPN покрывает очень широкий спектр задач. Вы можете все потребности закрывать только с помощью OpenVPN.
5️⃣ Есть клиенты под все системы. Сервер очень старый, есть куча инструкций, понятны параметры, много специалистов. Всё расписано и изучено за многие годы.
6️⃣ Проблему с производительностью решили отдельным модулем ядра для OpenVPN. Я не слежу за его изменениями. Приехал он уже или нет в ядро или хотя бы в виде пакета в базовые репозитории. Но уже года два его можно скачать и самостоятельно установить, если сильно нужно.
Заметка получилась большая. Написал сходу, какие мысли пришли в голову. Я OpenVPN люблю и использую давно. При этом другие реализации и настраиваю, и использую. Как минимум WG и L2TP использую постоянно, а раньше ещё PPTP.
#openvpn
Я же хочу рассказать про старый добрый OpenVPN, который несмотря на все прочие современные реализации VPN остаётся актуален и удобен. И это не привычка и нежелание переходить на что-то новое, а объективное удобство. Перечислю несколько основных фактов, которые держат на OpenVPN.
Например, у меня есть несколько VPN серверов с внешними IP. Я их использую для доступа к закрытым ресурсам, куда разрешён доступ только мне. На этих VPN серверах перечислены по IP адресам те серверы, куда я должен подключаться через VPN. В момент моего подключения к OVPN серверу я получаю список маршрутов до этих IP адресов через VPN сервер. И только туда. Весь остальной трафик будет ходить напрямую.
Помимо маршрутов можно передавать и другие настройки. Несколько примеров:
- настройка своего внутреннего DNS сервера;
- разрешение клиентов взаимодействовать друг с другом;
- настройки внутреннего IP адреса;
- разрешение, запрет на подключение;
- разрешение, запрет сжатия трафика;
- и многие другие.
Всё это управляется централизованно на сервере. На клиентах никаких настроек менять не надо. Один раз передали конфиг с зашитыми сертификатами и всё.
Можно всё убрать и настроить простой туннель вообще без какой-либо аутентификации и шифрования:
# openvpn --remote 1.2.3.4 --dev tun1 --ifconfig 10.4.0.1 10.4.0.2# openvpn --remote 4.3.2.1 --dev tun1 --ifconfig 10.4.0.2 10.4.0.1Всё, серверы видят друг друга по указанным внутренним IP адресам.
Заметка получилась большая. Написал сходу, какие мысли пришли в голову. Я OpenVPN люблю и использую давно. При этом другие реализации и настраиваю, и использую. Как минимум WG и L2TP использую постоянно, а раньше ещё PPTP.
#openvpn
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍127👎7
Расскажу кратенько с конкретными примерами, как я настраиваю ограничение на доступ к серверам и сервисам по статическим IP адресам и потом подключаюсь к ним, используя некоторое количество арендованных VPS для этих целей.
Я уже давно практикую и остальным советую не оставлять публичный доступ через интернет к сервисам, которые не являются публичными. Например, тот же SSH я открываю только для белого списка своих IP адресов. Для iptables это обычно выглядит так:
В скрипте с правилами задана переменная со списком моих IP адресов и правило для SSH на его основе.
На VPS с перечисленными IP адресами настроены сервера OpenVPN. Они используются для различных задач, в том числе в качестве шлюзов для подключения к закрытым серверам. При подключении со своих рабочих машин я не направляю весь трафик в VPN. Это неудобно и мешает работе. В общем случае я использую прямой выход в интернет для типовых задач в виде сёрфинга в интернете, просмотра видео и т.д.
При подключении по VPN я получаю только те маршруты, что мне нужны. Например, я хочу подключаться к серверу c IP адресом 233.129.58.85 через конкретный OpenVPN сервер. Я иду на него и добавляю на сервере к конфигурации, привязанной к сертификату, который я использую при подключении, следующую настройку:
При подключении по VPN ко мне в систему приедет маршрут до 233.129.58.85 через этот сервер. Подключение по SSH к этому серверу пойдёт через VPN. В настройке маршрута можно указать не только IP адрес, но и DNS имя. Примерно так:
Чтобы это сработало, в конфигурации клиента, для которого добавлен такой маршрут, должен быть добавлен параметр:
В итоге на рабочей машине у меня настроен клиент OpenVPN с готовыми подключениями к различным VPN серверам. Когда мне надо подключиться к той или иной инфраструктуре, я подключаюсь к нужному VPN серверу и получаю маршруты только туда. Всё остальное остаётся неизменным. Весь трафик в VPN я не направляю, уже существующие соединения не рвутся. Одновременно могут быть активны разные OpenVPN соединения. Все маршруты управляются с серверов. На самом клиенте я ничего не меняю.
В такую схему легко добавляются новые VPS, новые пользователи (❗️), новые сертификаты со своими привязанными к ним настройками, и всё это управляется централизованно через сервера. Сами клиенты трогать не надо.
📌 Полезные ссылки по теме:
▪️Основные преимущества OpenVPN сервера
▪️Настройка allow-pull-fqdn
▪️Одновременный запуск нескольких клиентов OpenVPN
▪️Запуск OpenVPN сервера на разных внешних IP адресах
▪️Запускаем OpenVPN сервер за 443 портом веб сервера
На днях на одном из моих серверов протух CA, который был выпущен 10 лет назад. Такие встречаются долгожители. И это не первый случай. Писал и заметки здесь по этой теме, и статья на сайте есть.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#openvpn
Я уже давно практикую и остальным советую не оставлять публичный доступ через интернет к сервисам, которые не являются публичными. Например, тот же SSH я открываю только для белого списка своих IP адресов. Для iptables это обычно выглядит так:
SSH_WLIST=100.189.229.125,141.73.66.12,187.91.13.196,83.208.103.44,194.139.219.214iptables -A INPUT -i enp5s0 -s $SSH_WLIST -p tcp --dport 22 -j ACCEPTВ скрипте с правилами задана переменная со списком моих IP адресов и правило для SSH на его основе.
На VPS с перечисленными IP адресами настроены сервера OpenVPN. Они используются для различных задач, в том числе в качестве шлюзов для подключения к закрытым серверам. При подключении со своих рабочих машин я не направляю весь трафик в VPN. Это неудобно и мешает работе. В общем случае я использую прямой выход в интернет для типовых задач в виде сёрфинга в интернете, просмотра видео и т.д.
При подключении по VPN я получаю только те маршруты, что мне нужны. Например, я хочу подключаться к серверу c IP адресом 233.129.58.85 через конкретный OpenVPN сервер. Я иду на него и добавляю на сервере к конфигурации, привязанной к сертификату, который я использую при подключении, следующую настройку:
push "route 233.129.58.85 255.255.255.255"При подключении по VPN ко мне в систему приедет маршрут до 233.129.58.85 через этот сервер. Подключение по SSH к этому серверу пойдёт через VPN. В настройке маршрута можно указать не только IP адрес, но и DNS имя. Примерно так:
push "route ya.ru 255.255.255.255"Чтобы это сработало, в конфигурации клиента, для которого добавлен такой маршрут, должен быть добавлен параметр:
allow-pull-fqdnВ итоге на рабочей машине у меня настроен клиент OpenVPN с готовыми подключениями к различным VPN серверам. Когда мне надо подключиться к той или иной инфраструктуре, я подключаюсь к нужному VPN серверу и получаю маршруты только туда. Всё остальное остаётся неизменным. Весь трафик в VPN я не направляю, уже существующие соединения не рвутся. Одновременно могут быть активны разные OpenVPN соединения. Все маршруты управляются с серверов. На самом клиенте я ничего не меняю.
В такую схему легко добавляются новые VPS, новые пользователи (❗️), новые сертификаты со своими привязанными к ним настройками, и всё это управляется централизованно через сервера. Сами клиенты трогать не надо.
📌 Полезные ссылки по теме:
▪️Основные преимущества OpenVPN сервера
▪️Настройка allow-pull-fqdn
▪️Одновременный запуск нескольких клиентов OpenVPN
▪️Запуск OpenVPN сервера на разных внешних IP адресах
▪️Запускаем OpenVPN сервер за 443 портом веб сервера
На днях на одном из моих серверов протух CA, который был выпущен 10 лет назад. Такие встречаются долгожители. И это не первый случай. Писал и заметки здесь по этой теме, и статья на сайте есть.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#openvpn
Telegram
ServerAdmin.ru
В настоящее время есть много технологий VPN, с помощью которых можно объединять подсети и подключать к ним внешних клиентов. Речь идёт не о блокировках и всем, что с этим связано, а об условно корпоративных VPN. Определённую популярность набрали сервисы на…
2👍170👎6
В комментариях к одной из заметок проскочила ссылка на небольшой проект, где одним скриптом реализована установка OpenVPN сервера с простеньким веб интерфейсом - Simple OpenVPN Server. Я постоянно использую OpenVPN, так что решил на него глянуть, раньше не видел.
В репозитории представлен bash скрипт, который выполняет установку стандартного сервера OpenVPN, вместе с ним Nginx с запароленным доступом к небольшой админке, где можно добавлять и удалять пользователей. Больше ничего нет.
На первый взгляд ничего особенно и похожих панелей много. Но лично мне понравилась реализация. Сейчас расскажу подробнее. Установка с помощью этого скрипта выглядит следующим образом:
Ключи задают: пароль администратора для доступа к админке, имя сервера для выпуска бесплатных сертификатов, dns сервера, которые будут передаваться клиентам в виде настроек, порт сервера и протокол, на котором он будет работать, email, который будет зарегистрирован в let's encrypt при выпуске сертификата.
Дальше скрипт выполняет следующие действия:
1️⃣ Устанавливает необходимые пакеты.
2️⃣ Загружает набор скриптов easy-rsa и генерирует необходимые сертификаты.
3️⃣ Формирует конфигурацию openvpn на основе переданных параметров.
4️⃣ Добавляет настройки iptables для NAT и роутинга соединений клиентов.
5️⃣ Формирует шаблон для конфигураций пользователей.
6️⃣ Получает сертификаты и настраивает виртуальных хост в Nginx.
7️⃣ Скачивает скрипты для виртуального хоста, которые создают конфигурации пользователей и отзывают сертификаты.
В конце скрипт выдал ошибку на перезапуск службы apache. Не знаю, зачем там эта команда. Возможно, автор просто ошибся. Сам apache не устанавливается в систему. Я вручную перезапустил Nginx:
После этого можно идти в браузер по имени хоста, вводить логин admin и указанный ранее пароль, чтобы попасть в "админку". Аутентификация реализована с помощью basic_auth.
Теперь отдельно про пару моментов, которые мне понравились. Реализация очень простая. Все конфигурации служб на своём месте. То есть после работы скрипта можно про него забыть и дальше управлять всем этим, как-будто вы всё поставили вручную. Скрипт установки легко читается, можно изменять.
Меня отдельно привлёк веб интерфейс, а точнее то, как он реализован. В директории
Я первый раз вижу такую реализацию. В скриптах смесь html и bash. То есть по сути интерфейс управления написан на bash и привязан к кнопочкам на страничках.
Эти скрипты легко приспособить под ваш OpenVPN сервер, который управляется полностью консольно. Если вам надоело добавлять и отзывать пользователей через CLI, можете взять эти скрипты и прикрутить куда-то к себе в закрытый контур.
Реализовано там всё обычными консольными командами, типа таких:
и т.д. То есть всё максимально стандартно. Нужно будет только пути поправить под свои реалии и всё.
Вот такой необычный проект для быстрой настройки OpenVPN сервера. Мне в целом понравилось. У меня есть свои подобные скрипты для установки сервера, создания и удаления пользователей. Писал в своё время, чтобы управлять серверами.
📌 Пара полезных ссылок по данной теме:
◽️Подборка вариантов настройки и управления OpenVPN сервера через web интерфейс
◽️Ovpn-admin - простой веб интерфейс в виде одного бинарника для управления Ovpn сервером
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#openvpn
В репозитории представлен bash скрипт, который выполняет установку стандартного сервера OpenVPN, вместе с ним Nginx с запароленным доступом к небольшой админке, где можно добавлять и удалять пользователей. Больше ничего нет.
На первый взгляд ничего особенно и похожих панелей много. Но лично мне понравилась реализация. Сейчас расскажу подробнее. Установка с помощью этого скрипта выглядит следующим образом:
# wget https://raw.githubusercontent.com/theonemule/simple-openvpn-server/master/openvpn.sh# chmod +x openvpn.sh# ./openvpn.sh --adminpassword=serveradmin --host=339119.simplecloud.ru --dns1=62.76.76.62 --dns2=77.88.8.1 --vpnport=1194 --protocol=udp --email=zeroxzed@gmail.comКлючи задают: пароль администратора для доступа к админке, имя сервера для выпуска бесплатных сертификатов, dns сервера, которые будут передаваться клиентам в виде настроек, порт сервера и протокол, на котором он будет работать, email, который будет зарегистрирован в let's encrypt при выпуске сертификата.
Дальше скрипт выполняет следующие действия:
В конце скрипт выдал ошибку на перезапуск службы apache. Не знаю, зачем там эта команда. Возможно, автор просто ошибся. Сам apache не устанавливается в систему. Я вручную перезапустил Nginx:
# systemctl restart nginxПосле этого можно идти в браузер по имени хоста, вводить логин admin и указанный ранее пароль, чтобы попасть в "админку". Аутентификация реализована с помощью basic_auth.
Теперь отдельно про пару моментов, которые мне понравились. Реализация очень простая. Все конфигурации служб на своём месте. То есть после работы скрипта можно про него забыть и дальше управлять всем этим, как-будто вы всё поставили вручную. Скрипт установки легко читается, можно изменять.
Меня отдельно привлёк веб интерфейс, а точнее то, как он реализован. В директории
/var/www/html находятся два bash скрипта: index.sh и download.sh. Их выполнение настроено в Nginx вот так:location ~ \.sh$ { gzip off; fastcgi_pass unix:/var/run/fcgiwrap.socket; include /etc/nginx/fastcgi_params; fastcgi_split_path_info ^(.+?\.sh)(/.*)$;Я первый раз вижу такую реализацию. В скриптах смесь html и bash. То есть по сути интерфейс управления написан на bash и привязан к кнопочкам на страничках.
Эти скрипты легко приспособить под ваш OpenVPN сервер, который управляется полностью консольно. Если вам надоело добавлять и отзывать пользователей через CLI, можете взять эти скрипты и прикрутить куда-то к себе в закрытый контур.
Реализовано там всё обычными консольными командами, типа таких:
./easyrsa build-client-full $client nopass./easyrsa --batch revoke $clientи т.д. То есть всё максимально стандартно. Нужно будет только пути поправить под свои реалии и всё.
Вот такой необычный проект для быстрой настройки OpenVPN сервера. Мне в целом понравилось. У меня есть свои подобные скрипты для установки сервера, создания и удаления пользователей. Писал в своё время, чтобы управлять серверами.
📌 Пара полезных ссылок по данной теме:
◽️Подборка вариантов настройки и управления OpenVPN сервера через web интерфейс
◽️Ovpn-admin - простой веб интерфейс в виде одного бинарника для управления Ovpn сервером
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#openvpn
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍164👎4