OpenVPN 2.4 + Google Authenticator = falha de autenticação

1

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:

  • A localização do arquivo 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.

    
por Vlad Nikiforov 16.08.2018 / 23:43

0 respostas