Autentificare cu doi factori în OpenVPN cu bot Telegram

Articolul descrie configurarea serverului OpenVPN pentru activarea autentificării cu două factori folosind un bot Telegram, care va trimite o solicitare de confirmare la conectare.

OpenVPN este un server VPN binecunoscut, gratuit și cu sursă deschisă, utilizat pe scară largă pentru a organiza accesul securizat al angajaților la resursele interne ale organizației.

Ca autentificare pentru conectarea la serverul VPN, se folosește de obicei o combinație de cheie și nume de utilizator/parolă. Totuși, parola salvată pe client transformă întreg setul într-un singur factor, care nu oferă un nivel adecvat de securitate. Un atacator care obține acces la computerul client devine, de asemenea, capabil să acceseze serverul VPN. Acest lucru este deosebit de adevărat pentru conexiunile de pe mașini care rulează Windows.

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

Menționez imediat că pentru realizare este necesară conectarea la un server de autentificare extern multifactor.ru, pe care îl puteți folosi în mod gratuit pentru nevoile dvs.

Principiul de funcționare

  1. OpenVPN folosește pluginul openvpn-plugin-auth-pam pentru verificarea autenticității.
  2. Pluginul verifică parola utilizatorului pe server și solicită al doilea factor prin protocolul RADIUS la serviciul Multi-Factor.
  3. Multi-Factor trimite un mesaj utilizatorului prin botul Telegram cu confirmarea accesului.
  4. Utilizatorul confirmă în chatul Telegram solicitarea de acces și se conectează la VPN.

Instalarea serverului OpenVPN.

Există multe articole pe internet care descriu procesul de instalare și configurare a OpenVPN, așa că nu le vom duplicata. Dacă aveți nevoie de ajutor, la sfârșitul articolului există câteva linkuri către materiale de instruire.

Configurarea Multi-Factor.

Accesați sistemul de gestionare Multi-Factor., mergeți la secțiunea "Resurse" și creați un nou VPN.
După crearea acestuia, veți avea la dispoziție două setări: NAS-IDentifier. și Shared Secret., acestea vor fi necesare pentru configurarea ulterioară.

Autentificare cu doi factori în OpenVPN cu bot Telegram

În secțiunea "Grupuri", accesați setările grupului "Toți utilizatorii" și debifați opțiunea "Toate resursele" astfel încât doar utilizatorii dintr-un anumit grup să poată accesa serverul VPN.

Creează un nou grup "VPN users", dezactivează toate metodele de autentificare în afară de Telegram și specifică faptul că utilizatorii au acces la resursa VPN creată.

Autentificare cu doi factori în OpenVPN cu bot Telegram

În secțiunea "Utilizatori", creează utilizatori care vor avea acces la VPN, adaugă-i în grupul "VPN users" și trimite-le un link pentru configurarea autentificării cu doi factori. Numele de utilizator trebuie să corespundă cu numele de utilizator de pe serverul VPN.

Autentificare cu doi factori în OpenVPN cu bot Telegram

Configurarea serverului OpenVPN

Deschideți fișierul /etc/openvpn/server.conf și adaugă pluginul pentru autentificare folosind modul PAM

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

Pluginul poate fi găsit în directorul /usr/lib/openvpn/plugins/ sau /usr/lib64/openvpn/plugins/ în funcție de sistemul tău.

Apoi, trebuie să instalezi modulul pam_radius_auth

$ sudo yum install pam_radius

Deschide fișierul pentru editare /etc/pam_radius.conf și specifică adresa serverului RADIUS Multifactor

radius.multifactor.ru   shared_secret   40

unde:

  • radius.multifactor.ru – adresa serverului
  • shared_secret – copiază din parametrul corespunzător al setărilor VPN
  • 40 de secunde – timeout-ul așteptării cererii, cu o marjă mare

Celelalte servere trebuie șterse sau comentate (plasează un punct și virgulă la începutul liniei)

Apoi, creează un fișier pentru tipul de serviciu openvpn

$ sudo vi /etc/pam.d/openvpn

și scrie în el

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ă trimiterea parolei utilizatorului la serverul RADIUS Multifactor (nu este nevoie să o știe).
  • client_id – înlocuiește [NAS-Identifier] cu parametrul corespunzător din setările resursei VPN.
    Toate parametrii posibile sunt descriși în documentația modulului.

A doua și a treia linie includ verificarea sistemului pentru nume de utilizator, parolă și drepturile utilizatorului pe serverul tău, împreună cu al doilea factor de autentificare.

Repornește OpenVPN

$ sudo systemctl restart openvpn@server

Configurarea clientului

Activează în fișierul de configurare al clientului cererea de nume de utilizator și parolă

auth-user-pass

Verificare

Pornește clientul pentru OpenVPN, conectează-te la server, specifică numele de utilizator și parola. Un bot Telegram va trimite o cerere de acces cu două butoane

Autentificare cu doi factori în OpenVPN cu bot Telegram

Un buton permite accesul, iar celălalt blochează.

Acum poți salva cu încredere parola pe client, al doilea factor va proteja cu siguranță serverul tău OpenVPN de accesul neautorizat.

Dacă ceva nu funcționează

Verifică în ordine că nu ai omis nimic:

  • Pe serverul cu OpenVPN există un utilizator cu parolă setată
  • Accesul la server este deschis pe portul UDP 1812 la adresa radius.multifactor.ru
  • Parametrii NAS-Identifier și Shared Secret sunt corect specificați
  • În sistemul Multifactor este înregistrat un utilizator cu același nume de utilizator și i s-a oferit acces în grupul de utilizatori VPN
  • Utilizatorul a configurat metoda de autentificare prin Telegram

Dacă nu ați configurat anterior OpenVPN, citiți articolul detaliat.

Instrucțiunea este realizată cu exemple pe CentOS 7.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster