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

OpenVPN 2.4 + Google Authenticator = сбой аутентификации

У нас есть корпоративный VPN-сервер под управлением OpenVPN 2.3 на экземпляре AWS с Ubuntu 16.04 Xenial. Сервер был настроен с использованием Ansible playbook.

Я планирую перейти на Ubuntu 18.04 Bionic, который также обновляет OpenVPN до версии 2.4 (это желаемый побочный эффект, поскольку OpenVPN 2.3 устаревает). Итак, я создал тестовый экземпляр с Bionic и запустил для него сценарий Ansible. Конфигурация включает MFA через Google Authenticator, поэтому я также скопировал ~/.google_authenticator файл со старого сервера и применен chmod 400 к нему.

Также было несколько проблем с совместимостью, которые мне пришлось решить до того, как новый сервер заработал:

Однако даже после этого аутентификация на новом сервере по-прежнему не работает. Вот что мой /etc/pam.d/openvpn выглядит как:

auth required pam_google_authenticator.so

Если я заменю эту строку на auth required pam_permit.so, Я успешно прошел аутентификацию (конечно, с любым паролем) и подключился, так что проблема определенно в том, где вмешивается MFA.

В то же время, pamtester говорит мне, что pam_google_authenticator.so работает отлично:

$ sudo pamtester openvpn vlad authenticate
Verification code:
pamtester: successfully authenticated

Вот что я вижу в системном журнале при попытке аутентификации на VPN-сервере:

Aug 16 15:17:39 ip-10-7-0-230 openvpn[10873]: AUTH-PAM: BACKGROUND: received command code: 0
Aug 16 15:17:39 ip-10-7-0-230 openvpn[10873]: AUTH-PAM: BACKGROUND: USER: vlad
Aug 16 15:17:39 ip-10-7-0-230 openvpn[10873]: AUTH-PAM: BACKGROUND: my_conv[0] query='login:' style=2
Aug 16 15:17:39 ip-10-7-0-230 openvpn[10873]: AUTH-PAM: BACKGROUND: user 'vlad' failed to authenticate: Authentication failure

В эта тема Я обнаружил, что строку в конфигурации сервера, которая вызывает модуль auth-pam, следует изменить с

plugin openvpn-plugin-auth-pam.so openvpn

кому:

plugin openvpn-plugin-auth-pam.so "openvpn login USERNAME password PASSWORD"

Однако ни один из них, похоже, не работает - я все еще получаю сообщение «Ошибка аутентификации».

Интересно, что тот же эксперимент с перестройкой сервера на базе Xenial сработал - так что проблема, похоже, либо в Ubuntu Bionic (какие-то дополнительные функции безопасности?), Либо в OpenVPN 2.4 (некоторые проблемы совместимости).

Есть ли у кого-нибудь идеи, как это исправить?

Обновить. Просто попробовал добавить nullok к /etc/pam.d/openvpn и удаление ~/.google_authenticator файл. По-прежнему не работает, та же ошибка.