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
- OpenVPN folosește pluginul openvpn-plugin-auth-pam pentru verificarea autenticității.
- Pluginul verifică parola utilizatorului pe server și solicită al doilea factor prin protocolul RADIUS la serviciul Multi-Factor.
- Multi-Factor trimite un mesaj utilizatorului prin botul Telegram cu confirmarea accesului.
- 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 , 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ă.

Î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ă.

Î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.

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 openvpnPluginul 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_radiusDeschide fișierul pentru editare /etc/pam_radius.conf și specifică adresa serverului RADIUS Multifactor
radius.multifactor.ru shared_secret 40unde:
- 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-authprima 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 .
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@serverConfigurarea clientului
Activează în fișierul de configurare al clientului cererea de nume de utilizator și parolă
auth-user-passVerificare
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

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 .
Instrucțiunea este realizată cu exemple pe CentOS 7.
Sursa: habr.com
