6.2.2 JaCarta PKI для OpenVPN Linux
Аннотация
Заголовок раздела «Аннотация»Данное руководство описывает процесс конфигурирования OpenVPN для возможности использования носителей JaCarta® PKI в качестве средства двухфакторной аутентификации. Руководство подразумевает, что существует работающая клиент-серверная инфраструктура, для которой настраивается поддержка JaCarta PKI. В руководстве не рассматриваются прочие настройки, косвенно связанных с работой OpenVPN, как например, сетевые настройки, настройки таблиц маршрутизации или файервола.
Описание демо-стенда
Заголовок раздела «Описание демо-стенда»Центр сертификации
Заголовок раздела «Центр сертификации»Linux-система с установленными пакетами:
-
xca
-
openssl
-
libccid
-
pcscd
-
Единый Клиент JaCarta 3.1 или выше (jacarauc-3.1.xxx)
Сервер OpenVPN
Заголовок раздела «Сервер OpenVPN»Linux-система с установленными пакетами:
-
openvpn
-
openssl
Клиент OpenVPN
Заголовок раздела «Клиент OpenVPN»Linux-система с установленными пакетами:
-
openvpn
-
openssl
-
Единый Клиент JaCarta 1 или выше (jacarauc-3.1.xxx)
-
libpkcs11-helper версии 1.26 или выше - http://ftp.de.debian.org/debian/pool/main/p/pkcs11-helper/libpkcs11-helper1_1.27-1_amd64.deb
Настройка центра сертификации
Заголовок раздела «Настройка центра сертификации»- Запустите xca и создайте новую базу данных, задайте пароль.

- Создайте ключ центра сертификации RSA 2048.

- Создайте новый самоподписанный корневой сертификат центра сертификации. Для этого перейдите на вкладку “Сертификаты” и выберите “Новый”. Задайте шаблон нового сертификата CA, укажите данные владельца сертификата, где commonName определяет название центра сертификации. В области применения ключа выберите Digital Signature (электронная подпись), Certificate Sign (подпись сертификатов), CRL Sign (подписание списка отзыва сертификатов).


-
Создайте новый ключ сервера RSA 2048 и сертификат сервера.
-
Перейдите на вкладку “Сертификаты” и выберите “Новый”. Установите шаблон нового сертификата HTTPS_server, а также выберите сертификат подписанта — созданный сертификат центра сертификации. Укажите данные владельца сертификата, где commonName должен совпадать с именем OpenVPN-сервера. В области применения ключа укажите Digital Signature (электронная подпись), Key Agreement (согласование ключей), Key Encipherment (шифрование ключей), а в поле расширенного использования ключа — TLS Web Server Authentication.


- В настройках программы XCA выберите PKCS#11 Provider и добавьте библиотеку libjcPKCS11-2.so. Данная библиотека поставляется вместе с драйверами Единый Клиент JaCarta, и располагается в стандартной директории размещения общих библиотек, например /usr/lib/libjcPKCS11-2.so. Создайте новый ключ пользователя RSA 2048, выбрав в списке подключенный токен JaCarta PKI, введите запрашиваемый ПИН-код пользователя.

- Создайте сертификат клиента. Перейдите на вкладку “Сертификаты” и выберите “Новый”. Установите шаблон нового сертификата HTTPS_client, а также выберите сертификат подписанта — созданный сертификат центра сертификации. Укажите данные владельца сертификата, где commonName должен совпадать с именем OpenVPN-клиента. В области применения ключа укажите Digital Signature (электронная подпись), Key Agreement (согласование ключей), а в поле расширенного использования ключа — TLS Web Client Authentication. Подтвердите запись сертификата на токен и введите ПИН-код.


Альтернативным способом создания клиентских ключей и сертификатов может быть способ, аналогичный созданию ключей и сертификатов сервера (без подключения токена), с последующим экспортом в формат *.p12 (или *.pfx) и записью на токен через ПК “Единый Клиент JaCarta”. 8. Экспортируйте сертификат центра сертификации в файл CA.crt, а ключи и сертификат сервера в server_key.pem и server.crt.

Настройка сервера OpenVPN
Заголовок раздела «Настройка сервера OpenVPN»-
Создайте каталог для хранения ключей и сертификатов. Скопируйте в него сертификат центра сертификации, сертификат сервера, а также ключ сервера. В этом же каталоге создайте ключ Диффи-Хэллмана командой: $ openssl dhparam -out dh2048.pem 2048
-
Создайте файл конфигурации. Например /etc/openvpn/openvpn.conf
-
Задайте конфигурацию сервера. Укажите пути к сертификатам центра сертификации, а также ключу сервера и параметрам Диффи-Хэллмана. В данном руководстве конфигурация приводится в качестве примера.

- Запустите OpenVPN-север командой:
$ openvpn —config /etc/openvpn/openvpn.conf [путь к файлу конфигурации]
Настройка клиента OpenVPN
Заголовок раздела «Настройка клиента OpenVPN»- Создайте каталог для хранения сертификата центра сертификации и скопируйте в него сертификат центра сертификации.
- Создайте файл конфигурации. Например /etc/openvpn/openvpn.conf
- Задайте конфигурацию клиента. Укажите путь к сертификату центра сертификации. Дополнительно задайте путь до библиотеки libjcPKCS11-2.so, поставляемого вместе с драйвером Единый Клиент JaCarta, параметром pkcs11-providers. Также необходимо указать id в параметре pkcs11-id. ID представляет из себя Serialized id строку, получаемую выполнением команды: $ openvpn —show-pkcs11-ids /usr/lib/libjcPKCS11-2.so [путь до библиотеки libjcPKCS11-2.so]

В данном руководстве конфигурация приводится в качестве примера.

- Запустите OpenVPN-клиент командой:
$ openvpn —config /etc/openvpn/openvpn.conf [путь к файлу конфигурации]
- Если настройка выполнена без ошибок, появится запрос ПИН-кода от JaCarta PKI. После введения ПИН-кода, соединение будет установлено.

