Dvojfaktorová autentifikácia v OpenVPN s telegramovým robotom

Článok popisuje nastavenie servera OpenVPN na umožnenie dvojfaktorovej autentifikácie pomocou telegramového robota, ktorý pri pripájaní odošle žiadosť o potvrdenie.

OpenVPN je známy, bezplatný server VPN s otvoreným zdrojom, ktorý sa široko používa na organizáciu bezpečného prístupu zamestnancov k interným organizačným zdrojom.

Ako autentifikácia pre pripojenie k serveru VPN sa zvyčajne používa kombinácia kľúča a používateľského prihlasovacieho mena/hesla. Heslo uložené na klientovi zároveň zmení celú súpravu na jediný faktor, ktorý neposkytuje správnu úroveň zabezpečenia. Útočník, ktorý získal prístup ku klientskemu počítaču, získa aj prístup k serveru VPN. To platí najmä pre pripojenia z počítačov so systémom Windows.

Použitie druhého faktora znižuje riziko neoprávneného prístupu o 99 % a užívateľom vôbec nekomplikuje proces pripojenia.

Dovoľte mi ihneď vykonať rezerváciu: na implementáciu budete musieť pripojiť autentifikačný server tretej strany multifactor.ru, v ktorom môžete pre svoje potreby použiť bezplatný tarif.

Princíp činnosti

  1. OpenVPN používa na autentifikáciu doplnok openvpn-plugin-auth-pam
  2. Plugin skontroluje heslo používateľa na serveri a vyžiada si druhý faktor cez protokol RADIUS v službe Multifactor
  3. Multifactor odošle používateľovi správu prostredníctvom telegramového robota potvrdzujúcu prístup
  4. Používateľ potvrdí žiadosť o prístup v telegramovom rozhovore a pripojí sa k sieti VPN

Inštalácia servera OpenVPN

Na internete je veľa článkov popisujúcich proces inštalácie a konfigurácie OpenVPN, takže ich nebudeme duplikovať. Ak potrebujete pomoc, na konci článku je niekoľko odkazov na tutoriály.

Nastavenie multifaktora

Choďte na Viacfaktorový riadiaci systém, prejdite do sekcie „Zdroje“ a vytvorte novú sieť VPN.
Po vytvorení budete mať k dispozícii dve možnosti: NAS identifikátor и Zdieľané tajomstvo, budú potrebné pre následnú konfiguráciu.

Dvojfaktorová autentifikácia v OpenVPN s telegramovým robotom

V časti „Skupiny“ prejdite do nastavení skupiny „Všetci používatelia“ a odstráňte príznak „Všetky zdroje“, aby sa k serveru VPN mohli pripojiť iba používatelia určitej skupiny.

Vytvorte novú skupinu „Používatelia VPN“, vypnite všetky metódy overenia okrem telegramu a označte, že používatelia majú prístup k vytvorenému prostriedku VPN.

Dvojfaktorová autentifikácia v OpenVPN s telegramovým robotom

V časti „Používatelia“ vytvorte používateľov, ktorí budú mať prístup k VPN, pridajte ich do skupiny „Používatelia VPN“ a pošlite im odkaz na konfiguráciu druhého faktora overenia. Prihlásenie používateľa sa musí zhodovať s prihlásením na serveri VPN.

Dvojfaktorová autentifikácia v OpenVPN s telegramovým robotom

Nastavenie servera OpenVPN

Otvorte súbor /etc/openvpn/server.conf a pridajte doplnok na autentifikáciu pomocou modulu PAM

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

Plugin sa môže nachádzať v adresári /usr/lib/openvpn/plugins/ alebo /usr/lib64/openvpn/plugins/ v závislosti od vášho systému.

Ďalej musíte nainštalovať modul pam_radius_auth

$ sudo yum install pam_radius

Otvorte súbor na úpravu /etc/pam_radius.conf a zadajte adresu servera RADIUS multifaktora

radius.multifactor.ru   shared_secret   40

kde:

  • radius.multifactor.ru — adresa servera
  • shared_secret – skopírujte z príslušného parametra nastavení VPN
  • 40 sekúnd - časový limit čakania na požiadavku s veľkou rezervou

Zostávajúce servery musia byť vymazané alebo zakomentované (na začiatok vložte bodkočiarku)

Ďalej vytvorte súbor pre typ služby openvpn

$ sudo vi /etc/pam.d/openvpn

a napíšte to

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

Prvý riadok spája modul PAM pam_radius_auth s parametrami:

  • skip_passwd - zakáže prenos hesla používateľa na server RADIUS Multifactor (nemusí ho poznať).
  • client_id — nahraďte [NAS-Identifier] zodpovedajúcim parametrom z nastavení prostriedkov VPN.
    Všetky možné parametre sú popísané v dokumentáciu k modulu.

Druhý a tretí riadok obsahuje systémové overenie prihlasovacieho mena, hesla a používateľských práv na vašom serveri spolu s druhým overovacím faktorom.

Reštartujte OpenVPN

$ sudo systemctl restart openvpn@server

Nastavenie klienta

Do konfiguračného súboru klienta zahrňte požiadavku na prihlásenie používateľa a heslo

auth-user-pass

Проверка

Spustite klienta OpenVPN, pripojte sa k serveru, zadajte svoje používateľské meno a heslo. Robot Telegram odošle žiadosť o prístup pomocou dvoch tlačidiel

Dvojfaktorová autentifikácia v OpenVPN s telegramovým robotom

Jedno tlačidlo prístup umožňuje, druhé blokuje.

Teraz môžete bezpečne uložiť svoje heslo na klientovi; druhý faktor spoľahlivo ochráni váš server OpenVPN pred neoprávneným prístupom.

Ak niečo nefunguje

Postupne skontrolujte, či ste nič nevynechali:

  • Na serveri je používateľ s OpenVPN s nastaveným heslom
  • Server má prístup cez UDP port 1812 na adresu radius.multifactor.ru
  • Parametre NAS-Identifier a Shared Secret sú zadané správne
  • Používateľ s rovnakým prihlasovacím menom bol vytvorený v systéme Multifactor a bol mu udelený prístup do skupiny používateľov VPN
  • Používateľ nakonfiguroval spôsob autentifikácie prostredníctvom telegramu

Ak ste OpenVPN ešte nenastavili, prečítajte si podrobný článok.

Pokyny sú vytvorené s príkladmi na CentOS 7.

Zdroj: hab.com

Pridať komentár