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

в 8:16, , рубрики: certificate, linux, open source, openvpn, PKCS#11, pkcs#12, python, tcl/tk, tkinter, trayicon, Графические оболочки, защищённый доступ, информационная безопасность, Разработка под Linux

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

image

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

image

Разработка велась на 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
…

image

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

image

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

image

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

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

image

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

image

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

Автор: saipr

Источник

Поделиться

* - обязательные к заполнению поля