Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Оглавление

Введение

...

Далее в статье описана настройка авторизации В статье будет описана авторизация в OpenVPN с помощью криптографического USB-токена ключевого носителя Рутокен ЭЦП. Рутокен ЭЦП надежно защищен PIN-кодом от несанкционированного доступа и блокируется при исчерпании попыток ввода PIN-кода, поэтому злоумышленник не попадет в VPN даже в случае кражи токена. Кроме того, в . В Рутокен ЭЦП аппаратно реализованы алгоритмы ГОСТ и RSA, поэтому аутентификация производится «на борту» проверка аутентификационных данных производится внутри токена. Благодаря этому закрытый Закрытый ключ никогда не покидает токен и его невозможно украсть извлекается из носителя, что предотвращает его возможную утечку из оперативной памяти компьютера с помощью троянов. 
В статье будет показано, как развернуть тестовый VPN , а также корпоративный УЦ на базе приложения XCA. С помощью УЦ будет создан ключ и сертификат сервера OpenVPN и произведена инициализация токена клиента. Затем настроим клиент OpenVPN таким образом, чтобы пользователь мог авторизоваться в OpenVPN с помощью Рутокен ЭЦП.

...

Установка и настройка  удостоверяющего центра на сервере

...

Блок кодаcommand
sudo apt -get install libccid libpcsclite1 pcscd xca


Для установки библиотеки librtpkcs11ecp.so следует перейти по указанной ссылке и скачать необходимую версию:


https://www.rutoken.ru/support/download/pkcs/

Блок кодаcommand
sudo dpkg -i librtpkcs11ecp_1.8.2.0-1_amd64.deb



Запустим XCA:

...

Создадим сертификат УЦ: раздел "Сертификаты" → "Новый сертификат"  согласно согласно нижеуказанным скриншотамснимкам:


Создание сертификата сервера OpenVPN

...

Создадим сертификат сервера: раздел "Сертификаты"→  "СертификатыНовый сертификат" согласно представленным скриншотам.снимкам:

Создание сертификата клиента на Рутокен ЭЦП

...

 Для этого указываем путь к ней: Файл → Опции → PKCS#11 provider  → "Добавить" и указываем путь до библиотеки pkcs11(/opt/aktivco/rutokenecp/x86_64/librtpkcs11ecp.so)


Информация

XCA: графический интерфейс инструмент для работы с токенамисертификатами и ключевыми носителями


Генерация ключей на Рутокен ЭЦП

...

При установке пакетов fly-admin-openvpn-server и astra-openvpn-server автоматически будет установлен пакет libgost-astra, поддерживающий защитное преобразование информации в соответствии с алгоритмами ГОСТ.


Устанавливаем OpenVPN:

Блок кодаcommand
$ sudo apt-get install fly-admin-openvpn-server


Настройка

...

Создание DH (Diffie Hellman) ключа

Вы можете создать файл параметров Diffie Hellman (Диффи-Хелмана) с помощью openssl:

Блок кодаcommand
openssl dhparam -out dh2048.pem 2048

Информация

Вы можете заменить 2048 на другие цифры, например на 4096.

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

Более низкие номера имеют более низкую безопасность, но требуют значительно меньшего времени для создания

...


Создаем конфигурационный файл сервера OpenVPN:

Блок кодаcommand
$ nano openvpn.conf


Cо следующими параметрами:

...

Запуск OpenVPN

Запускаем сервер OpenVPN

Блок кодаcommand
$ sudo openvpn --config /home/u/openvpn/openvpn.conf

Примечание

В "боевой" конфигурации сервер следует запускать как демон и ключи/сертификаты не должны лежать в /home

...

На клиентской машине устанавливаем пакеты, необходимые для работы Рутокен ЭЦП:

Блок кодаcommand
$ sudo apt -get install pcscd libpcsclite1 libccid


и библиотеку librtpkcs11ecp.so

Блок кодаcommand
sudo dpkg -i librtpkcs11ecp_1.8.2.0-1_amd64.deb



Установка OpenVPN на клиенте

 Устанавливаем OpenVPN:

Блок кодаcommand
$ sudo apt -get install openvpn

Копируем с сервера сертификат Удостоверяющего Центра (УЦ) к примеру в раздел /home/client/openvpn/CA.crt

Создаем конфигурационный файл клиента

Блок кодаcommand
$ nano openvpnclient.conf

Cо следующими параметрами:

...

Примечание

В параметре remote указываем ip-адрес VPN-сервера

В параметре pkcs11-providers указываем путь к библиотеке PKCS#11 Рутокен.

В параметре pkcs11-id указываем ID контейнера, в котором на Рутокен ЭЦП хранятся ключ и сертификат. Узнать этот ID можно с помощью команды:

Блок кодаcommand
sudo openvpn --show-pkcs11-ids /usr/lib/librtpkcs11ecp.so





Подключение к VPN-серверу

Подключаемся к VPN-серверу:

Блок кодаcommand
sudo openvpn --config /home/client/openvpnclient.conf


По запросу следует ввести PIN-код к Рутокену ЭЦП.


...