Dvofaktorska autentifikacija u OpenVPN-u sa Telegram botom

Članak opisuje kako konfigurirati OpenVPN server da omogući dvofaktorsku autentifikaciju s Telegram botom koji će poslati zahtjev za potvrdu nakon povezivanja.

OpenVPN je dobro poznat, besplatan VPN server otvorenog koda koji se naširoko koristi da zaposlenima omogući siguran pristup internim resursima organizacije.

U pravilu se kombinacija ključa i korisničkog imena/lozinke koristi kao autentikacija za povezivanje na VPN server. U isto vrijeme, lozinka sačuvana na klijentu pretvara cijeli set u jedan faktor koji ne pruža odgovarajući nivo sigurnosti. Napadač, nakon što je dobio pristup klijentskom računaru, dobija pristup i VPN serveru. Ovo posebno važi za povezivanje sa računara koji koriste Windows.

Korištenje drugog faktora smanjuje rizik od neovlaštenog pristupa za 99% i nimalo ne komplikuje proces povezivanja za korisnike.

Odmah ću rezervirati da ćete za implementaciju morati povezati server za autentifikaciju multifactor.ru treće strane, u kojem možete koristiti besplatnu tarifu za svoje potrebe.

Kako to radi

  1. OpenVPN koristi openvpn-plugin-auth-pam dodatak za autentifikaciju
  2. Dodatak provjerava korisničku lozinku na serveru i traži drugi faktor preko RADIUS protokola u Multifactor servisu
  3. Multifaktor šalje korisniku poruku putem Telegram bota sa potvrdom pristupa
  4. Korisnik potvrđuje zahtjev za pristup u Telegram chatu i povezuje se na VPN

Instaliranje OpenVPN servera

Na Internetu postoji mnogo članaka koji opisuju proces instaliranja i konfiguracije OpenVPN-a, tako da ih nećemo duplirati. Ako vam je potrebna pomoć, na kraju članka nalazi se nekoliko veza do tutorijala.

Multifaktorsko podešavanje

Idi Višefaktorski sistem upravljanja, idite na Resursi i kreirajte novi VPN.
Nakon kreiranja, biće vam dostupne dvije opcije: NAS ID и Shared Secret, oni će biti potrebni za naknadnu konfiguraciju.

Dvofaktorska autentifikacija u OpenVPN-u sa Telegram botom

U odjeljku "Grupe" idite na postavke grupe "Svi korisnici" i poništite oznaku "Svi resursi" tako da se samo korisnici određene grupe mogu povezati na VPN server.

Kreirajte novu grupu "VPN korisnici", onemogućite sve metode provjere autentičnosti osim Telegrama i navedite da korisnici imaju pristup kreiranom VPN resursu.

Dvofaktorska autentifikacija u OpenVPN-u sa Telegram botom

U odjeljku "Korisnici" kreirajte korisnike koji će imati pristup VPN-u, dodajte "VPN korisnike" u grupu i pošaljite im link za postavljanje drugog faktora autentifikacije. Prijava korisnika mora odgovarati prijavi na VPN serveru.

Dvofaktorska autentifikacija u OpenVPN-u sa Telegram botom

Postavljanje OpenVPN servera

Otvorite fajl /etc/openvpn/server.conf i dodajte dodatak za autentifikaciju pomoću PAM modula

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

Dodatak se može nalaziti u direktoriju /usr/lib/openvpn/plugins/ ili /usr/lib64/openvpn/plugins/ zavisno od vašeg sistema.

Zatim morate instalirati modul pam_radius_auth

$ sudo yum install pam_radius

Otvorite fajl za uređivanje /etc/pam_radius.conf i navedite adresu RADIUS servera Multifaktora

radius.multifactor.ru   shared_secret   40

gde:

  • radius.multifactor.ru — adresa servera
  • shared_secret - kopija iz odgovarajućeg parametra VPN postavki
  • 40 sekundi - zahtjev za timeout sa velikom marginom

Preostale servere morate obrisati ili komentirati (stavite tačku i zarez na početak)

Zatim kreirajte datoteku za openvpn tipa usluge

$ sudo vi /etc/pam.d/openvpn

i stavi u njega

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

prvi red povezuje pam_radius_auth PAM modul sa parametrima:

  • skip_passwd - onemogućava prijenos korisničke lozinke na Multifactor RADIUS server (on ne mora znati).
  • client_id - zamijenite [NAS-Identifier] odgovarajućim parametrom iz postavki VPN resursa.
    Sve moguće opcije su opisane u dokumentaciju za modul.

Drugi i treći red uključuju sistemsku provjeru prijave, lozinke i korisničkih prava na vašem serveru zajedno sa drugim faktorom provjere autentičnosti.

Ponovo pokrenite OpenVPN

$ sudo systemctl restart openvpn@server

Podešavanje klijenta

Uključite zahtjev za korisničko ime i lozinku u konfiguracijski fajl klijenta

auth-user-pass

inspekcija

Pokrenite klijent za OpenVPN, povežite se sa serverom, unesite svoje korisničko ime i lozinku. Telegram bot će dobiti zahtjev za pristup sa dva dugmeta

Dvofaktorska autentifikacija u OpenVPN-u sa Telegram botom

Jedno dugme omogućava pristup, drugo blokira.

Sada možete sigurno sačuvati lozinku na klijentu, drugi faktor će pouzdano zaštititi vaš OpenVPN server od neovlaštenog pristupa.

Ako nešto ne radi

Dosljedno provjeravajte da niste ništa propustili:

  • Postoji korisnik sa postavljenom lozinkom na serveru sa OpenVPN-om
  • Pristup sa servera preko UDP porta 1812 na adresu radius.multifactor.ru
  • Parametri NAS-identifikatora i Shared Secret su ispravni
  • U Multifactor sistemu je kreiran korisnik sa istom prijavom i odobren mu je pristup VPN grupi korisnika
  • Korisnik je konfigurirao način autentifikacije putem Telegrama

Ako ranije niste postavili OpenVPN, pročitajte prošireni članak.

Instrukcija je napravljena na primjerima na CentOS 7.

izvor: www.habr.com

Dodajte komentar