Я собираюсь развернуть openvpn в качестве сервера удаленного доступа Linux (а не между сайтами), и я хотел бы использовать двухфакторную аутентификацию, в частности, использование сертификатов ssl и паролей, привязанных к домену ntlm или ldap-серверу.
Это вообще возможно? Я действительно изо всех сил пытаюсь найти информацию о таких вещах, поэтому я начинаю немного в этом сомневаться. Если кто-то сделал это, было бы хорошо знать (или знает способ сделать это с открытым исходным кодом), или, что еще лучше, иметь конфигурацию сервера openvpn, необходимую для этого.
изменить: я знаю, что сертификат SSL не является идеальным фактором. :)
На стороне клиента вам понадобится следующая опция, чтобы запросить у пользователя имя пользователя / пароль.
auth-user-pass
На стороне сервера вам понадобится следующая опция для проверки имени пользователя / пароля
auth-user-pass-verify scriptname method
scriptname
- это сценарий или программа, которые openvpn выполнит для проверки пользователя / пароля. Если код возврата сценария - истина (0), пользователь входит в систему, в противном случае он становится недействительным. method
это способ, которым пользовательские и передаваемые параметры передаются в scriptname
.
Итак, вам нужен сценарий / программа для проверки пользователей на основе сервера ldap, и все готово.
Изменить: связанная документация Использование альтернативных методов аутентификации
Я использую OpenVPN в качестве сервера удаленного доступа в Ubuntu, а для двойной аутентификации у меня есть сервер аутентификации Deepnet, который генерирует одноразовые пароли для использования в сочетании со статическими паролями, которые, в свою очередь, аутентифицируют пользователей VPN в AD.
Вы пытались следовать http://openvpn.net/index.php/open-source/documentation/howto.html#security и использовать openvpn-auth-pam?
Сам не делал, но пошел бы по пути, описанному в https://help.ubuntu.com/community/ActiveDirectoryHowto#Pam настроить пам против AD. После этого указать openvpn использовать pam не составит труда.
У меня есть друг, который делает именно это: OpenVPN с сертификатами SSL, используемыми для аутентификации каждой конечной точки, затем появляется запрос имени пользователя / пароля, и учетные данные пользователя аутентифицируются с сервера AD через LDAP до того, как появится соединение OpenVPN. Я знаю, что он этим занимается, потому что иногда у меня были учетные данные для его использования, и я сам входил в систему. Так что да, это возможно, но у меня нет конфигов; Прости.