Аннотация

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

Описание демо-стенда

Центр сертификации

Linux-система с установленными пакетами:

  • xca

  • openssl

  • libccid

  • pcscd

  • Единый Клиент JaCarta 3.1 или выше (jacarauc-3.1.xxx)

Сервер OpenVPN

Linux-система с установленными пакетами:

  • openvpn

  • openssl

Клиент OpenVPN

Linux-система с установленными пакетами:

Настройка центра сертификации

  1.  Запустите xca и создайте новую базу данных, задайте пароль.

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

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

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

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

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

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

Альтернативным способом создания клиентских ключей и сертификатов может быть способ, аналогичный созданию ключей и сертификатов сервера (без подключения токена), с последующим экспортом в формат *.p12 (или *.pfx) и записью на токен через ПК "Единый Клиент JaCarta".

       8. Экспортируйте сертификат центра сертификации в файл CA.crt, а ключи и сертификат сервера в server_key.pem и server.crt.

Настройка сервера OpenVPN

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

       4. Запустите OpenVPN-север командой:

$ openvpn --config /etc/openvpn/openvpn.conf [путь к файлу конфигурации]

Настройка клиента OpenVPN

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

       4. Запустите OpenVPN-клиент командой:

$ openvpn --config /etc/openvpn/openvpn.conf [путь к файлу конфигурации]

       5. Если настройка выполнена без ошибок, появится запрос ПИН-кода от JaCarta PKI. После введения ПИН-кода, соединение будет установлено.