Есть ли 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 можно получить здесь. Имея на руках проект, каждый может доработать утилиту по своему усмотрению.
    P.S. Переписал это GUI на чистом Tcl/Tk. На мой взгляд получилось очень неплохо.
    Поделиться публикацией
    Комментарии 55
      +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

                              Про XCA здесь, об облаке тута.

                                0
                                OpenVPN работает на сертификатах, нет никаких ключей, которые было бы необходимо синхронизировать. Сертификаты выпускаются на любом компьютере, достаточно наличия CA-сертификата.
                                  0
                                  синхронизация для того что бы помнить кому выдал, а у кого отозвал
                                    0
                                    синхронизация для того что бы помнить кому выдал, а у кого отозвал

                                    Сертификаты отзываются на УЦ. OpenVPN проверяет валидность сертификатов, включая их отозванность. Отозванные сертификаты недействительны. Запоминать ничего не надо, есть CRL и OCSP. Помнить кому выдал тоже не надо. УЦ знает кому и что выдал. Либо это не УЦ!!!:
                                    image

                                    0

                                    Для выпуска сертификатов сейчас есть такая удобная вещь как УЦ CAFL63:
                                    image

                                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. На мой взгляд получилось очень неплохо.

                                                          0

                                                          Автор освоил все. Приведите хоть один пример различия PyQt и Tkinter с ttk

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

                                                        Самое читаемое