Twee-faktor-verifikasie in OpenVPN met Telegram-bot

Die artikel beskryf hoe om die OpenVPN-bediener op te stel om twee-faktor-verifikasie moontlik te maak met 'n Telegram-bot wat 'n bevestigingsversoek sal stuur by verbinding.

OpenVPN is 'n bekende, gratis en oopbron VPN-bediener wat wyd gebruik word om werknemers veilige toegang tot interne hulpbronne van 'n organisasie te bied.

As 'n reël word 'n kombinasie van 'n sleutel en 'n gebruikersnaam / wagwoord as verifikasie gebruik om aan 'n VPN-bediener te koppel. Terselfdertyd verander die wagwoord wat op die kliënt gestoor is die hele stel in 'n enkele faktor wat nie die regte vlak van sekuriteit bied nie. 'n Aanvaller, wat toegang tot 'n kliëntrekenaar verkry het, kry ook toegang tot die VPN-bediener. Dit is veral waar vir verbinding vanaf masjiene wat Windows gebruik.

Die gebruik van die tweede faktor verminder die risiko van ongemagtigde toegang met 99% en bemoeilik glad nie die verbindingsproses vir gebruikers nie.

Ek sal dadelik 'n bespreking maak, vir implementering sal jy 'n derdeparty multifactor.ru-verifikasiebediener moet koppel, waarin jy 'n gratis tarief vir jou behoeftes kan gebruik.

Beginsel van werking

  1. OpenVPN gebruik die openvpn-plugin-auth-pam-inprop vir verifikasie
  2. Die inprop kontroleer die gebruiker se wagwoord op die bediener en versoek die tweede faktor via die RADIUS-protokol in die Multifactor-diens
  3. Die multifaktor stuur 'n boodskap aan die gebruiker via Telegram-bot met toegangsbevestiging
  4. Die gebruiker bevestig die toegangsversoek in die Telegram-klets en koppel aan die VPN

Installeer 'n OpenVPN-bediener

Daar is baie artikels op die internet wat die proses van die installering en konfigurasie van OpenVPN beskryf, so ons sal dit nie dupliseer nie. As jy hulp nodig het, is daar verskeie skakels na tutoriale aan die einde van die artikel.

Multifaktor instelling

Gaan na Multifaktor beheerstelsel, gaan na Hulpbronne en skep 'n nuwe VPN.
Na die skepping sal twee opsies vir jou beskikbaar wees: NAS ID и Gedeelde geheim, sal hulle benodig word vir daaropvolgende konfigurasie.

Twee-faktor-verifikasie in OpenVPN met Telegram-bot

Gaan in die "Groepe"-afdeling na die "Alle gebruikers"-groepinstellings en ontmerk die "Alle hulpbronne"-vlag sodat slegs gebruikers van 'n sekere groep aan die VPN-bediener kan koppel.

Skep 'n nuwe groep "VPN-gebruikers", deaktiveer alle verifikasiemetodes behalwe Telegram, en spesifiseer dat gebruikers toegang het tot die geskepde VPN-hulpbron.

Twee-faktor-verifikasie in OpenVPN met Telegram-bot

In die "Gebruikers"-afdeling, skep gebruikers wat toegang tot die VPN sal hê, voeg "VPN-gebruikers" by die groep, en stuur vir hulle 'n skakel om die tweede stawingsfaktor op te stel. Die gebruikeraanmelding moet ooreenstem met die aanmelding op die VPN-bediener.

Twee-faktor-verifikasie in OpenVPN met Telegram-bot

Stel 'n OpenVPN-bediener op

Maak die lêer oop /etc/openvpn/server.conf en voeg 'n inprop by vir verifikasie deur die PAM-module te gebruik

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

Die inprop kan in die gids geleë wees /usr/lib/openvpn/plugins/ of /usr/lib64/openvpn/plugins/ afhangende van jou stelsel.

Vervolgens moet u die pam_radius_auth-module installeer

$ sudo yum install pam_radius

Maak lêer oop vir redigering /etc/pam_radius.conf en spesifiseer die adres van die RADIUS-bediener van die Multifactor

radius.multifactor.ru   shared_secret   40

waar:

  • radius.multifactor.ru — bedieneradres
  • shared_secret - kopieer vanaf die ooreenstemmende VPN-instellingsparameter
  • 40 sekondes - versoek time-out met 'n groot marge

Die oorblywende bedieners moet uitgevee word of kommentaar gelewer word (plaas 'n kommapunt aan die begin)

Skep dan 'n lêer vir dienstipe openvpn

$ sudo vi /etc/pam.d/openvpn

en sit daarin

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

die eerste reël verbind die pam_radius_auth PAM-module met parameters:

  • skip_passwd - deaktiveer die oordrag van die gebruiker se wagwoord na die Multifactor RADIUS-bediener (hy hoef nie te weet nie).
  • client_id - vervang [NAS-Identifier] met die ooreenstemmende parameter van die VPN-hulpbroninstellings.
    Alle moontlike opsies word beskryf in dokumentasie vir die module.

Die tweede en derde reëls bevat 'n stelselkontrole van die aanmelding, wagwoord en gebruikersregte op u bediener saam met die tweede verifikasiefaktor.

Herbegin OpenVPN

$ sudo systemctl restart openvpn@server

Kliënt opstelling

Sluit 'n gebruikersnaam en wagwoordversoek in die kliëntkonfigurasielêer in

auth-user-pass

Проверка

Begin die kliënt vir OpenVPN, koppel aan die bediener, voer u login en wagwoord in. Telegram-bot sal 'n toegangsversoek met twee knoppies ontvang

Twee-faktor-verifikasie in OpenVPN met Telegram-bot

Een knoppie laat toegang toe, die tweede blokkeer.

Nou kan u die wagwoord veilig op die kliënt stoor, die tweede faktor sal u OpenVPN-bediener betroubaar beskerm teen ongemagtigde toegang.

As iets nie werk nie

Kontroleer konsekwent dat jy niks gemis het nie:

  • Daar is 'n gebruiker met 'n wagwoord op die bediener met OpenVPN
  • Toegang vanaf die bediener via UDP-poort 1812 na die adres radius.multifactor.ru
  • NAS-identifiseerder en gedeelde geheime parameters is korrek
  • 'n Gebruiker met dieselfde aanmelding is in die Multifactor-stelsel geskep en hy het toegang tot die VPN-gebruikersgroep gekry
  • Die gebruiker het die verifikasiemetode via Telegram opgestel

As jy OpenVPN nog nie voorheen opgestel het nie, lees uitgebreide artikel.

Die instruksie is gemaak met voorbeelde op CentOS 7.

Bron: will.com

Voeg 'n opmerking