После запуска утилиты VpnGUI в трее появится иконка (квадрат разбитый на четыре сине-красных квадратика) утилиты:
Трей имеет меню, которое появляется при нажатии правой клавиши мышки, когда курсор мышки находится на трее утилиты VPNGui. Меню имеет два пункта – Restore (развернуть окна) и Stop (завершить работу ). После выбора пункта меню «Restore» на экране появится главное окно утилиты VPNGui:
Разработка велась на python с использованием графического пакета Tkinter и дизайнера Page.
Напомним, что для использования «великого, могучего, правдивого и свободного русского языка!» (И.С. Тургенев), необходимо добавить в файл файл gui_pyton_gen.tcl дизайнера Page после 418 строки следующий код:
# -*- coding: utf-8 -*-
Аналогичный код необходимо дабавить также в файл support_python_gen.tcl (после 458 строки).
Для программирования трея был установлен пакет Pystray.
Работа утилиты начинается с выбора пользователем выполняемого файла openvpn или его форков. Утилита проверяет наличие выполняемого файла и заполняет списки перечнем поддерживаемых mac (алгоритмя контроля целостности), ciphers (алгоритмы шифрования) и перечнем поддерживаемых шифрсьютов:
# openvpn –show-digests
…
#openvpn –show-ciphers
…
#openvpn –show-tls
…
Теперь можно приступать к работе с конфигурационным файлом. Пользователь может создать новый файл или отредактировать существующий, предварительно загрузив его (см. скриншот). После того как файл загружен или новый файл сохранен, пользователь может запустить openvpn:
После ввода пароля в окне «Протокол работы» будут отображаться диагностические сообщения OpenVPN:
До тех пор пока openvpn нормально работает книопка «VPN активен» будет блокирована. Если openvpn по каким-то причинам завершит свою работу или будет остановлен пользователем (кнопка «Стоп VPN»), то кнопка разблокируется и снова станет кнопкой «Старт VPN».
Отметим, что для выпуска клиентских и серверных сертификатов для OpenVPN удобно использовать центр сертификации XCA:
Теперь, когда openvpn нормально работает, можно его убрать в трей. Для этого можно использовать как кнопку «В трей» на окне «Протокол работы» или меню главного окна (Manager > Убрать в трей):
Утилита плафтормонезависима. Бинарный код утилиты можно получить, используя пакет Nuitka. Проект утилиты VPNGui, ее исходный код на Python, а также бинарный код для Linux x86_64 можно получить здесь. Имея на руках проект, каждый может доработать утилиту по своему усмотрению.
Комментарии (40)
sena
21.09.2017 11:37+3Настройка клиента openvpn есть в апплете NetworkManager. Настройка же сервера обычно делается на сервере в терминале, и графический интерфейс там обычно не нужен.
Хотя, наверное, в каких-то ситуациях понадобится и такая программа.saipr Автор
21.09.2017 11:39Конечно же речь идет о клиентском OpenVPN. Сервера запускаются на серверах (прошу извинить за тавтологию) через командную строку.
foldr
21.09.2017 12:10Есть возможность в стандартный Network Manager импортировать конфиг и редактировать через GUI. В Gnome можно по-дефолту, в бубунте с юнити надо установить пакет network-manager-openvpn-gnome (в KDE, кажется, тоже можно сразу, не помню точно)
solver
21.09.2017 12:10+1Вот тоже интересно, чем стандартное GUI не устроило?
В нем и в трее отображается подключение, и настройки все есть. И поддержка с обновлениями.
Тем более у вас на скриншотах KDE, а в нем все очень удобно сделано. И максимально нативно для системы.foldr
21.09.2017 12:25Вот тоже интересно, чем стандартное GUI не устроило?
Недостаточный скилл гугления :)
Впрочем, я не против наличия альтернатив, если у них есть какие-то фичи, при том что их можно так же просто установить из собранного пакета или, еще лучше, из репозитория, а не как в данном случае — исходники с бинарником просто в архиве
Ipeacocks
21.09.2017 13:34Более того стандартное решение выглядит цельным с настройками сети и приличней.
> Хотя, наверное, в каких-то ситуациях понадобится и такая программа.
Интересно в каких. Наверное только тогда, когда нет NetworkManager-а в дистрибутиве.
foldr
21.09.2017 12:19- Прежде всего, бросается в глаза интерфейс на русском + местами на английском языках (Manager, key, cert). Если переводить, то переводить полностью. Конечно лучше иметь возможность переключать языки, но в качестве единственного, имхо, лучше делать английский. Интерфейс у подобных утилит достаточно простой, и даже без знаний языка можно интуитивно разобраться что делать
- Используйте стандартные названия выпадающих меню. То что находится в Manager вполне подходит под File/Файл
- Почему не в системе контроля версий? Распространять исходный код в архиве, мягко говоря, странно
tjomamokrenko
21.09.2017 12:55+3Есть ли OpenVPN GUI для Linux?
Есть. в Ubuntu —network-manager-openvpn
.
Если посмотреть остальные статьи автора — претензий не возникает. Вот только я бы не хотел видеть подобные статьи в хабе информационной безопасности.CamKuran
21.09.2017 14:42network-manager-openvpn — плагин для Network Manager, который позволяет производить необходимые настройки для данного типа подключений. А графическая реализация API данного плагина зависит от графического окружения, например в Plasma это plasma-nm, а для GNOME — network-manager-openvpn-gnome
Caelwyn
21.09.2017 13:21+3Окно About и интерфейс аж прям веют концом девяностых-началом двухтысячных, самописными провайдерскими подключаторами, и самописным бухгалтерским софтом на делфи, у которого в окне «Подождите пожалуйста, идёт расчёт» была фотка автора (реальный случай в госконторе).
saipr Автор
21.09.2017 16:47-1А еще были и 70-е и 80-е и начало 90-х. Было другое время, другие компьютеры, да много чего другого.
VecH
21.09.2017 15:58А я все надеюсь что кто то напишет web морду для серверной части, т.к. DE на сервере, vps-ке об этом даже думать не стоит
Что еще важнее, это менеджер ключей и конфигураций клиентских тоже через websaipr Автор
21.09.2017 16:01Это менеджер каких ключей?
Что касается web "морды" для серверной части, то в чем проблема? Хотя потребуется, например, поднимать Apache на сервере. А ssh всегда под рукой.
Bronekalmar
22.09.2017 07:53Есть модуль для Webmin для OpenvPN
http://www.webmin.com/cgi-bin/search_third.cgi?search=openvpn
ibKpoxa
21.09.2017 16:28+1Ну почему??? Почему все так любят OpenVPN, когда в системах нет клиента по умолчанию для него? Как же ipsec+l2tp хорош именно этом, и не менее безопасен.
UrsusMaritimus
22.09.2017 10:48Возможно потому, что ipsec можно распознавать и фильтровать на уровне фаервола. А openvpn не отличим от https. По крайней мере в теории.
Caefah
21.09.2017 19:14После слов: — «Разработка велась на пютан ...» интерес пропал полностью. Ради пары иконок терять пятую часть гигабайта постоянно текущей оперативной памяти под динамическую типизацию и гарбидж коллектор нет никакого желания. Вывод — нативный консольный клиент лучше.
saipr Автор
21.09.2017 19:41Все очень просто. Используйте утилиту только для подготовки конфига. А клиента с этим конфигом запускайте из консоли и никуда ваша оперативная память не уплывет.
23rd
22.09.2017 00:30Вопрос не к сабжу, но всё же.
Может быть кто-нибудь знает клиент для Windows, который убивал бы интернет без VPN (kill-switch)?
Или как это сделать в дефолтном GUI?4aba
22.09.2017 06:33Если я вас правильно понял, В брандмауэре разрешаете исходящий трафик только на порт впн, остальное запрет. Когда мне надо было пустить одну машину из локальной сети в интернет с 100% подменой страны, я так делал.
yamilov
22.09.2017 20:26+2По теме. Софтине, безусловно, место быть. Сказать честно, предлагаемый на OpenVPN я настроить на свей Ubuntu так и не смог. А аналогов не нашёл! Поэтому до сих пор использую терминал. По-началу даже немного комплексовал ) но свыкся. Над дизайном поработайте немного.
Теперь не по теме. Кто-нибудь сталкивался с проблемой, что после подключения к серверу, некоторые сайты не открываются? Именно в Ubuntu. Никакой зависимости не вижу. С одними работает, с другими — нет. В Окнах с этим же сервером всё ок. В сети об этом почти нет информации.
saipr Автор
22.09.2017 20:28Да, дизайн требует доработки. Ваше наблюдение только подтверждает заголовок. Про вопрос ничего сказать не могу.
daggert
Автор, ты молодец, хорошую программу сделал, но ради Гоги, убери цвета. Оставь программу в дефолтной палитре системы. Постепенно ты сам придешь к тому что приложение не должно быть радужное, через это почти все проходят.
saipr Автор
Спасибо на добром слове. Ваше замечание учту. Я понимаю, вы имеете в виду дефолтную палитру Tk/Tkinter. Здесь я сохранил дефолт от Page. Еще раз спасибо.
vconst
Иконку тоже замените на стандартную, у нее же есть состояния вкл/выкл и выглядит знакомо для всех.
saipr Автор
Вы имели ввиду это:
vconst
Нет же, стандартную для OpenVPN:
saipr Автор
vconst
Именно, примерно так выглядит официальный клиент на винде.
SmileyK
только когда vpn не активен лучше сделать перечеркнутый — не надо будет «щурится»
saipr Автор
Именно по этому мне и нравятся квадратики
vip1953
Да, симпатичные квадратики!