ProHoster > Autenticación de dos factores en OpenVPN con el bot de Telegram
Autenticación de dos factores en OpenVPN con el bot de Telegram
El artículo describe la configuración de un servidor OpenVPN para habilitar la autenticación de dos factores con un bot de Telegram que enviará una solicitud de confirmación al conectarse.
OpenVPN es un conocido servidor VPN gratuito y 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 utiliza 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 único factor que no proporciona el nivel adecuado de seguridad. Un atacante, al obtener acceso a la computadora cliente, también obtiene acceso al servidor VPN. Esto es especialmente cierto para las conexiones desde máquinas que ejecutan Windows.
El uso del segundo factor reduce el riesgo de acceso no autorizado en un 99% y no complica en absoluto el proceso de conexión para los usuarios.
Permítanme hacer una reserva de inmediato: para la implementación deberá conectar un servidor de autenticación de terceros multifactor.ru, en el que podrá utilizar una tarifa gratuita para sus necesidades.
¿Cómo funciona?
OpenVPN utiliza el complemento openvpn-plugin-auth-pam para la autenticación
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.
Multifactor envía un mensaje al usuario a través del bot de Telegram confirmando el acceso
El usuario confirma la solicitud de acceso en el chat de Telegram y se conecta a la VPN
Instalación de un 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 tutoriales al final del artículo.
Configurando el multifactor
Ir Sistema de control multifactor, vaya a la sección "Recursos" y cree una nueva VPN.
Una vez creado, tendrás dos opciones disponibles: Identificador NAS и Secreto compartido, serán necesarios para la configuración posterior.
En la sección "Grupos", vaya a la configuración del grupo "Todos los usuarios" y elimine la marca "Todos los recursos" para que solo los usuarios de un determinado grupo puedan conectarse al servidor VPN.
Cree un nuevo grupo "Usuarios de VPN", desactive todos los métodos de autenticación excepto Telegram e indique que los usuarios tienen acceso al recurso VPN creado.
En la sección "Usuarios", cree usuarios que tendrán acceso a la VPN, agréguelos al grupo "Usuarios de VPN" y envíeles un enlace para configurar el segundo factor de autenticación. El inicio de sesión del usuario debe coincidir con el inicio de sesión en el servidor VPN.
Configurar un servidor OpenVPN
Abre el archivo /etc/openvpn/servidor.conf y agregue un complemento para la autenticación usando el módulo PAM
La primera línea conecta el módulo PAM pam_radius_auth con los parámetros:
skip_passwd: desactiva la transmisión de la contraseña del usuario al servidor RADIUS Multifactor (no necesita saberlo).
client_id: reemplace [NAS-Identifier] con el parámetro correspondiente de la configuración de recursos VPN.
Todos los parámetros posibles se describen en documentación para el módulo.
La segunda y tercera líneas incluyen la verificación del sistema del inicio de sesión, la contraseña y los derechos de usuario en su servidor junto con un segundo factor de autenticación.
Reiniciar OpenVPN
$ sudo systemctl restart openvpn@server
Configuración del cliente
Incluir una solicitud de inicio de sesión de usuario y contraseña en el archivo de configuración del cliente.
auth-user-pass
Проверка
Inicie el cliente OpenVPN, conéctese al servidor, ingrese su nombre de usuario y contraseña. El bot de Telegram enviará una solicitud de acceso con dos botones
Un botón permite el acceso, el segundo lo bloquea.
Ahora puede guardar de forma segura su contraseña en el cliente; el segundo factor protegerá de manera confiable su servidor OpenVPN contra el acceso no autorizado.
Si algo no funciona
Comprueba secuencialmente que no te has perdido nada:
Hay un usuario en el servidor con OpenVPN con una contraseña establecida
El servidor tiene acceso a través del puerto UDP 1812 a la dirección radio.multifactor.ru
Los parámetros NAS-Identifier y Shared Secret están especificados correctamente
Se creó un usuario con el mismo inicio de sesión en el sistema Multifactor y se le otorgó acceso al grupo de usuarios de VPN.
El usuario ha configurado el método de autenticación vía Telegram