Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 2 Следующий »

Введение


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

В статье будет показано, как развернуть тестовый VPN, а также корпоративный УЦ на базе приложения XCA. С помощью УЦ будет создан ключ и сертификат сервера OpenVPN и произведена инициализация токена клиента. Затем настроим клиент OpenVPN таким образом, чтобы пользователь мог авторизоваться в OpenVPN с помощью Рутокен ЭЦП.

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


sudo apt-get install libccid libpcsclite1 pcscd xca


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


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

sudo dpkg -i librtpkcs11ecp_1.8.2.0-1_amd64.deb



Запустим XCA:

Создание новой базы данных

 Файл→ Новая база данных (Ctrl+N) и сохраняем ее в удобном для Вас месте


Создание ключа УЦ

Создадим ключ УЦ: Раздел "Закрытые ключи"→ "Новый ключ", назовем его CAkey, Keytype выбираем RSA, Keysize 2048 bit.



Создание сертификата УЦ

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


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



Создадим ключ сервера OpenVPN: раздел "Закрытые ключи" → "Новый ключ", назовем его Openvpnkey, Keytype - RSA, Keysize - 2048 bit.

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

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


Подключение библиотеки pkcs#11

 Для работы с Рутокен ЭЦП, утилите XCA нужно указать библиотеку PKCS#11 АктивСофта.

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

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

Далее подключаем Рутокен ЭЦП и создаем ключ «на борту» Рутокен ЭЦП: раздел "Закрытые ключи" → "Новый ключ" → назовем его Clientkey, Keytype - RSA(!) на рутокене, Keysize - 2048 bit.

 По запросу вводим PIN-код.

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

Когда XCA предложит сохранить сертфикат на токен, нажимаем «Да» и вводим PIN-код. 


Установка и настройка OpenVPN


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

$ sudo apt-get install openvpn

6. Создаем файл с параметрами алгоритма Диффи-Хелмана:

$ openssl dhparam -out dh1024.pem 1024

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

$ nano openvpn.conf

У нас, например, он выглядит так:

port 1194
proto tcp
dev tap
 
ca /home/asd/CA.crt
cert /home/asd/Server.crt
key /home/asd/Serverkey.pem
dh /home/asd/dh1024.pem
 
server 10.0.0.0  255.255.255.0
ifconfig-pool-persist ipp.txt
 
keepalive 10 120
 
cipher BF-CBC
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

8. Запускаем сервер OpenVPN:

$ sudo openvpn --config /home/asd/openvpn.conf







  • Нет меток