Autentificare cu doi factori în OpenVPN cu botul Telegram

Articolul descrie configurarea unui server OpenVPN pentru a activa autentificarea cu doi factori cu un bot Telegram care va trimite o cerere de confirmare la conectare.

OpenVPN este un server VPN bine-cunoscut, gratuit, open-source, care este utilizat pe scară largă pentru a organiza accesul securizat al angajaților la resursele interne ale organizației.

Ca autentificare pentru conectarea la un server VPN, se folosește de obicei o combinație de cheie și autentificare/parolă de utilizator. În același timp, parola stocată pe client transformă întregul set într-un singur factor care nu oferă nivelul corespunzător de securitate. Un atacator, care a obținut acces la computerul client, obține și acces la serverul VPN. Acest lucru este valabil mai ales pentru conexiunile de la mașini care rulează Windows.

Utilizarea celui de-al doilea factor reduce riscul accesului neautorizat cu 99% și nu complică deloc procesul de conectare pentru utilizatori.

Permiteți-mi să fac o rezervare imediat: pentru implementare va trebui să vă conectați un server de autentificare terță parte multifactor.ru, în care puteți utiliza un tarif gratuit pentru nevoile dvs.

Principiul de funcționare

  1. OpenVPN folosește pluginul openvpn-plugin-auth-pam pentru autentificare
  2. Pluginul verifică parola utilizatorului pe server și solicită al doilea factor prin protocolul RADIUS în serviciul Multifactor
  3. Multifactor trimite utilizatorului un mesaj prin botul Telegram care confirmă accesul
  4. Utilizatorul confirmă cererea de acces în chat-ul Telegram și se conectează la VPN

Instalarea unui server OpenVPN

Există multe articole pe Internet care descriu procesul de instalare și configurare a OpenVPN, așa că nu le vom duplica. Dacă aveți nevoie de ajutor, există mai multe link-uri către tutoriale la sfârșitul articolului.

Configurarea Multifactorului

Mergeți la Sistem de control multifactorial, accesați secțiunea „Resurse” și creați un nou VPN.
Odată creat, veți avea la dispoziție două opțiuni: NAS-IDentifier и Secret împărtășit, vor fi necesare pentru configurarea ulterioară.

Autentificare cu doi factori în OpenVPN cu botul Telegram

În secțiunea „Grupuri”, accesați setările grupului „Toți utilizatorii” și eliminați marcajul „Toate resursele”, astfel încât numai utilizatorii unui anumit grup să se poată conecta la serverul VPN.

Creați un nou grup „Utilizatori VPN”, dezactivați toate metodele de autentificare, cu excepția Telegramului și indicați că utilizatorii au acces la resursa VPN creată.

Autentificare cu doi factori în OpenVPN cu botul Telegram

În secțiunea „Utilizatori”, creați utilizatori care vor avea acces la VPN, adăugați-i la grupul „Utilizatori VPN” și trimiteți-le un link pentru a configura al doilea factor de autentificare. Autentificarea utilizatorului trebuie să se potrivească cu datele de conectare de pe serverul VPN.

Autentificare cu doi factori în OpenVPN cu botul Telegram

Configurarea unui server OpenVPN

Deschideți fișierul /etc/openvpn/server.conf și adăugați un plugin pentru autentificare folosind modulul PAM

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

Pluginul poate fi localizat în director /usr/lib/openvpn/plugins/ sau /usr/lib64/openvpn/plugins/ în funcție de sistemul dvs.

Apoi, trebuie să instalați modulul pam_radius_auth

$ sudo yum install pam_radius

Deschideți fișierul pentru editare /etc/pam_radius.conf și specificați adresa serverului RADIUS al Multifactorului

radius.multifactor.ru   shared_secret   40

în cazul în care:

  • radius.multifactor.ru — adresa serverului
  • shared_secret - copiați din parametrul de setări VPN corespunzător
  • 40 de secunde - expirare pentru așteptarea unei cereri cu o marjă mare

Serverele rămase trebuie șterse sau comentate (puneți un punct și virgulă la început)

Apoi, creați un fișier pentru openvpn de tip serviciu

$ sudo vi /etc/pam.d/openvpn

si scrie-l in

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

Prima linie conectează modulul PAM pam_radius_auth cu parametrii:

  • skip_passwd - dezactivează transmiterea parolei utilizatorului către serverul RADIUS Multifactor (nu trebuie să o știe).
  • client_id — înlocuiți [NAS-Identifier] cu parametrul corespunzător din setările de resurse VPN.
    Toți parametrii posibili sunt descriși în documentația pentru modul.

Al doilea și al treilea rând includ verificarea sistemului a login-ului, a parolei și a drepturilor de utilizator pe serverul dvs., împreună cu un al doilea factor de autentificare.

Reporniți OpenVPN

$ sudo systemctl restart openvpn@server

Configurarea clientului

Includeți o solicitare pentru autentificarea utilizatorului și parola în fișierul de configurare a clientului

auth-user-pass

Проверка

Lansați clientul OpenVPN, conectați-vă la server, introduceți numele de utilizator și parola. Botul Telegram va trimite o cerere de acces cu două butoane

Autentificare cu doi factori în OpenVPN cu botul Telegram

Un buton permite accesul, al doilea îl blochează.

Acum vă puteți salva în siguranță parola pe client; al doilea factor vă va proteja în mod fiabil serverul OpenVPN de accesul neautorizat.

Dacă ceva nu merge

Verificați succesiv dacă nu ați omis nimic:

  • Există un utilizator pe server cu OpenVPN cu o parolă setată
  • Serverul are acces prin portul UDP 1812 la adresa radius.multifactor.ru
  • Parametrii NAS-Identifier și Shared Secret sunt specificați corect
  • Un utilizator cu aceeași autentificare a fost creat în sistemul Multifactor și i s-a acordat acces la grupul de utilizatori VPN
  • Utilizatorul a configurat metoda de autentificare prin Telegram

Dacă nu ați configurat OpenVPN înainte, citiți articol detaliat.

Instrucțiunile sunt făcute cu exemple pe CentOS 7.

Sursa: www.habr.com

Adauga un comentariu