Не так давно Компания «Актив» предоставила в открытый доступ на GitHub исходный код версии продукта Рутокен VPN Community Edition. В этой статье мы хотим рассказать зачем и для кого мы это сделали, как можно воспользоваться исходным кодом, и чего ожидаем в результате от сообщества разработчиков.

Зачем нужен еще один VPN? 

Как известно, события последних полутора лет стимулировали развитие рынка VPN, и сегодня он переживает эпоху роста. Конкуренция на этом рынке значительная, цены на услуги растут. Одновременно Россия в 2021 году остается в десятке топ-потребителей VPN сервисов, т.е. спрос на рынке присутствует.  

Создавая Рутокен VPN, основной «фишкой» мы решили сделать ориентацию на малый и средний бизнес, т.е. на компании, которые, вероятно, не имеют в штате постоянного и высококвалифицированного системного администратора. Именно для таких компаний мы сделали версию продукта Рутокен VPN, которая упрощает настройку VPN-сервера и клиента. Кроме того, нашей целью было предоставить разработчикам возможность развивать интересный и востребованный продукт, совершенствовать свои навыки, получая таким образом бесценный опыт и дополнительные очки к своему CV. Не скроем также, что заинтересованы и в советах участников профессионального сообщества по улучшению Рутокен VPN, которым будем максимально рады. 

Чем может быть полезен Рутокен VPN Community Edition: 

  • быстро подготовить инфраструктуру для защищенного подключения к сетям компании; 

  • внедрить двухфакторную аутентификацию, где в качестве фактора владения используются криптографические токены Рутокен ЭЦП; 

  • обеспечить удобство пользователей: операции по настройке VPN-клиента могут быть выполнены с помощью web-интерфейса самообслуживания, а для подключения к VPN достаточно лишь запустить клиент, подключить одно из совместимых устройств Рутокен и ввести PIN-код. 

В результате обеспечивается безопасность соединения за счет использования RSA 2048 для аутентификации и AES 256 для шифрования канала связи. Аутентификация удаленного пользователя происходит с применением криптографического токена, а это значит, что ключи аутентификации не могут быть скопированы, ведь криптографические операции с ними выполняются на самом устройстве. 

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

Рутокен VPN Community Edition можно развернуть на Linux-based ОС. Мы поддерживаем работу в Ubuntu 16 и Ubuntu 20. 

Клиентская часть поддерживается на: 

  • Microsoft Windows 7 SP1 и выше - Рутокен VPN Клиент, opensource решения; 

  • OSX 10.11 и выше - Рутокен VPN Клиент, opensource решения; 

  • iOS 6.1 и выше - opensource решения; 

  • Android 4.0 и выше - opensource решения 

Как работает версия Рутокен VPN Community Edition  

Для наилучшего понимания взаимодействия компонентов при работе с «открытым» Рутокен VPN мы схематично представили их на рисунке. 

Рутокен VPN Community Edition устанавливается на выделенный физический или виртуальный хост внутри сети. В результате установки этот хост начинает выполнять функции VPN-сервера, web-сервера и удостоверяющего центра PKI. 

Web-сервер 

Web-сервер содержит функциональность управления, доступную через web-интерфейс управления, и функциональность «самообслуживания пользователя», доступную через web-интерфейс «Личного кабинета пользователя». Этот сервер – ключевой компонент решения, позволяющий управлять VPN-сервером и использовать функциональность Удостоверяющего Центра. 

В web-интерфейсе управления представлены следующие основные функции:   

  • Настройка сети, роутинга, управление настройками VPN-сервера; 

  • Управление инфраструктурой PKI: выпуск и отзыв сертификатов пользователей, обновление сертификата VPN-сервера. 

  • Управление учетными записями дистанционных пользователей: интеграция с Active Directory, добавление и удаление локальных учетных записей.  

 Через web-интерфейс «Личного кабинета пользователя» без непосредственного участия администратора могут быть выполнены следующие действия: 

  • Генерация криптографических ключей на токене и получение сертификата для подключения к VPN; 

  • Скачивание Рутокен VPN Клиента и конфигурационного файла к нему; 

  • Скачивание конфигурационного файла для использования на мобильных устройствах; 

  • Отзыв (возврат или удаление) собственного сертификата пользователя. 

 Backend web-сервера использует Django и Nginx. Web-интерфейс реализован на Angular 10. Взаимодействие с токеном пользователя из браузера реализовано через Рутокен Плагин. 

Как настроить Рутокен VPN Community Edition? 

В подтверждение вышесказанного о простоте и удобстве разворачивания Рутокен VPN Community Edition, продемонстрируем, как же это делается. 

Для быстрой автоматической установки можно воспользоваться специальным скриптом.
Для разворачивания решения вам понадобится зайти в подходящий образ Ubuntu, скачать скрипт из репозитория и запустить его с помощью команды:

sudo -s bash install.sh 

После перезагрузки сервис "поднимется" автоматически. Останется только выполнить настройку сети. Для этого зайдите на страницу по адресу: http://127.0.0.1. Введите стандартные логин “RutokenVpn” и пароль “RutokenVpn” и на странице «Настройка сети» заполните форму с настройками: 

  • IP адрес сервера - постоянный адрес, на котором будет находиться Рутокен VPN сервер; 

  • Маска подсети - маска подсети локальной сети, в которой будет работать Рутокен VPN сервер; 

  • IP шлюза подсети - адрес шлюза локальной сети, в которой будет работать Рутокен VPN сервер; 

  • DNS (DNS 2 опционально) - DNS локальной сети, в которой будет работать Рутокен VPN сервер.

Наконец, нужно дать название и внешний IP вашему развернутому сервису. Зайдите на сервис по только что заданному IP со страницы «Настройки сети», введите название компании, нажмите "Сохранить настройки".

На странице “Настройка VPN-сервиса” задайте внешний IP. Для этого на роутере настройте переадресацию порта 1194 по протоколу UDP. Также выберите IP адресацию из списка. IP адресацию нужно выбрать отличную от настроек сети. Если вы устанавливаете решение на виртуальной машине, то не забудьте включить режим Bridged.

Сервис готов к работе. Теперь вам доступны все возможности панели администрирования - добавление локальных и Microsoft Active Directory-  пользователей, генерация мобильных и токен-сертификатов, настройка доступа в личный кабинет, просмотр активных пользователей и блокировка подключений. Подробная инструкция, а также руководства пользователя и администратора располагаются по адресу - https://dev.rutoken.ru/pages/viewpage.action?pageId=20120334.

Пользовательский опыт

Что нужно сделать пользователю, чтобы подключиться внутрь корпоративной сети через Рутокен VPN Community Edition?

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

Для продолжения работы, в зависимости от ОС и браузера пользователя, будет предложено установить плагин и расширение для браузера, которые понадобятся для корректной работы с токенами.

После его генерации остается только загрузить конфигурационный файл и установить клиент под требуемую ОС.

После загрузки нужного клиента, мы добавляем наш конфигурационный файл, вводим PIN-код токена, и доступ в корпоративную сеть открывается.

Более подробное руководство пользователя представлено на нашем портале документации Рутокен.

Давайте сделаем Рутокен VPN лучше!

Одной из причин, по которой Компания «Актив» приняла решение выложить исходный код в открытый доступ, стало наше желание предложить сообществу разработчиков сделать продукт лучше. Если вы знаете, как улучшить наше решение, и что может быть полезно пользователям, то сообщите об этом в комментариях, воспользуйтесь формой обратной связи или на почту info@rutoken.ru или в репозитории.

Комментарии (14)


  1. vvsvic
    16.09.2021 15:42
    +2

    А какой в нем смысл без сертификата ФСБ и шифрования по ГОСТу?
    Что в нем "Ру", кроме токена?


    1. DimTim84 Автор
      16.09.2021 15:59
      +4

      Смысл в том, что его разворачивать и пользоваться им удобнее, чем чистым openvpn, экономит ресурс админов на поднятии VPN сервера, в целом получается просто, безопасно, удобно и с возможностью доработок под конкретные нужды. И еще в нем русский web-интерфейс.


      1. scruff
        17.09.2021 10:15
        -1

        Экономит? Серьезно? Помоему нет ничего более удобного и быстрого чем скачать готовый openvpn-истраллер с гитхаба и поставить его за 5 мин.


  1. shokedjobana
    16.09.2021 16:37

    Тот же Pritunl прекрасно разворачивается скриптом.


    1. DimTim84 Автор
      16.09.2021 18:42

      В бесплатном Pritunl только базовые функции, а дополнительные фичи, как например, двухфакторная аутентификация, настраиваемая маршрутизация (весь трафик через vpn или только отдельные маршруты) только по платной подписке


      1. shokedjobana
        16.09.2021 19:55

        Все что Вы назвали работает в бесплатной версии.


        1. DimTim84 Автор
          16.09.2021 20:24
          +2

          Я опираюсь только на информацию на офф. сайте.

          Мы сделали удобное и просто решение для себя, которое покрывает все потребности, при этом разворачивается и настраивается за несколько минут. И просто решили поделиться им. Ведь для каждой задачи есть свое решение и чем больше выбор, тем лучше)


  1. BigD
    16.09.2021 17:24

    После выхода Wireguard новые VPN продукты особого смысла не имеют :)


    1. domix32
      17.09.2021 10:53
      +2

      Имеют, хотя бы потому что тот же WireGuard умеют блочить на уровне протоколов. Как минимум пока в нем не запилят мимикрию и рандомизацию размеров пакетов могут потребоваться другие VPN.


  1. BigD
    16.09.2021 17:24

    Роуминг на обеих сторонах туннеля поддерживаете при смене IP?


    1. DimTim84 Автор
      16.09.2021 19:00

      Если при конфигурировании в настройках задать доменное имя вместо внешнего ip, то в случае недоступности основного сервера, можно обойтись заменой dns маршрута и тогда заработает у клиентов без обновления конфига и это добавляет гибкости решению. Если вместо роуминга Вы имели ввиду роутинг, и я правильно понял Ваш вопрос.


      1. BigD
        16.09.2021 21:54

        Не роутинг, а роуминг без потери соединения при смене IP:

        Built-in Roaming

        The client configuration contains an initial endpoint of its single peer (the server), so that it knows where to send encrypted data before it has received encrypted data. The server configuration doesn't have any initial endpoints of its peers (the clients). This is because the server discovers the endpoint of its peers by examining from where correctly authenticated data originates. If the server itself changes its own endpoint, and sends data to the clients, the clients will discover the new server endpoint and update the configuration just the same. Both client and server send encrypted data to the most recent IP endpoint for which they authentically decrypted data. Thus, there is full IP roaming on both ends.


  1. VolCh
    16.09.2021 21:10
    +1

    А клиента для Убунту нет?


    1. DimTim84 Автор
      16.09.2021 22:28
      +1

      Увы, на данный момент есть клиент только под Win и Mac.
      Возможно, в будущем появится, т.к. вопрос периодически возникает.