Autenticación de dos factores en OpenVPN con Telegram bot

El artículo describe cómo configurar el servidor OpenVPN para habilitar la autenticación de dos factores con el bot de Telegram, que enviará un mensaje de confirmación al conectarse.


OpenVPN es un conocido servidor VPN gratuito de código abierto que se utiliza ampliamente para organizar el acceso seguro de los empleados a los recursos internos de la organización.


Como autenticación para conectarse a un servidor VPN, generalmente se usa una combinación de una clave y un nombre de usuario / contraseña. Al mismo tiempo, la contraseña almacenada en el cliente convierte todo el conjunto en un solo factor que no proporciona el nivel adecuado de seguridad. Un atacante, que obtiene acceso a una computadora cliente, también obtiene acceso a un servidor VPN. Esto es especialmente cierto para conectarse desde máquinas que ejecutan Windows.


El uso del segundo factor en un 99% reduce el riesgo de acceso ilegal y no complica el proceso de conexión para los usuarios.


Haga una reserva de inmediato, para la implementación necesita conectar un servidor de autenticación de terceros multifactor.ru, en el que puede utilizar una tarifa gratuita para sus necesidades.


Principio de funcionamiento


  1. OpenVPN usa el complemento openvpn-plugin-auth-pam para la autenticación
  2. El complemento verifica la contraseña del usuario en el servidor y solicita el segundo factor a través del protocolo RADIUS en el servicio Multifactor
  3. El multifactor envía un mensaje a través del bot Telegram al usuario con confirmación de acceso
  4. El usuario confirma la solicitud de acceso en el chat de Telegram y se conecta a VPN

Instalar el servidor OpenVPN


Hay muchos artículos en Internet que describen el proceso de instalación y configuración de OpenVPN, por lo que no los duplicaremos. Si necesita ayuda, hay varios enlaces a materiales de capacitación al final del artículo.


Configuración multifactorial


Vaya al sistema de administración Multifactor , vaya a la sección "Recursos" y cree una nueva VPN.
Después de la creación, estarán disponibles dos parámetros: NAS-IDentifier y Shared Secret , que serán necesarios para la configuración posterior.



"", "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 .


-


, :


  • En un servidor con OpenVPN hay un usuario con una contraseña establecida
  • Acceso desde el servidor a través del puerto UDP 1812 a la dirección radius.multifactor.ru
  • Parámetros de identificador NAS y secreto compartido especificados correctamente
  • Un sistema multifactor tiene un usuario con el mismo inicio de sesión y acceso al grupo de usuarios de VPN
  • Método de autenticación configurado por el usuario a través de Telegram

Si no ha configurado previamente OpenVPN, lea el artículo detallado .


La instrucción se realiza con ejemplos en CentOS 7.

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


All Articles