Я работаю над проектом, в котором мне нужно установить аутентификацию с одноразовым паролем. Я успешно установил openVPN, к которому могу подключаться без аутентификации. Я установил программное обеспечение OTP linOTP, которое я подключил к своему серверу LDAP.
Соединение с сервером LDAP работает, и я назначил пользователю токен. При тестировании токена с использованием интерфейса отладки: // myip: 5001 / validate / check он печатает ответ:
{
"version": "LinOTP 2.8.0.3",
"jsonrpc": "2.0",
"result": {
"status": true,
"value": true
},
"id": 0
}
Это означает, что аутентификация для linOTP работает, однако, когда я включаю аутентификацию по паролю на сервере openVPN, аутентификация не выполняется. common-linotp:
auth [success=1 default=ignore] pam_python.so /lib/security/pam_linotp.py \
nosslhostnameverify nosslcertverify debug url=https://localhost/validate/check
auth requisite pam_deny.so
auth required pam_permit.so
Я буду использовать самоподписанные сертификаты HTTPS, поэтому я включил nosslhostnameverify и nosslcertverify в соответствии с разделом pam_py_linotp этого руководства: https://www.linotp.org/howtos/howto-openvpn. html
и, наконец, файл /etc/pam.d/openvpn:
@include common-linotp
session sufficient pam_permit.so
account sufficient pam_permit.so
Я новичок в настройке сервера и буду признателен за любую помощь.
На сервере работает ubuntu 12.04.
Для меня эта проблема была решена добавлением hide_otp_input
. Это плохо задокументировано,но решил ту же проблему для меня.
Я использую модуль pam_linotp.so
, а не реализацию Python, которая может иметь значение.