Используйте физический криптографический токен с бесплатной версией сообщества OpenVPN

В настоящее время я настраиваю OpenVPN для предоставления компании доступа к нескольким клиентам. Наше требование - использовать сертификаты, защищать паролем клиентские ключи, а также использовать двухфакторную (MFA) аутентификацию для каждого клиента.

У меня есть куча токенов Fortinet FortiToken 200, которые я хотел бы использовать, но я не могу найти информацию, которая показывает, как использовать эти токены с чем-то вроде OpenVPN. Посмотрев еще немного, я не могу найти никакой информации, которая показывает, как можно использовать физический токен с OpenVPN.

Итак, мой вопрос, как я могу использовать физический токен с OpenVPN? Я не могу использовать что-то вроде Google Authenticator, так как мы планируем подключить клиентов к VPN через их смартфоны. Документация с инструкциями по OpenVPN PKCS#11 написана очень плохо.

Я начинаю полагать, что если MFA является требованием, OpenVPN просто не является жизнеспособным вариантом в данный момент.

Спасибо за вашу помощь.

1 ответ

Решение

В принципе:

  1. Установите драйвер pkcs#11 для вашего токена (узнайте у производителя токена, если он его не поставляет).
  2. Скажите openvpn использовать этот драйвер и перечислите доступные ключи на токене:
    • openvpn --show-pkcs11-ids /path/to/pkcs11/driver.so
  3. В вашем конфигурационном файле укажите модуль и сериализованный идентификатор для вашего ключа из --show-pkcs11-ids вывод, например:

    pkcs11-provider /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
    pkcs11-id Gnome \ x20Keyring / 1 \ x2E0 / 1 \ x3AUSER \ x3ADEFAULT / Gnome2 \ x20Key \ x20Storage / 417AEDAAB81FEF6AEBD1EC43D76A630CAAA4722A

(Обязательно избегайте обратной косой черты в pkcs-id, например, Gnome\x20Keyring становится Gnome\\x20Keyring.)

Другие вопросы по тегам