U članku se opisuje podešavanje OpenVPN servera za uključivanje dvofaktorske autentifikacije putem Telegram bota, koji će slati zahtev za potvrdu prilikom povezivanja.
OpenVPN je široko poznati, besplatni VPN server s otvorenim izvorom, koji se uvelike koristi za organizovanje zaštićenog pristupa zaposlenika unutarnjim resursima organizacije.
Kao provjera autentičnosti za povezivanje na VPN server obično se koristi kombinacija ključa i korisničkog imena/lozinke. Pri tome, sačuvana lozinka na klijentu pretvara cijeli skup u jedan faktor, koji ne osigurava dovoljan nivo sigurnosti. Napadač, ako dobije pristup klijentskom računalu, dobiva pristup i VPN serveru. Ovo posebno važi za povezivanje s računalima koja pokreću Windows.
Korištenje drugog faktora smanjuje rizik od neovlaštenog pristupa za 99% i u potpunosti ne otežava proces povezivanja za korisnike.
Odmah napominjem, za realizaciju će biti potrebno povezivanje na eksterni server autentifikacije multifactor.ru, gdje za svoje potrebe možete koristiti besplatni tarifni plan.
Načelo rada
- OpenVPN koristi dodatak openvpn-plugin-auth-pam za provjeru autentičnosti.
- Dodatak provjerava lozinku korisnika na serveru i traži drugi faktor putem RADIUS protokola u servisu Množestivnog faktora.
- Množestivni faktor šalje korisniku putem Telegram bota poruku s potvrdom pristupa.
- Korisnik potvrđuje zahtjev za pristup u Telegram chatu i povezuje se na VPN.
Instalacija OpenVPN servera.
Na internetu postoji mnogo članaka koji opisuju proces instalacije i podešavanja OpenVPN-a, tako da ih nećemo duplicirati. Ako vam je potrebna pomoć, na kraju članka možete pronaći nekoliko poveznica na obrazovne materijale.
Podešavanje Množestivnog faktora.
Idite na , idite u odjeljak "Resursi" i kreirajte novi VPN.
Nakon kreiranja bit će vam dostupna dva parametra: NAS-IDentifier i Shared Secret, bit će vam potrebni za naredno podešavanje.

U odjeljku "Grupe", idite u opcije grupe "Svi korisnici" i isključite oznaku "Svi resursi", tako da samo korisnici određene grupe mogu pristupiti VPN serveru.
Kreirajte novu grupu "VPN korisnici", isključite sve metode autentifikacije osim Telegrama i navedite da korisnici imaju pristup kreiranoj VPN usluzi.

U odjeljku "Korisnici" kreirajte korisnike koji će imati pristup VPN-u, dodajte ih u grupu "VPN korisnici" i pošaljite im link za postavku drugog faktora autentifikacije. Korisničko ime mora odgovarati korisničkom imenu na VPN serveru.

Postavljanje OpenVPN servera
Otvorite datoteku /etc/openvpn/server.conf i dodajte plugin za autentifikaciju putem PAM modula
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpnPlugin se može nalaziti u direktoriju /usr/lib/openvpn/plugins/ ili /usr/lib64/openvpn/plugins/ ovisno o vašem sustavu.
Sljedeće, potrebno je instalirati modul pam_radius_auth
$ sudo yum install pam_radiusOtvorite za uređivanje datoteku /etc/pam_radius.conf i navedite adresu RADIUS servera Mnofaktora
radius.multifactor.ru shared_secret 40gdje:
- radius.multifactor.ru — adresa servera
- shared_secret — kopirajte iz odgovarajućeg parametra postavki VPN-a
- 40 sekundi — vrijeme čekanja za zahtjev s većim zalihama
Ostale servere potrebno je ukloniti ili komentirati (stavite točku na početak linije)
Sljedeće kreirajte datoteku za tip usluge openvpn
$ sudo vi /etc/pam.d/openvpni upišite u nju
auth required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth substack password-auth
account substack password-authprvi redak povezuje PAM modul pam_radius_auth s parametrima:
- skip_passwd — isključuje slanje šifre korisnika na RADIUS server Mnofaktora (ne trebaju je znati).
- client_id — umetnite umjesto [NAS-Identifier] odgovarajući parametar iz postavki VPN resursa.
Svi mogući parametri opisani su u .
Drugi i treći redak uključuju sistemsku provjeru korisničkog imena, lozinke i prava korisnika na vašem serveru uz drugi faktor autentifikacije.
Ponovno pokrenite OpenVPN
$ sudo systemctl restart openvpn@serverPostavka klijenta
Uključite u konfiguracijski datoteku klijenta zahtjev za korisničkim imenom i lozinkom
auth-user-passProvjera
Pokrenite klijenta za OpenVPN, povežite se s serverom, navedite korisničko ime i lozinku. Od Telegram bota doći će zahtjev za pristup s dva gumba

Jedan gumb odobrava pristup, drugi blokira.
Sada slobodno možete spremiti lozinku na klijentu, drugi faktor pouzdano će zaštititi vaš OpenVPN server od neovlaštenog pristupa.
Ako nešto ne radi
Postupno provjerite da niste ništa propustili:
- Na serveru s OpenVPN-om postoji korisnik s postavljenom lozinkom
- Pristup na UDP portu 1812 otvoren je za adresu radius.multifactor.ru
- Parametri NAS-Identifier i Shared Secret su ispravno postavljeni
- U sustavu Multifactor postoji korisnik s istim korisničkim imenom koji je dobio pristup VPN korisničkoj grupi
- Korisnik je postavio način autentifikacije putem Telegrama
Ako prethodno niste konfigurirali OpenVPN, pročitajte .
Uputa je napravljena s primjerima na CentOS 7.
Izvor: habr.com
