Установка и настройка Рутокен VPN Community Edition

  • Автор:

Rutoken-VPN-Community-Edition-Server-000.pngВыбирая решения для организации VPN администратору приходится учитывать множество факторов, как технологических, так и эксплуатационных. Мало просто установить сервер удаленного доступа, нужно еще выполнить настройку клиентов, а затем управлять ими. Если вы ищите комплексное решение, то следует обратить внимание на Рутокен VPN - который построен на базе OpenVPN и кроме всех присущих этой технологии плюсов реализует поддержку аутентификации по токенам и простое и удобное управление пользователями.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Рутокен VPN предлагается в двух вариантах: коммерческий Enterprise Edition и бесплатный Community Edition. Последний не поддерживает алгоритмы шифрования ГОСТ (только RSA) и не имеет технической поддержки и обновлений от производителя. При этом обе редакции поддерживают работу с токенами Рутокен ЭЦП 3.0, ЭЦП 2.0 2100, ЭЦП 2.0 Flash, ЭЦП PKI, обратите внимание, что все это устройства с аппаратной поддержкой шифрования и неизвлекаемыми ключами. Использовать для работы с Рутокен VPN популярные и распространенные Рутокен Lite не получится.

Рекомендуемой платформой для установки продукта является Ubuntu 20.04 LTS на которой мы и выполнили развертывание. Разработчики не исключают варианты работы в среде других ОС, но в этом случае, возможно, вам придется выполнять адаптацию продукта собственными средствами.

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

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

sudo -s

Начнем с создания служебного пользователя ubuntu, который необходим для установки и работы Рутокен VPN:

groupadd ubuntu
useradd -m -N -G users,sudo,ubuntu -s /bin/bash ubuntu

Продукт использует для управления сетью старую схему на основе ifupdown вместо netplan и отключает схему ifnames, но реализовано это крайне неудачно и если ничего не делать, то после установки сервера и автоматической перезагрузки вы полностью потеряете сетевой доступ к устройству!

Естественно, что такой вариант является нежелательным, поэтому предпримем некоторые меры. Прежде всего откроем файл /etc/netplan/00-installer-config.yaml и заменим в нем имя интерфейса на eth0.

Rutoken-VPN-Community-Edition-Server-001.pngСохраним содержимое файла, но не перезагружаем систему и не перезапускаем сетевые службы, иначе вы также полностью потеряете сетевой доступ к серверу.

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

Rutoken-VPN-Community-Edition-Server-002.pngЗатем добавим скрипту право на исполнение и запустим его. Все это делается следующей последовательностью команд:

cd
wget https://raw.githubusercontent.com/AktivCo/Rutoken-VPN-Community-Edition-Server/3e95be0ac50d290beb3f91e165b3b7df7c23fa82/install.sh
chmod +x install.sh
./install.sh

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

Rutoken-VPN-Community-Edition-Server-003.pngПосле окончания установки система будет автоматически перезагружена.

Чтобы получить доступ к панели управления Рутокен VPN наберите в браузере адрес http://IP_ADDRESS, где IP_ADDRESS - текущий IP-адрес сервера. В качестве логина и пароля используйте RutokenVpn.

Rutoken-VPN-Community-Edition-Server-004.pngСразу после первого входа в систему вам будет предложено настроить сеть, настройки применяются сразу и если вы изменили IP-адрес, то после применения настроек заново войдите в панель управления по новому адресу.

Rutoken-VPN-Community-Edition-Server-005.pngЗатем вам предложат создать собственный центр сертификации, для чего вам потребуется указать желаемое имя и выбрать тип ключа, в Community Edition это безальтернативно RSA.

Rutoken-VPN-Community-Edition-Server-006.pngНа последнем этапе настройки вас попросят указать внешний IP-адрес, на который будут подключаться клиенты, выбрать диапазон адресов для внутренней сети и указать, хотите ли вы отправлять в VPN-туннель весь трафик. В качестве диапазонов VPN-сети предлагаются три заранее заданных варианта, указать произвольный диапазон возможности нет.

