Autenticació de dos factors a OpenVPN amb el bot de Telegram

L'article descriu com configurar el servidor OpenVPN per habilitar l'autenticació de dos factors amb un bot de Telegram que enviarà una sol·licitud de confirmació després de la connexió.

OpenVPN és un servidor VPN conegut, gratuït i de codi obert que s'utilitza àmpliament per proporcionar als empleats un accés segur als recursos interns d'una organització.

Per regla general, s'utilitza una combinació d'una clau i un nom d'usuari/contrasenya com a autenticació per connectar-se a un servidor VPN. Al mateix temps, la contrasenya desada al client converteix tot el conjunt en un únic factor que no proporciona el nivell de seguretat adequat. Un atacant, després d'haver obtingut accés a un ordinador client, també obté accés al servidor VPN. Això és especialment cert per a la connexió des de màquines amb Windows.

L'ús del segon factor redueix en un 99% el risc d'accés no autoritzat i no complica gens el procés de connexió per als usuaris.

Faré una reserva immediatament que per a la implementació haureu de connectar un servidor d'autenticació multifactor.ru de tercers, en el qual podeu utilitzar una tarifa gratuïta per a les vostres necessitats.

Com funciona?

  1. OpenVPN utilitza el connector openvpn-plugin-auth-pam per a l'autenticació
  2. El connector comprova la contrasenya de l'usuari al servidor i sol·licita el segon factor mitjançant el protocol RADIUS al servei Multifactor
  3. El multifactor envia un missatge a l'usuari mitjançant el bot de Telegram amb la confirmació d'accés
  4. L'usuari confirma la sol·licitud d'accés al xat de Telegram i es connecta a la VPN

Instal·lació d'un servidor OpenVPN

Hi ha molts articles a Internet que descriuen el procés d'instal·lació i configuració d'OpenVPN, de manera que no els duplicarem. Si necessiteu ajuda, hi ha diversos enllaços a tutorials al final de l'article.

Configuració multifactorial

Anar a Sistema de control multifactorial, aneu a Recursos i creeu una VPN nova.
Després de la creació, hi haurà dues opcions disponibles: ID del NAS и Secret compartit, seran necessaris per a la configuració posterior.

Autenticació de dos factors a OpenVPN amb el bot de Telegram

A la secció "Grups", aneu a la configuració del grup "Tots els usuaris" i desmarqueu la marca "Tots els recursos" perquè només els usuaris d'un grup determinat es puguin connectar al servidor VPN.

Creeu un nou grup "Usuaris VPN", desactiveu tots els mètodes d'autenticació excepte Telegram i especifiqueu que els usuaris tinguin accés al recurs VPN creat.

Autenticació de dos factors a OpenVPN amb el bot de Telegram

A la secció "Usuaris", creeu usuaris que tindran accés a la VPN, afegiu "usuaris VPN" al grup i envieu-los un enllaç per configurar el segon factor d'autenticació. L'inici de sessió de l'usuari ha de coincidir amb l'inici de sessió al servidor VPN.

Autenticació de dos factors a OpenVPN amb el bot de Telegram

Configuració d'un servidor OpenVPN

Obriu el fitxer /etc/openvpn/server.conf i afegiu un connector per a l'autenticació mitjançant el mòdul PAM

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

El connector es pot localitzar al directori /usr/lib/openvpn/plugins/ o /usr/lib64/openvpn/plugins/ depenent del vostre sistema.

A continuació, heu d'instal·lar el mòdul pam_radius_auth

$ sudo yum install pam_radius

Obre el fitxer per editar-lo /etc/pam_radius.conf i especifiqueu l'adreça del servidor RADIUS del Multifactor

radius.multifactor.ru   shared_secret   40

on:

  • radius.multifactor.ru — adreça del servidor
  • shared_secret: copieu des del paràmetre de configuració VPN corresponent
  • 40 segons: temps d'espera de sol·licitud amb un gran marge

La resta de servidors s'han de suprimir o comentar (posa un punt i coma al principi)

A continuació, creeu un fitxer per a openvpn de tipus servei

$ sudo vi /etc/pam.d/openvpn

i posar-hi

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

la primera línia connecta el mòdul PAM pam_radius_auth amb els paràmetres:

  • skip_passwd - desactiva la transmissió de la contrasenya de l'usuari al servidor Multifactor RADIUS (no necessita saber-ho).
  • client_id: substituïu [NAS-Identifier] pel paràmetre corresponent de la configuració del recurs VPN.
    Totes les opcions possibles es descriuen a documentació del mòdul.

La segona i la tercera línies inclouen una comprovació del sistema de l'inici de sessió, la contrasenya i els drets d'usuari al vostre servidor juntament amb el segon factor d'autenticació.

Reinicieu OpenVPN

$ sudo systemctl restart openvpn@server

Configuració del client

Incloeu una sol·licitud de nom d'usuari i contrasenya al fitxer de configuració del client

auth-user-pass

inspecció

Executeu el client per a OpenVPN, connecteu-vos al servidor, introduïu el vostre inici de sessió i contrasenya. El bot de Telegram rebrà una sol·licitud d'accés amb dos botons

Autenticació de dos factors a OpenVPN amb el bot de Telegram

Un botó permet l'accés, el segon blocs.

Ara podeu desar de manera segura la contrasenya al client, el segon factor protegirà de manera fiable el vostre servidor OpenVPN de l'accés no autoritzat.

Si alguna cosa no funciona

Comprova constantment que no t'has perdut res:

  • Hi ha un usuari amb una contrasenya establerta al servidor amb OpenVPN
  • Accés des del servidor mitjançant el port UDP 1812 a l'adreça radius.multifactor.ru
  • Els paràmetres NAS-Identifier i Shared Secret són correctes
  • S'ha creat un usuari amb el mateix inici de sessió al sistema Multifactor i se li ha concedit accés al grup d'usuaris VPN
  • L'usuari ha configurat el mètode d'autenticació mitjançant Telegram

Si no heu configurat OpenVPN abans, llegiu article ampliat.

Les instruccions es fan amb exemples a CentOS 7.

Font: www.habr.com

Afegeix comentari