Сертификат OpenVPN ИЛИ plugin-auth-pam аутентификация

Настраивая сервер OpenVPN, я могу включить или основанную на сертификате аутентификацию или использование имени пользователя/аутентификации по паролю openvpn-plugin-auth-pam плагин, но не оба одновременно.

Я включаю имя пользователя/аутентификацию по паролю следующим образом:

plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login
client-cert-not-required
username-as-common-name

Но как только я добавляю следующие строки, мои клиенты настроили для остановки аутентификации сертификата работать со следующими сообщениями в журнале:

TLS Error: Auth Username/Password was not provided by peer        
TLS Error: TLS handshake failed                                   

Там какой-либо путь не состоит в том, чтобы потребовать имени пользователя/пароля от клиентов та аутентификация сертификата использования?

7
задан 21 May 2014 в 22:06
1 ответ

OpenVPN не поддерживает несколько одновременных методов аутентификации. Лучшее решение для этого, как упоминалось в комментариях, - запустить два экземпляра OpenVPN. Его сложнее запустить на том же компьютере, но это определенно выполнимо.

Однако, похоже, есть некоторые обходные пути, которые могут быть подходящими для вашей ситуации.

если вы знаете, для каких сертификатов требуется пароль. а какие нет, то ответ - да. используйте сценарий auth-user-pass-verify на стороне сервера для первой проверки DN сертификата (если вы также установите --username-as-common-name, тогда вы будете знать общее имя сертификата внутри скрипта проверки автоматически). если это сертификат, для которого вы знаете, что был введен пароль затем используйте pam для проверки имени пользователя и пароля. если вы знаете, что сертификат не содержит пароля, сценарий возвращает '0', чтобы разрешить доступ.

Обратите внимание, что нет способа автоматически определить, ввел ли пользователь в пароле сертификата или нет - это вне рукопожатия openssl и поэтому не известен серверу OpenVPN.

Источник: https://openvpn.net/archive/openvpn-users/2007-12/msg00179.html

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

1
ответ дан 2 December 2019 в 23:51

Теги

Похожие вопросы