Rutoken-VPN-Community-Edition-Server-007.pngНа этом настройка Рутокен VPN завершена. Но перед тем, как начинать эксплуатацию нужно выполнить ряд дополнительных действий, иначе при следующей перезагрузке сервер снова запустится со старым IP-адресом. Дело в том, что логика разработчиков была проста - поломать netplan, после чего будет работать ifupdown, но при этом будет потерян сетевой доступ при первой перезагрузке. Чтобы этого избежать, мы починили netplan, поэтому теперь следует его корректно отключить.

Откроем /etc/default/grub и приведем указанный параметр к следующему виду:

GRUB_CMDLINE_LINUX="net.ifnames=0 netcfg/do_not_use_netplan=true"

Сохраним файл и обновим параметры загрузчика:

update-grub

Затем удалим конфигурационный файл netplan:

rm /etc/netplan/00-installer-config.yaml

После чего перезагружаем систему.

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

Rutoken-VPN-Community-Edition-Server-008.png

Рутокен VPN предлагает два вида сертификатов:

  • Для ключа - требует обязательного использования токена и установки Рутокен VPN клиент, который представляет собой модифицированный OpenVPN клиент для работы с аппаратным шифрованием. В Linuх для работы используется обычный OpenVPN и поддерживаются только RSA-ключи.
  • Для мобильных устройств - в этом случае генерируется конфигурация OpenVPN, объединенная в один файл с ключами и которую можно использовать на любом устройстве, а не только на мобильном. Для работы потребуется обычный OpenVPN клиент.

Среди ограничений мы можем запретить пользователю:

  • Самостоятельно генерировать сертификат для ключа
  • Самостоятельно генерировать сертификат для мобильных устройств
  • Входить в личный кабинет
  • Подключаться к VPN

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

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

Rutoken-VPN-Community-Edition-Server-009.pngПоследний раздел Управление устройством также не богат настройками, в нем можно изменить пароль администратора, логин при этом жестко зафиксирован как RutokenVpn, настроить синхронизацию времени, выключить или перезагрузить устройство и получить доступ к логам, по умолчанию ведение логов выключено.

Теперь о том, что под капотом. Как уже было сказано для организации VPN использован OpenVPN, а веб-сервер реализован на NGINX, что дает возможность их тонкой настройки традиционным образом - через редактирование конфигурационных файлов. Сам Рутокен VPN располагается в /opt/Rutoken-VPN-Community-Edition-Server и так как это open-source продукт, то вы тоже можете вносить в него необходимые изменения.

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

Rutoken-VPN-Community-Edition-Server-011.pngПри этом мы можем достаточно тонко настроить кабинет пользователя, например. если вы не используете токены, то можете отключить возможность создавать конфигурацию для ключа. Также прямо из кабинета можно загрузить клиентское приложение для наиболее распространенных систем.

Rutoken-VPN-Community-Edition-Server-012.pngИз коробки для Windows и mac OS X загружается Рутокен VPN клиент, но это поведение несложно изменить, достаточно просто заменить ссылки на скачиваемые файлы в /opt/Rutoken-VPN-Community-Edition-Server/front/app/common/download-client/download-client.component.html, ниже представлен готовый файл с прописанными ссылками на OpenVPN Connect v3.

download-client.component.zip
SHA1 F9FA740C48965489258A89F84147C8C415CAB4A4

После того, как вы внесли изменения в файл или заменили его скачанным нужно пересобрать проект:

npm run webpack:opensource

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

Как видим Рутокен VPN Community Edition - простой, но удобный продукт на базе OpenVPN, позволяющий быстро развернуть сервер удаленного доступа корпоративного уровня с возможностью интеграции в ActiveDirectory и самообслуживанием клиентов. Поэтому советуем в обязательном порядке с ним ознакомиться.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments