В комментариях к одной из заметок проскочила ссылка на небольшой проект, где одним скриптом реализована установка OpenVPN сервера с простеньким веб интерфейсом - Simple OpenVPN Server. Я постоянно использую 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 protected]
Ключи задают: пароль администратора для доступа к админке, имя сервера для выпуска бесплатных сертификатов, 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
>>Click here to continue<<


