domingo, 31 de março de 2019

PiVPN + google Authenticator

0 comentários
Acredito que imaginei como configurar o google authenticator junto com o pivpn (após uma noite de tentativa e falha ...). 
Apenas deixando minhas anotações aqui para compartilhar com todos e espero confirmar que não cometeu nenhum erro e que potencialmente abrisse uma enorme falha de segurança aqui;)
  1. Instale o libpam-google-authenticator e configure o openvpn para usá-lo
  • Instale o google authenticator no pi: sudo apt-get install libpam-google-authenticator
  • sudo nano /etc/openvpn/server.confe adicionar plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn(para usar o google authenticator) e reneg-sec 0(para não reconectar a cada x minutos, a senha muda a cada poucos segundos)
  • Crie um perfil pam.d openvpn sudo cp /etc/pam.d/common-account /etc/pam.d/openvpn
  • Edite-o sudo nano /etc/pam.d/openvpnpara adicionar essas duas linhas no final auth requisite pam_google_authenticator.so forward_passeauth required pam_unix.so use_first_pass
  • Agora corra sudo service openvpn restartpara recarregar a mudança conf
  1. Configurar perfis de usuário 
    Para que isso funcione, você usará as contas do sistema (contas que você usa para fazer login no seu framboesa, como 'pi'). Você pode criar tantas contas quanto você com o addusercomando. Para cada usuário pivpn
  • faça o login como o usuário no framboesa su - pi(substitua pi pelo nome de usuário real)
  • execute o google-authenticatorcomando e siga as instruções (salve o URL do código de barras na próxima etapa)
  • A execução do autenticador do google adiciona um arquivo .google_authenticator no diretório pessoal do usuário. Este arquivo não deve ter direitos, exceto ler para o usuário sudo chmod 400 /home/pi/.google_authenticator(alterar pi com o nome de usuário correto)
  • crie uma conta pivpn com o mesmo nome exato do usuário e a opção nopass: pivpn -a nopassNota: o nome de usuário deve ser o mesmo que a conta do sistema (pi, por exemplo)
  • edite o arquivo user.ovpn recém-criado e adicione auth-user-pass(para dizer ao cliente para solicitar nome de usuário e senha na conexão) e reneg-sec 0(para não reconectar a cada x minutos, a senha muda a cada poucos segundos)
  1. Configure seu telefone, seu cliente e conecte-se a partir de uma rede externa
  • Instale o aplicativo google authenticator em seu telefone e verifique o código de barras gerado durante o comando google-authenticator (2) no pi
  • Configure seu cliente (testado no Windows e no iOS) com o novo arquivo do cliente ovpn (pi.ovpn por exemplo, criado na última etapa de (2)
  • Conecte-se usando sua senha da conta pi seguida pelos 6 números gerados pelo aplicativo google authenticator no seu telefone no mesmo momento 
    Por exemplo, a pisenha da sua conta é "framboesa" (você deve alterá-la) e sua senha será algo comoraspberry123456
Voila! Deixe-me saber se eu perdi alguma coisa (ou fiz algo errado), mas é assim que eu consegui trabalhar no meu pi 2 com Jessie Raspbian. 
Eu ainda estou querendo saber se a opção nopass no comando de criação de conta pivpn é razoável, se eu definir uma senha aqui (sem opção nopass), então eu tenho que preencher minha senha de certificado primeiro e depois minha senha pi + os números do google authenticator ... Tudo somado é realmente adicionar segurança sabendo que eu uso a opção nopass para criar o meu certificado de usuário? 
Créditos para https://vorkbaard.nl/setup-openvpn-with-google-authenticator-on-ubuntu-12-04-lts-server/onde encontrei a maior parte da solução ...

Leave a Reply