Dvofaktorska autentifikacija u OpenVPN-u s Telegram botom

Članak opisuje postavljanje OpenVPN poslužitelja za omogućavanje dvofaktorske autentifikacije s Telegram botom koji će poslati zahtjev za potvrdu prilikom povezivanja.

OpenVPN je dobro poznati, besplatni VPN poslužitelj otvorenog koda koji se široko koristi za organiziranje sigurnog pristupa zaposlenika internim organizacijskim resursima.

Kao autentifikacija za spajanje na VPN poslužitelj obično se koristi kombinacija ključa i korisničke prijave/lozinke. Istodobno, lozinka pohranjena na klijentu pretvara cijeli skup u jedan faktor koji ne pruža odgovarajuću razinu sigurnosti. Napadač, nakon što je dobio pristup klijentskom računalu, također dobiva pristup VPN poslužitelju. Ovo posebno vrijedi za veze sa strojeva koji rade pod Windowsima.

Korištenje drugog faktora smanjuje rizik od neovlaštenog pristupa za 99% i uopće ne komplicira proces povezivanja za korisnike.

Dopustite mi da odmah rezerviram: za implementaciju ćete morati povezati poslužitelj za autentifikaciju treće strane multifactor.ru, u kojem možete koristiti besplatnu tarifu za svoje potrebe.

Princip rada

  1. OpenVPN koristi dodatak openvpn-plugin-auth-pam za autentifikaciju
  2. Dodatak provjerava lozinku korisnika na poslužitelju i traži drugi faktor putem RADIUS protokola u Multifactor servisu
  3. Multifactor korisniku putem Telegram bota šalje poruku kojom potvrđuje pristup
  4. Korisnik potvrđuje zahtjev za pristup u Telegram chatu i spaja se na VPN

Instalacija OpenVPN poslužitelja

Na internetu postoji mnogo članaka koji opisuju postupak instaliranja i konfiguriranja OpenVPN-a, pa ih nećemo duplicirati. Ako trebate pomoć, na kraju članka nalazi se nekoliko poveznica na upute.

Postavljanje Multifactora

Idi na Višefaktorski sustav upravljanja, idite na odjeljak "Resursi" i izradite novi VPN.
Nakon izrade, imat ćete dvije dostupne opcije: NAS-IDentifier и Zajednička tajna, oni će biti potrebni za naknadnu konfiguraciju.

Dvofaktorska autentifikacija u OpenVPN-u s Telegram botom

U odjeljku "Grupe" idite na postavke grupe "Svi korisnici" i uklonite oznaku "Svi resursi" tako da se samo korisnici određene grupe mogu spojiti na VPN poslužitelj.

Napravite novu grupu "VPN korisnici", onemogućite sve metode provjere autentičnosti osim Telegrama i označite da korisnici imaju pristup stvorenom VPN resursu.

Dvofaktorska autentifikacija u OpenVPN-u s Telegram botom

U odjeljku "Korisnici" kreirajte korisnike koji će imati pristup VPN-u, dodajte ih u grupu "VPN korisnici" i pošaljite im poveznicu za konfiguraciju drugog faktora autentifikacije. Korisnička prijava mora odgovarati prijavi na VPN poslužitelju.

Dvofaktorska autentifikacija u OpenVPN-u s Telegram botom

Postavljanje OpenVPN poslužitelja

Otvorite datoteku /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 imeniku /usr/lib/openvpn/plugins/ ili /usr/lib64/openvpn/plugins/ ovisno o vašem sustavu.

Zatim trebate instalirati modul pam_radius_auth

$ sudo yum install pam_radius

Otvorite datoteku za uređivanje /etc/pam_radius.conf i odredite adresu RADIUS poslužitelja Multifactora

radius.multifactor.ru   shared_secret   40

gdje je:

  • radius.multifactor.ru — adresa poslužitelja
  • shared_secret - kopirajte iz odgovarajućeg parametra postavki VPN-a
  • 40 sekundi - vrijeme čekanja za zahtjev s velikom marginom

Preostale poslužitelje je potrebno izbrisati ili komentirati (stavite točku i zarez na početak)

Zatim stvorite datoteku za openvpn vrste usluge

$ sudo vi /etc/pam.d/openvpn

i upiši to

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

Prva linija povezuje PAM modul pam_radius_auth s parametrima:

  • skip_passwd - onemogućuje prijenos korisničke lozinke RADIUS Multifactor poslužitelju (ne mora je znati).
  • client_id — zamijenite [NAS-Identifier] s odgovarajućim parametrom iz postavki VPN resursa.
    Svi mogući parametri opisani su u dokumentaciju za modul.

Drugi i treći red uključuju provjeru sustava za prijavu, lozinku i korisnička prava na vašem poslužitelju zajedno s drugim faktorom provjere autentičnosti.

Ponovno pokrenite OpenVPN

$ sudo systemctl restart openvpn@server

Postavljanje klijenta

Uključite zahtjev za korisničku prijavu i lozinku u konfiguracijsku datoteku klijenta

auth-user-pass

Проверка

Pokrenite OpenVPN klijent, spojite se na poslužitelj, unesite svoje korisničko ime i lozinku. Telegram bot će poslati zahtjev za pristup s dva gumba

Dvofaktorska autentifikacija u OpenVPN-u s Telegram botom

Jedan gumb omogućuje pristup, drugi ga blokira.

Sada možete sigurno spremiti svoju lozinku na klijentu; drugi faktor će pouzdano zaštititi vaš OpenVPN poslužitelj od neovlaštenog pristupa.

Ako nešto ne uspije

Redom provjerite da niste ništa propustili:

  • Na poslužitelju postoji korisnik s OpenVPN-om s postavljenom lozinkom
  • Poslužitelj ima pristup preko UDP porta 1812 na adresu radius.multifactor.ru
  • Parametri NAS-Identifier i Shared Secret ispravno su navedeni
  • U sustavu Multifactor kreiran je korisnik s istom prijavom i dobio je pristup VPN korisničkoj grupi
  • Korisnik je konfigurirao metodu autentifikacije putem Telegrama

Ako dosad niste postavili OpenVPN, pročitajte detaljan članak.

Upute su napravljene s primjerima na CentOS 7.

Izvor: www.habr.com

Dodajte komentar