Autenticação de dois fatores no OpenVPN com Telegram bot

O artigo descreve como configurar o servidor OpenVPN para habilitar a autenticação de dois fatores com o bot do Telegram, que enviará uma mensagem de confirmação ao se conectar.


O OpenVPN é um servidor VPN de código aberto gratuito conhecido e amplamente usado para organizar o acesso seguro dos funcionários aos recursos internos da organização.


Como uma autenticação para conectar-se a um servidor VPN, geralmente é usada uma combinação de uma chave e um login / senha de usuário. Ao mesmo tempo, a senha armazenada no cliente transforma todo o conjunto em um único fator que não fornece o nível adequado de segurança. Um invasor, obtendo acesso a um computador cliente, também obtém acesso a um servidor VPN. Isso é especialmente verdadeiro para conectar-se a máquinas que executam o Windows.


O uso do segundo fator em 99% reduz o risco de acesso ilegal e não complica o processo de conexão dos usuários.


Faça uma reserva imediatamente, para a implementação, você precisará conectar um servidor de autenticação de terceiros multifactor.ru, no qual você poderá usar uma tarifa gratuita para suas necessidades.


Princípio da Operação


  1. O OpenVPN usa o plugin openvpn-plugin-auth-pam para autenticação
  2. O plug-in verifica a senha do usuário no servidor e solicita o segundo fator via protocolo RADIUS no serviço Multifactor
  3. O multifator envia uma mensagem através do bot do Telegram ao usuário com confirmação de acesso
  4. O usuário confirma a solicitação de acesso no bate-papo do Telegram e se conecta à VPN

Instale o servidor OpenVPN


Existem muitos artigos na Internet que descrevem o processo de instalação e configuração do OpenVPN, portanto, não os duplicamos. Se você precisar de ajuda, existem vários links para materiais de treinamento no final do artigo.


Configuração multifatorial


Vá para o sistema de gerenciamento Multifator , vá para a seção "Recursos" e crie uma nova VPN.
Após a criação, dois parâmetros estarão disponíveis para você: NAS-IDentifier e Shared Secret , eles serão necessários para a configuração subseqüente.



"", "All users" " ", VPN .


"VPN users", Telegram , VPN.



"" , VPN, "VPN users" . VPN .



OpenVPN


/etc/openvpn/server.conf PAM


plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

/usr/lib/openvpn/plugins/ /usr/lib64/openvpn/plugins/ .


pam_radius_auth


$ sudo yum install pam_radius

/etc/pam_radius.conf RADIUS


radius.multifactor.ru   shared_secret   40

:


  • radius.multifactor.ru —
  • shared_secret — VPN
  • 40 —

( )

service-type openvpn


$ sudo vi /etc/pam.d/openvpn


auth    required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth    substack     password-auth
account substack     password-auth

PAM pam_radius_auth :


  • skip_passwd — RADIUS ( ).
  • client_id — [NAS-Identifier] VPN .
    .

, .


OpenVPN


$ sudo systemctl restart openvpn@server



auth-user-pass


OpenVPN, , . Telegram



, .


, OpenVPN .


-


, :


  • Em um servidor com OpenVPN, há um usuário com uma senha definida
  • Acesso do servidor via porta UDP 1812 ao endereço radius.multifactor.ru
  • Parâmetros de identificador de NAS e segredo compartilhado especificados corretamente
  • Um sistema multifator possui um usuário com o mesmo login e acesso ao grupo de usuários VPN
  • Método de autenticação configurado pelo usuário via Telegram

Se você não configurou o OpenVPN anteriormente, leia o artigo detalhado .


A instrução é feita com exemplos no CentOS 7.

Source: https://habr.com/ru/post/undefined/


All Articles