Dvostopenjska avtentikacija v OpenVPN z botom Telegram

Članek opisuje nastavitev strežnika OpenVPN za omogočanje dvofaktorske avtentikacije z robotom Telegram, ki bo ob povezovanju poslal zahtevo za potrditev.

OpenVPN je dobro poznan brezplačen odprtokodni strežnik VPN, ki se pogosto uporablja za organiziranje varnega dostopa zaposlenih do notranjih organizacijskih virov.

Kot avtentikacija za povezavo s strežnikom VPN se običajno uporablja kombinacija ključa in uporabniške prijave/gesla. Hkrati pa geslo, shranjeno na odjemalcu, spremeni celoten sklop v en sam dejavnik, ki ne zagotavlja ustrezne ravni varnosti. Napadalec, ki pridobi dostop do odjemalskega računalnika, pridobi tudi dostop do strežnika VPN. To še posebej velja za povezave iz strojev z operacijskim sistemom Windows.

Uporaba drugega faktorja zmanjša tveganje nepooblaščenega dostopa za 99% in uporabnikom sploh ne oteži procesa povezave.

Naj takoj rezerviram: za izvedbo boste morali povezati strežnik za preverjanje pristnosti tretje osebe multifactor.ru, v katerem lahko uporabite brezplačno tarifo za svoje potrebe.

Princip delovanja

  1. OpenVPN za preverjanje pristnosti uporablja vtičnik openvpn-plugin-auth-pam
  2. Vtičnik preveri geslo uporabnika na strežniku in prek protokola RADIUS v storitvi Multifactor zahteva drugi faktor.
  3. Multifactor pošlje uporabniku sporočilo prek Telegram bota, ki potrdi dostop
  4. Uporabnik potrdi zahtevo za dostop v klepetu Telegram in se poveže z VPN

Namestitev strežnika OpenVPN

Na internetu je veliko člankov, ki opisujejo postopek namestitve in konfiguracije OpenVPN, zato jih ne bomo podvajali. Če potrebujete pomoč, je na koncu članka več povezav do vadnic.

Nastavitev Multifactorja

Pojdi do Večfaktorski nadzorni sistem, pojdite na razdelek »Viri« in ustvarite nov VPN.
Ko ga ustvarite, boste imeli na voljo dve možnosti: NAS-IDentifier и Skupna skrivnost, bodo potrebni za nadaljnjo konfiguracijo.

Dvostopenjska avtentikacija v OpenVPN z botom Telegram

V razdelku »Skupine« pojdite na nastavitve skupine »Vsi uporabniki« in odstranite zastavico »Vsi viri«, tako da se lahko samo uporabniki določene skupine povežejo s strežnikom VPN.

Ustvarite novo skupino »Uporabniki VPN«, onemogočite vse metode preverjanja pristnosti razen Telegrama in označite, da imajo uporabniki dostop do ustvarjenega vira VPN.

Dvostopenjska avtentikacija v OpenVPN z botom Telegram

V razdelku »Uporabniki« ustvarite uporabnike, ki bodo imeli dostop do VPN, jih dodajte v skupino »Uporabniki VPN« in jim pošljite povezavo za konfiguracijo drugega faktorja avtentikacije. Prijava uporabnika se mora ujemati s prijavo na strežniku VPN.

Dvostopenjska avtentikacija v OpenVPN z botom Telegram

Nastavitev strežnika OpenVPN

Odprite datoteko /etc/openvpn/server.conf in dodajte vtičnik za preverjanje pristnosti z uporabo modula PAM

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

Vtičnik je mogoče najti v imeniku /usr/lib/openvpn/plugins/ ali /usr/lib64/openvpn/plugins/ odvisno od vašega sistema.

Nato morate namestiti modul pam_radius_auth

$ sudo yum install pam_radius

Odprite datoteko za urejanje /etc/pam_radius.conf in določite naslov RADIUS strežnika Multifactorja

radius.multifactor.ru   shared_secret   40

kjer je:

  • radius.multifactor.ru — naslov strežnika
  • shared_secret - kopirajte iz ustreznega parametra nastavitev VPN
  • 40 sekund - časovna omejitev za čakanje na zahtevo z veliko rezervo

Preostale strežnike je treba izbrisati ali zakomentirati (na začetku postavite podpičje)

Nato ustvarite datoteko za servisni tip openvpn

$ sudo vi /etc/pam.d/openvpn

in vpiši

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

Prva vrstica povezuje modul PAM pam_radius_auth s parametri:

  • skip_passwd - onemogoči prenos uporabnikovega gesla na strežnik RADIUS Multifactor (ni ga treba poznati).
  • client_id — zamenjajte [NAS-Identifier] z ustreznim parametrom iz nastavitev virov VPN.
    Vsi možni parametri so opisani v dokumentacijo za modul.

Druga in tretja vrstica vključujeta sistemsko preverjanje prijave, gesla in uporabniških pravic na vašem strežniku skupaj z drugim faktorjem preverjanja pristnosti.

Znova zaženite OpenVPN

$ sudo systemctl restart openvpn@server

Nastavitev odjemalca

V konfiguracijsko datoteko odjemalca vključite zahtevo za uporabniško prijavo in geslo

auth-user-pass

Проверка

Zaženite odjemalca OpenVPN, povežite se s strežnikom, vnesite svoje uporabniško ime in geslo. Bot Telegram bo poslal zahtevo za dostop z dvema gumboma

Dvostopenjska avtentikacija v OpenVPN z botom Telegram

En gumb omogoča dostop, drugi ga blokira.

Zdaj lahko varno shranite geslo na odjemalcu; drugi dejavnik bo zanesljivo zaščitil vaš strežnik OpenVPN pred nepooblaščenim dostopom.

Če kaj ne deluje

Zaporedoma preverite, ali niste česa zamudili:

  • Na strežniku je uporabnik z OpenVPN z nastavljenim geslom
  • Strežnik ima dostop prek vrat UDP 1812 do naslova radius.multifactor.ru
  • Parametra NAS-Identifier in Shared Secret sta pravilno podana
  • Uporabnik z isto prijavo je ustvarjen v sistemu Multifactor in ima dostop do uporabniške skupine VPN
  • Uporabnik je konfiguriral način preverjanja pristnosti prek Telegrama

Če še niste nastavili OpenVPN, preberite podroben članek.

Navodila so narejena s primeri na CentOS 7.

Vir: www.habr.com

Dodaj komentar