Autenticación de dous factores en OpenVPN co bot de Telegram

O artigo describe a configuración dun servidor OpenVPN para habilitar a autenticación de dous factores cun bot de Telegram que enviará unha solicitude de confirmación ao conectarse.

OpenVPN é un coñecido servidor VPN gratuíto e de código aberto que se usa amplamente para organizar o acceso seguro dos empregados aos recursos internos da organización.

Como autenticación para conectarse a un servidor VPN, adoita utilizarse unha combinación de clave e inicio de sesión/contrasinal de usuario. Ao mesmo tempo, o contrasinal almacenado no cliente converte todo o conxunto nun único factor que non proporciona o nivel de seguridade adecuado. Un atacante, despois de ter acceso ao ordenador cliente, tamén obtén acceso ao servidor VPN. Isto é especialmente certo para as conexións de máquinas que executan Windows.

Usar o segundo factor reduce o risco de acceso non autorizado nun 99% e non complica en absoluto o proceso de conexión para os usuarios.

Permíteme facer unha reserva de inmediato: para a implementación, terás que conectar un servidor de autenticación de terceiros multifactor.ru, no que podes usar unha tarifa gratuíta para as túas necesidades.

Principio de funcionamento

  1. OpenVPN usa o complemento openvpn-plugin-auth-pam para a autenticación
  2. O complemento comproba o contrasinal do usuario no servidor e solicita o segundo factor a través do protocolo RADIUS no servizo Multifactor
  3. Multifactor envía unha mensaxe ao usuario a través do bot de Telegram confirmando o acceso
  4. O usuario confirma a solicitude de acceso no chat de Telegram e conéctase á VPN

Instalación dun servidor OpenVPN

Hai moitos artigos en Internet que describen o proceso de instalación e configuración de OpenVPN, polo que non os duplicaremos. Se precisas axuda, hai varias ligazóns a titoriais ao final do artigo.

Configuración do Multifactor

Ir a Sistema de control multifactorial, vai á sección "Recursos" e crea unha nova VPN.
Unha vez creada, terás dúas opcións dispoñibles: NAS-IDentifier и Secreto compartido, serán necesarios para a súa configuración posterior.

Autenticación de dous factores en OpenVPN co bot de Telegram

Na sección "Grupos", vai á configuración do grupo "Todos os usuarios" e elimina a bandeira "Todos os recursos" para que só os usuarios dun determinado grupo poidan conectarse ao servidor VPN.

Cree un novo grupo "Usuarios VPN", desactive todos os métodos de autenticación excepto Telegram e indique que os usuarios teñen acceso ao recurso VPN creado.

Autenticación de dous factores en OpenVPN co bot de Telegram

Na sección "Usuarios", crea usuarios que terán acceso á VPN, engádeos ao grupo "Usuarios VPN" e envíalles unha ligazón para configurar o segundo factor de autenticación. O inicio de sesión do usuario debe coincidir co inicio de sesión no servidor VPN.

Autenticación de dous factores en OpenVPN co bot de Telegram

Configurando un servidor OpenVPN

Abre o ficheiro /etc/openvpn/server.conf e engade un complemento para a autenticación mediante o módulo PAM

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

O complemento pódese localizar no directorio /usr/lib/openvpn/plugins/ ou /usr/lib64/openvpn/plugins/ dependendo do seu sistema.

A continuación cómpre instalar o módulo pam_radius_auth

$ sudo yum install pam_radius

Abre o ficheiro para editar /etc/pam_radius.conf e especifique o enderezo do servidor RADIUS do Multifactor

radius.multifactor.ru   shared_secret   40

en que:

  • radius.multifactor.ru — enderezo do servidor
  • shared_secret: copia desde o parámetro de configuración VPN correspondente
  • 40 segundos: tempo de espera para unha solicitude cunha gran marxe

Os servidores restantes deben ser eliminados ou comentados (coloque un punto e coma ao principio)

A continuación, cree un ficheiro para openvpn de tipo servizo

$ sudo vi /etc/pam.d/openvpn

e escríbeo

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

A primeira liña conecta o módulo PAM pam_radius_auth cos parámetros:

  • skip_passwd - desactiva a transmisión do contrasinal do usuario ao servidor RADIUS Multifactor (non precisa coñecelo).
  • client_id: substitúe [NAS-Identifier] polo parámetro correspondente da configuración do recurso VPN.
    Todos os parámetros posibles descríbense en documentación do módulo.

A segunda e terceira liñas inclúen a verificación do sistema de inicio de sesión, contrasinal e dereitos de usuario no seu servidor xunto cun segundo factor de autenticación.

Reinicie OpenVPN

$ sudo systemctl restart openvpn@server

Configuración do cliente

Inclúa unha solicitude de inicio de sesión de usuario e contrasinal no ficheiro de configuración do cliente

auth-user-pass

Проверка

Inicie o cliente OpenVPN, conéctese ao servidor, introduza o seu nome de usuario e contrasinal. O bot de Telegram enviará unha solicitude de acceso con dous botóns

Autenticación de dous factores en OpenVPN co bot de Telegram

Un botón permite o acceso, o segundo bloquea.

Agora podes gardar con seguridade o teu contrasinal no cliente; o segundo factor protexerá de forma fiable o teu servidor OpenVPN do acceso non autorizado.

Se algo non funciona

Comproba secuencialmente que non te perdas nada:

  • Hai un usuario no servidor con OpenVPN cun contrasinal definido
  • O servidor ten acceso a través do porto UDP 1812 ao enderezo radius.multifactor.ru
  • Os parámetros NAS-Identifier e Shared Secret especifícanse correctamente
  • Creouse un usuario co mesmo inicio de sesión no sistema Multifactor e concedeuse acceso ao grupo de usuarios VPN
  • O usuario configurou o método de autenticación a través de Telegram

Se non configuraches OpenVPN antes, le artigo detallado.

As instrucións están feitas con exemplos en CentOS 7.

Fonte: www.habr.com

Engadir un comentario