Table of Contents | ||||
---|---|---|---|---|
|
Введение
В данной инструкции описывается, как настроить авторизацию в OpenVPN с помощью Рутокен ЭЦП 2.0/3.0.
За основу взята статья http://habrahabr.ru/company/aktiv-company/blog/137306/.
Проверка модели устройства
- Подключите USB-токен к компьютеру.
- Для определения названия модели USB-токена откройте Терминал и введите команду:
...
В результате в окне Терминала отобразится название модели USB-токена :или только ID.
Убедитесь, что используете: Aktiv Rutoken ECP
Info |
---|
Стенд
В некоторых случаях название устройства может не отображаться, тогда ориентируйтесь на значение 0a89 в ID - такой вендор id имеют все устройства Рутокен. |
Стенд
Для примера возьмем Рутокен ЭЦП 2.0 2100Нам понадобится Рутокен ЭЦП, отформатированный через Панель управления Рутокен, сервер и клиент. В качестве дистрибутива использовалась Ubuntu -12.10-desktop-i386.1804.
Общий порядок действий
Сервер
1. Устанавливаем необходимые для работы Рутокен ЭЦП 2.0 пакеты:
Code Block |
---|
$ sudo apt-get install pcscd libpcsclite1 libccid |
...
Создаем сертификат УЦ: Certificates->New Certificate согласно представленным скриншотам.:
3.3 Создаем ключ сервера OpenVPN: Private Keys-> New Key, назовем его Serverkey, Keytype - RSA, Keysize - 2048 bit.
Создаем сертификат сервера: Certificates->New Certificate согласно представленным скриншотам.
3.4 Экспортируем сертификат УЦ в файл CA.crt, ключ сервера в файл Serverkey.pem и сертификат сервера в файл Server.crt (Private Keys->Export, Certificates->Export).
4. Для работы с Рутокен ЭЦП нужна библиотека PKCS#11. Указываем . Загрузить ее можно по ссылке. После загрузки устанавливаем библиотеку и указываем путь к ней: File->Options.
4.1 Подключаем Рутокен. Создаем ключ «на борту» Рутокен ЭЦП: PrivateKeys -> NewKey. По запросу вводим PIN-код.
4.2 Создаем сертификат клиента:
4.3 Когда XCA предложит сохранить сертфиикат сертификат на токен, нажимаем «Yes» и вводим PIN-код. Закрываем XCA.
...
Code Block |
---|
$ openssl dhparam -out dh1024dh2048.pem 10242048 |
7.Создаем конфигурационный файл сервера OpenVPN:
...
Code Block |
---|
port 1194 proto tcp dev tap ca /home/asduser/CA.crt cert /home/asduser/Server.crt key /home/asduser/Serverkey.pem dh /home/asduser/dh1024dh2048.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 |
...
Code Block |
---|
$ sudo openvpn --config /home/asduser/openvpn.conf |
Клиент
9. Устанавливаем пакеты, необходимые для работы Рутокен ЭЦПРутокена:
Code Block |
---|
$ sudo apt-get install pcscd libpcsclite1 libccid |
...
Code Block |
---|
$ sudo apt-get install openvpn |
11. Узнаем ID контейнера, в котором на Рутокене хранятся ключ и сертификат. Узнать этот ID можно с помощью команды:
Code Block |
---|
$ openvpn --show-pkcs11-ids [путь к библиотеке PKCS#11 Рутокен ЭЦП] |
12. Создаем конфигурационный файл клиента.
Code Block |
---|
client dev tap proto tcp remote xxx.xxx.xxx.xxx 1194 resolv-retry infinite nobind persist-key persist-tun ca /home/qwe/CA.crt pkcs11-providers /usr/lib/librtpkcs11ecp.so pkcs11-id 'Aktiv\x20Co\x2E/Rutoken\x20ECP/2d105684/Rutoken\x20ECP\x20\x3Cno\x20label\x3E/C67F8A314C24E080' pkcs11-pin-cache 300 comp-lzo verb 3 |
- В параметре
pkcs11-providers
указываем путь к библиотеке PKCS#11.
- В параметре
pkcs11-id
...
- указываем ID контейнера,
...
- полученный на 11 шаге.
13
Code Block |
---|
$ openvpn --show-pkcs11-ids [путь к библиотеке PKCS#11 Рутокен ЭЦП] |
12. Подключаемся к VPN-серверу:
Code Block |
---|
$ openvpn --config [путь к файлу конфига] |
Info |
---|
Если запроса PIN-кода Рутокена не происходит, выполните действия по инструкции. |