Temos um servidor VPN corporativo executando o OpenVPN 2.3 em uma instância do AWS com o Ubuntu 16.04 Xenial. O servidor foi configurado usando um playbook Ansible.
Estou planejando atualizar para o Ubuntu 18.04 Bionic, que também atualiza o OpenVPN para a versão 2.4 (este é um efeito colateral desejado, já que o OpenVPN 2.3 está ficando obsoleto). Então, criei uma instância de teste com o Bionic e usei o guia Ansible. A configuração inclui o MFA por meio do Google Authenticator, então também copiei o arquivo ~/.google_authenticator
do servidor antigo e apliquei chmod 400
nele.
Também houve alguns problemas de compatibilidade que tive que resolver antes que o novo servidor funcionasse:
openvpn-plugin-auth-pam.so
foi alterada e agora seu caminho completo não precisa ser especificado na configuração do servidor. CAP_AUDIT_WRITE
permissão ausente em openvpn
systemd service (veja mais detalhes aqui ) No entanto, mesmo depois disso, a autenticação ainda falha no novo servidor. Aqui está o meu /etc/pam.d/openvpn
:
auth required pam_google_authenticator.so
Se eu substituir essa linha por auth required pam_permit.so
, serei autenticada com êxito (com qualquer senha, é claro) e conectada, para que o problema seja, definitivamente, onde o MFA entra.
Ao mesmo tempo, pamtester
me diz que pam_google_authenticator.so
funciona bem:
$ sudo pamtester openvpn vlad authenticate
Verification code:
pamtester: successfully authenticated
Veja o que vejo no syslog ao tentar autenticar no servidor 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
Em este tópico , encontrei uma sugestão de que a linha na configuração do servidor que chama o módulo auth-pam deve ser alterado de
plugin openvpn-plugin-auth-pam.so openvpn
para:
plugin openvpn-plugin-auth-pam.so "openvpn login USERNAME password PASSWORD"
No entanto, nenhum deles parece funcionar - eu ainda recebo "falha de autenticação".
Curiosamente, o mesmo experimento com a reconstrução do servidor na base do Xenial funcionou - então o problema parece ser no Ubuntu Bionic (alguns recursos de segurança adicionais?) ou no OpenVPN 2.4 (alguns problemas de compatibilidade).
Alguém tem alguma idéia de como corrigir isso?
Atualizar . Apenas tentei adicionar nullok
a /etc/pam.d/openvpn
e excluindo ~/.google_authenticator
file. Ainda falha, mesmo erro.