Название статьи подсказала тема на одном из форумов. Несмотря на то, что с момента возникновения вопроса прошло шесть лет, в этом направлении мало что изменилось. А поскольку в последнее время у меня на слуху постоянно был OpenVPN, то было решено исправить данную ситуацию. Так родилась графическая утилита VpnGUI для создания, редактирования, запуска и контроля выполнения утилиты openvpn.
После запуска утилиты VpnGUI в трее появится иконка (квадрат разбитый на четыре сине-красных квадратика) утилиты:
![image](https://habrastorage.org/r/w1560/web/431/55e/b66/43155eb6675b4cd791984bd1ac9bc97c.png)
Трей имеет меню, которое появляется при нажатии правой клавиши мышки, когда курсор мышки находится на трее утилиты VPNGui. Меню имеет два пункта – Restore (развернуть окна) и Stop (завершить работу ). После выбора пункта меню «Restore» на экране появится главное окно утилиты VPNGui:
![image](https://habrastorage.org/r/w1560/web/a4a/803/f80/a4a803f807f4464081a4077477d1c62e.png)
Разработка велась на python с использованием графического пакета Tkinter и дизайнера Page.
Напомним, что для использования «великого, могучего, правдивого и свободного русского языка!» (И.С. Тургенев), необходимо добавить в файл файл gui_pyton_gen.tcl дизайнера Page после 418 строки следующий код:
Аналогичный код необходимо дабавить также в файл support_python_gen.tcl (после 458 строки).
Для программирования трея был установлен пакет Pystray.
Работа утилиты начинается с выбора пользователем выполняемого файла openvpn или его форков. Утилита проверяет наличие выполняемого файла и заполняет списки перечнем поддерживаемых mac (алгоритмя контроля целостности), ciphers (алгоритмы шифрования) и перечнем поддерживаемых шифрсьютов:
![image](https://habrastorage.org/r/w1560/web/aad/bda/352/aadbda3523b94d4bbbe9bfafd11e8881.png)
Теперь можно приступать к работе с конфигурационным файлом. Пользователь может создать новый файл или отредактировать существующий, предварительно загрузив его (см. скриншот). После того как файл загружен или новый файл сохранен, пользователь может запустить openvpn:
![image](https://habrastorage.org/r/w1560/web/2a9/f7a/12e/2a9f7a12e7934d76ad7c9ca1c4f63662.png)
После ввода пароля в окне «Протокол работы» будут отображаться диагностические сообщения OpenVPN:
![image](https://habrastorage.org/r/w1560/web/132/ae3/13c/132ae313c3064397b0bd4538d3b74fe9.png)
До тех пор пока openvpn нормально работает книопка «VPN активен» будет блокирована. Если openvpn по каким-то причинам завершит свою работу или будет остановлен пользователем (кнопка «Стоп VPN»), то кнопка разблокируется и снова станет кнопкой «Старт VPN».
Отметим, что для выпуска клиентских и серверных сертификатов для OpenVPN удобно использовать центр сертификации XCA:
![image](https://habrastorage.org/r/w1560/files/b46/728/5d0/b467285d01794cfd90cce030163e5aab.png)
Теперь, когда openvpn нормально работает, можно его убрать в трей. Для этого можно использовать как кнопку «В трей» на окне «Протокол работы» или меню главного окна (Manager → Убрать в трей):
![image](https://habrastorage.org/r/w1560/web/2dc/90f/57d/2dc90f57d61e4bb7b2a4a5db2e1d29c0.png)
Утилита плафтормонезависима. Бинарный код утилиты можно получить, используя пакет Nuitka.
После запуска утилиты VpnGUI в трее появится иконка (квадрат разбитый на четыре сине-красных квадратика) утилиты:
![image](https://habrastorage.org/web/431/55e/b66/43155eb6675b4cd791984bd1ac9bc97c.png)
Трей имеет меню, которое появляется при нажатии правой клавиши мышки, когда курсор мышки находится на трее утилиты VPNGui. Меню имеет два пункта – Restore (развернуть окна) и Stop (завершить работу ). После выбора пункта меню «Restore» на экране появится главное окно утилиты VPNGui:
![image](https://habrastorage.org/web/a4a/803/f80/a4a803f807f4464081a4077477d1c62e.png)
Разработка велась на 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](https://habrastorage.org/web/aad/bda/352/aadbda3523b94d4bbbe9bfafd11e8881.png)
Теперь можно приступать к работе с конфигурационным файлом. Пользователь может создать новый файл или отредактировать существующий, предварительно загрузив его (см. скриншот). После того как файл загружен или новый файл сохранен, пользователь может запустить openvpn:
![image](https://habrastorage.org/web/2a9/f7a/12e/2a9f7a12e7934d76ad7c9ca1c4f63662.png)
После ввода пароля в окне «Протокол работы» будут отображаться диагностические сообщения OpenVPN:
![image](https://habrastorage.org/web/132/ae3/13c/132ae313c3064397b0bd4538d3b74fe9.png)
До тех пор пока openvpn нормально работает книопка «VPN активен» будет блокирована. Если openvpn по каким-то причинам завершит свою работу или будет остановлен пользователем (кнопка «Стоп VPN»), то кнопка разблокируется и снова станет кнопкой «Старт VPN».
Отметим, что для выпуска клиентских и серверных сертификатов для OpenVPN удобно использовать центр сертификации XCA:
![image](https://habrastorage.org/files/b46/728/5d0/b467285d01794cfd90cce030163e5aab.png)
Теперь, когда openvpn нормально работает, можно его убрать в трей. Для этого можно использовать как кнопку «В трей» на окне «Протокол работы» или меню главного окна (Manager → Убрать в трей):
![image](https://habrastorage.org/web/2dc/90f/57d/2dc90f57d61e4bb7b2a4a5db2e1d29c0.png)
Утилита плафтормонезависима. Бинарный код утилиты можно получить, используя пакет Nuitka.