Назад | Перейти на главную страницу

linOTP для аутентификации openVPN ubuntu 12.04

Я работаю над проектом, в котором мне нужно установить аутентификацию с одноразовым паролем. Я успешно установил 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, аутентификация не выполняется.

AUTH-PAM: BACKGROUND: user 'jdoe' failed to authenticate: Authentication failure

Я сделал все конфигурации в соответствии с этим руководством: https://www.howtoforge.com/how-to-set-up-openvpn-to-authenticate-with-linotp

Вот так выглядит мой client.ovpn:

client
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert jdoe.crt
key jdoe.key
ns-cert-type server
comp-lzo
verb 3
auth-user-pass

server.conf:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
push "dhcp-option DNS 192.168.0.3"
push "dhcp-option DNS myip"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn

и файлы linotp, 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, которая может иметь значение.