Есть ли OpenVPN GUI для 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 можно получить здесь. Имея на руках проект, каждый может доработать утилиту по своему усмотрению.
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 50
    • +15
      Автор, ты молодец, хорошую программу сделал, но ради Гоги, убери цвета. Оставь программу в дефолтной палитре системы. Постепенно ты сам придешь к тому что приложение не должно быть радужное, через это почти все проходят.
      • +3

        Спасибо на добром слове. Ваше замечание учту. Я понимаю, вы имеете в виду дефолтную палитру Tk/Tkinter. Здесь я сохранил дефолт от Page. Еще раз спасибо.

        • 0
          Иконку тоже замените на стандартную, у нее же есть состояния вкл/выкл и выглядит знакомо для всех.
          • 0

            Вы имели ввиду это:
            image
            image

            • 0
              Нет же, стандартную для OpenVPN:
              image
              • +1

                image
                image

                • 0
                  Именно, примерно так выглядит официальный клиент на винде.
                  • 0
                    только когда vpn не активен лучше сделать перечеркнутый — не надо будет «щурится»
                    • +1

                      Именно по этому мне и нравятся квадратики

                      • 0
                        Да, симпатичные квадратики!
                      • 0
                        использование пары из серой и цветной иконки сделает зрение более острым
          • +3
            Настройка клиента openvpn есть в апплете NetworkManager. Настройка же сервера обычно делается на сервере в терминале, и графический интерфейс там обычно не нужен.

            Хотя, наверное, в каких-то ситуациях понадобится и такая программа.
            • 0

              Конечно же речь идет о клиентском OpenVPN. Сервера запускаются на серверах (прошу извинить за тавтологию) через командную строку.

              • 0

                Есть возможность в стандартный Network Manager импортировать конфиг и редактировать через GUI. В Gnome можно по-дефолту, в бубунте с юнити надо установить пакет network-manager-openvpn-gnome (в KDE, кажется, тоже можно сразу, не помню точно)

                • 0
                  В Gnome можно по-дефолту

                  не, без установки пакета не завелось (17.04). с установкой работает

                  • +1
                    Ну да, маленький пакетик добавляет в стандартный нетворк-менеджер пункт «ОпенВПН». Как по мне, так наиболее удобный вариант. Все коннекшены в одном месте.
                • +1
                  Вот тоже интересно, чем стандартное GUI не устроило?
                  В нем и в трее отображается подключение, и настройки все есть. И поддержка с обновлениями.
                  Тем более у вас на скриншотах KDE, а в нем все очень удобно сделано. И максимально нативно для системы.
                  • 0
                    Вот тоже интересно, чем стандартное GUI не устроило?

                    Недостаточный скилл гугления :)


                    Впрочем, я не против наличия альтернатив, если у них есть какие-то фичи, при том что их можно так же просто установить из собранного пакета или, еще лучше, из репозитория, а не как в данном случае — исходники с бинарником просто в архиве

                • 0
                  Более того стандартное решение выглядит цельным с настройками сети и приличней.

                  > Хотя, наверное, в каких-то ситуациях понадобится и такая программа.

                  Интересно в каких. Наверное только тогда, когда нет NetworkManager-а в дистрибутиве.
                • 0
                  1. Прежде всего, бросается в глаза интерфейс на русском + местами на английском языках (Manager, key, cert). Если переводить, то переводить полностью. Конечно лучше иметь возможность переключать языки, но в качестве единственного, имхо, лучше делать английский. Интерфейс у подобных утилит достаточно простой, и даже без знаний языка можно интуитивно разобраться что делать
                  2. Используйте стандартные названия выпадающих меню. То что находится в Manager вполне подходит под File/Файл
                  3. Почему не в системе контроля версий? Распространять исходный код в архиве, мягко говоря, странно
                  • +3
                    Есть ли OpenVPN GUI для Linux?

                    Есть. в Ubuntu — network-manager-openvpn.

                    Если посмотреть остальные статьи автора — претензий не возникает. Вот только я бы не хотел видеть подобные статьи в хабе информационной безопасности.
                    • 0
                      network-manager-openvpn — плагин для Network Manager, который позволяет производить необходимые настройки для данного типа подключений. А графическая реализация API данного плагина зависит от графического окружения, например в Plasma это plasma-nm, а для GNOME — network-manager-openvpn-gnome
                    • +3
                      Окно About и интерфейс аж прям веют концом девяностых-началом двухтысячных, самописными провайдерскими подключаторами, и самописным бухгалтерским софтом на делфи, у которого в окне «Подождите пожалуйста, идёт расчёт» была фотка автора (реальный случай в госконторе).
                      • –1

                        А еще были и 70-е и 80-е и начало 90-х. Было другое время, другие компьютеры, да много чего другого.

                      • 0

                        А я все надеюсь что кто то напишет web морду для серверной части, т.к. DE на сервере, vps-ке об этом даже думать не стоит
                        Что еще важнее, это менеджер ключей и конфигураций клиентских тоже через web

                        • 0

                          Это менеджер каких ключей?
                          Что касается web "морды" для серверной части, то в чем проблема? Хотя потребуется, например, поднимать Apache на сервере. А ssh всегда под рукой.

                          • 0
                            на vps поставить апач не составляет труда, как и впрочем весь lamp/lemp в случае необходимости

                            а вот контролировать ключики, сроки их действия, отозванные ключи + сборка клиентского конфига в 1 файлик нажатием нескольких кнопок мыши было бы куда проще

                            есть менеджеры ключей на подобии XCA, и даже мультиплатформенные, но опять же привязанность потребуется к какому либо облаку, или таскать с собой на флэшке, при каждом изменении синхронизировать ключи с данными на сервере, править конфигурации клиентов OpenVPN

                            в общем мелкой мороки много, поэтому я все то в ожидании что кто то напишет web морду для сервера OpenVPN и менеджер ключей
                        • 0

                          Есть модуль для Webmin для OpenvPN
                          http://www.webmin.com/cgi-bin/search_third.cgi?search=openvpn

                          • 0
                            для этого надо ставить webmin, а он в репах на сколько я помню отсутствует в Debian очень давно
                        • +1
                          Ну почему??? Почему все так любят OpenVPN, когда в системах нет клиента по умолчанию для него? Как же ipsec+l2tp хорош именно этом, и не менее безопасен.
                          • 0

                            Вопрос резонный. OpenVPN — один из… Он на слуху, доступен, прост

                            • 0
                              Возможно потому, что ipsec можно распознавать и фильтровать на уровне фаервола. А openvpn не отличим от https. По крайней мере в теории.
                              • 0
                                OpenVPN проще настраивать. У него нет привязки к стандартным портам.
                                • 0

                                  А еще проще настраивать, если пользоваться этим GUI.

                              • 0
                                После слов: — «Разработка велась на пютан ...» интерес пропал полностью. Ради пары иконок терять пятую часть гигабайта постоянно текущей оперативной памяти под динамическую типизацию и гарбидж коллектор нет никакого желания. Вывод — нативный консольный клиент лучше.
                                • 0

                                  Все очень просто. Используйте утилиту только для подготовки конфига. А клиента с этим конфигом запускайте из консоли и никуда ваша оперативная память не уплывет.

                                  • 0

                                    Теперь есть GUI не на "пютан"

                                    • 0
                                      «ЛитрВПН»? Это что, шутка такая? Украли код OpenVPN, запилили «Кузнечика» со шпионскими закладками и продают за деньги? Да эти хитрорыжие вообще обозрели! OpenVPN распространяется под лицензией GNU GPL. Код в студию, суть вашу! И распространять в сорцах!

                                      Владимир Николаевич, судя из дизайна интерфейса с психоделическими цветами можно сделать вывод, что по коду пютана прошлись Сифоном, что сути не поменяло.

                                      Может, чересчур эмоционально, но за воровство GNUтого кода этих хитрых лисов нужно бить по рукам.
                                  • 0
                                    Вопрос не к сабжу, но всё же.
                                    Может быть кто-нибудь знает клиент для Windows, который убивал бы интернет без VPN (kill-switch)?
                                    Или как это сделать в дефолтном GUI?
                                    • 0

                                      Если я вас правильно понял, В брандмауэре разрешаете исходящий трафик только на порт впн, остальное запрет. Когда мне надо было пустить одну машину из локальной сети в интернет с 100% подменой страны, я так делал.

                                        • 0

                                          А теперь сравните с точки зрения рядового пользователя. Ну и это MS

                                      • +2
                                        По теме. Софтине, безусловно, место быть. Сказать честно, предлагаемый на OpenVPN я настроить на свей Ubuntu так и не смог. А аналогов не нашёл! Поэтому до сих пор использую терминал. По-началу даже немного комплексовал ) но свыкся. Над дизайном поработайте немного.

                                        Теперь не по теме. Кто-нибудь сталкивался с проблемой, что после подключения к серверу, некоторые сайты не открываются? Именно в Ubuntu. Никакой зависимости не вижу. С одними работает, с другими — нет. В Окнах с этим же сервером всё ок. В сети об этом почти нет информации.
                                        • 0
                                          sena vconst foldrzelenin 4aba товарищи, не оставьте без внимания :) может кто-нибудь встречался с подобным? Очень долго уже бьюсь.
                                          • 0
                                            Часто это происходит из-за настроек MTU. Попробуйте уменьшить MTU.
                                          • 0

                                            Да, дизайн требует доработки. Ваше наблюдение только подтверждает заголовок. Про вопрос ничего сказать не могу.

                                            • 0
                                              Будьте добры на гитхаб все это дело. Спасибо!
                                              • 0
                                                Автор всё до сих пор не хочет осваивать PyQt и делает интерфейсы на вырвиглазном Tkinter.
                                                • 0

                                                  Согласен Tkinter с Python-ом тяжеловат. Переписал это GUI на чистом Tcl/Tk. На мой взгляд получилось очень неплохо.

                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.