- PVSM.RU - https://www.pvsm.ru -

Есть ли OpenVPN GUI для Linux?

Название статьи подсказала тема на одном из форумов [1]. Несмотря на то, что с момента возникновения вопроса прошло шесть лет, в этом направлении мало что изменилось. А поскольку в последнее время у меня на слуху постоянно был OpenVPN [2], то было решено исправить данную ситуацию. Так родилась графическая утилита VpnGUI для создания, редактирования, запуска и контроля выполнения утилиты openvpn.
После запуска утилиты VpnGUI в трее появится иконка (квадрат разбитый на четыре сине-красных квадратика) утилиты:

image

Трей имеет меню, которое появляется при нажатии правой клавиши мышки, когда курсор мышки находится на трее утилиты VPNGui. Меню имеет два пункта – Restore (развернуть окна) и Stop (завершить работу ). После выбора пункта меню «Restore» на экране появится главное окно утилиты VPNGui:

image

Разработка велась на python с использованием графического пакета Tkinter и дизайнера Page [3].
Напомним, что для использования «великого, могучего, правдивого и свободного русского языка!» (И.С. Тургенев), необходимо добавить в файл файл gui_pyton_gen.tcl дизайнера Page после 418 строки следующий код:

# -*- coding: utf-8 -*- 	

Аналогичный код необходимо дабавить также в файл support_python_gen.tcl (после 458 строки).

Для программирования трея был установлен пакет Pystray [4].

Работа утилиты начинается с выбора пользователем выполняемого файла openvpn или его форков [5]. Утилита проверяет наличие выполняемого файла и заполняет списки перечнем поддерживаемых mac (алгоритмя контроля целостности), ciphers (алгоритмы шифрования) и перечнем поддерживаемых шифрсьютов:

# openvpn –show-digests
…
#openvpn –show-ciphers
…
#openvpn –show-tls
…

image

Теперь можно приступать к работе с конфигурационным файлом. Пользователь может создать новый файл или отредактировать существующий, предварительно загрузив его (см. скриншот). После того как файл загружен или новый файл сохранен, пользователь может запустить openvpn:

image

После ввода пароля в окне «Протокол работы» будут отображаться диагностические сообщения OpenVPN:

image

До тех пор пока openvpn нормально работает книопка «VPN активен» будет блокирована. Если openvpn по каким-то причинам завершит свою работу или будет остановлен пользователем (кнопка «Стоп VPN»), то кнопка разблокируется и снова станет кнопкой «Старт VPN».

Отметим, что для выпуска клиентских и серверных сертификатов для OpenVPN удобно использовать центр сертификации XCA [6]:

image

Теперь, когда openvpn нормально работает, можно его убрать в трей. Для этого можно использовать как кнопку «В трей» на окне «Протокол работы» или меню главного окна (Manager->Убрать в трей):

image

Утилита плафтормонезависима. Бинарный код утилиты можно получить, используя пакет Nuitka. Проект утилиты VPNGui, ее исходный код на Python, а также бинарный код для Linux x86_64 можно получить здесь [7]. Имея на руках проект, каждый может доработать утилиту по своему усмотрению.

Автор: saipr

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/264164

Ссылки в тексте:

[1] форумов: http://forum.ubuntu.ru/index.php?topic=173014.msg1279546#msg1279546

[2] OpenVPN: https://openvpn.net/

[3] Page: https://habrahabr.ru/post/335712/

[4] Pystray: https://fedora.pkgs.org/26/fedora-x86_64/python2-pystray-0.14.3-1.fc26.noarch.rpm.html

[5] форков: http://soft.lissi.ru/ls_product/vpn/lirvpn/

[6] XCA: https://geektimes.ru/post/283668/

[7] здесь: http://soft.lissi.ru/downloads/download_vpngui/

[8] Источник: https://habrahabr.ru/post/338390/