Kaksivaiheinen todennus OpenVPN:ssä Telegram-botilla

Artikkelissa kuvataan OpenVPN-palvelimen määrittäminen mahdollistamaan kaksivaiheinen todennus Telegram-botilla, joka lähettää vahvistuspyynnön yhteyden muodostamisen yhteydessä.

OpenVPN on tunnettu, ilmainen, avoimen lähdekoodin VPN-palvelin, jota käytetään laajalti järjestämään työntekijöiden suojattu pääsy organisaation sisäisiin resursseihin.

Todennuksena VPN-palvelimeen yhdistämisessä käytetään yleensä avaimen ja käyttäjän kirjautumistunnuksen/salasanan yhdistelmää. Samaan aikaan asiakkaalle tallennettu salasana muuttaa koko sarjan yhdeksi tekijäksi, joka ei tarjoa oikeaa suojaustasoa. Hyökkääjä, joka on saanut pääsyn asiakastietokoneeseen, pääsee myös VPN-palvelimelle. Tämä pätee erityisesti Windows-koneista tuleviin yhteyksiin.

Toisen tekijän käyttö vähentää luvattoman käytön riskiä 99 % eikä vaikeuta käyttäjien yhteysprosessia ollenkaan.

Anna minun tehdä varaus heti: käyttöönottoa varten sinun on yhdistettävä kolmannen osapuolen todennuspalvelin multifactor.ru, jossa voit käyttää ilmaista tariffia tarpeisiisi.

Toimintaperiaate

  1. OpenVPN käyttää todentamiseen openvpn-plugin-auth-pam-laajennusta
  2. Plugin tarkistaa käyttäjän salasanan palvelimella ja pyytää toista tekijää RADIUS-protokollan kautta Multifactor-palvelussa
  3. Multifactor lähettää käyttäjälle Telegram-botin kautta viestin, joka vahvistaa pääsyn
  4. Käyttäjä vahvistaa pääsypyynnön Telegram-chatissa ja muodostaa yhteyden VPN:ään

OpenVPN-palvelimen asentaminen

Internetissä on monia artikkeleita, jotka kuvaavat OpenVPN:n asennus- ja määritysprosessia, joten emme kopioi niitä. Jos tarvitset apua, artikkelin lopussa on useita linkkejä opetusohjelmiin.

Multifactorin asettaminen

Siirry Monitekijäinen ohjausjärjestelmä, siirry Resurssit-osioon ja luo uusi VPN.
Kun olet luonut, sinulla on käytettävissäsi kaksi vaihtoehtoa: NAS-tunniste и Jaettu salaisuus, niitä tarvitaan myöhempään määritykseen.

Kaksivaiheinen todennus OpenVPN:ssä Telegram-botilla

Siirry "Ryhmät" -osiossa "Kaikki käyttäjät" -ryhmän asetuksiin ja poista "Kaikki resurssit" -lippu, jotta vain tietyn ryhmän käyttäjät voivat muodostaa yhteyden VPN-palvelimeen.

Luo uusi ryhmä "VPN-käyttäjät", poista käytöstä kaikki todennusmenetelmät Telegramia lukuun ottamatta ja ilmoita, että käyttäjillä on pääsy luotuun VPN-resurssiin.

Kaksivaiheinen todennus OpenVPN:ssä Telegram-botilla

Luo "Käyttäjät" -osiossa käyttäjiä, joilla on pääsy VPN:ään, lisää heidät "VPN-käyttäjät" -ryhmään ja lähetä heille linkki toisen todennustekijän määrittämiseksi. Käyttäjätunnuksen on vastattava VPN-palvelimen kirjautumista.

Kaksivaiheinen todennus OpenVPN:ssä Telegram-botilla

OpenVPN-palvelimen määrittäminen

Avaa tiedosto /etc/openvpn/server.conf ja lisää laajennus todennusta varten PAM-moduulin avulla

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

Plugin voi sijaita hakemistossa /usr/lib/openvpn/plugins/ tai /usr/lib64/openvpn/plugins/ järjestelmästäsi riippuen.

Seuraavaksi sinun on asennettava pam_radius_auth-moduuli

$ sudo yum install pam_radius

Avaa tiedosto muokkausta varten /etc/pam_radius.conf ja määritä Multifactorin RADIUS-palvelimen osoite

radius.multifactor.ru   shared_secret   40

jos:

  • radius.multifactor.ru — palvelimen osoite
  • share_secret - kopioi vastaavasta VPN-asetusparametrista
  • 40 sekuntia - aikakatkaisu pyynnön odottamiseen suurella marginaalilla

Loput palvelimet on poistettava tai kommentoitava (laita alkuun puolipiste)

Luo seuraavaksi tiedosto palvelutyyppiselle openvpn:lle

$ sudo vi /etc/pam.d/openvpn

ja kirjoita se sisään

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

Ensimmäinen rivi yhdistää PAM-moduulin pam_radius_auth parametreihin:

  • skip_passwd - estää käyttäjän salasanan lähettämisen RADIUS Multifactor -palvelimelle (hänen ei tarvitse tietää sitä).
  • client_id — korvaa [NAS-Identifier] vastaavalla parametrilla VPN-resurssiasetuksista.
    Kaikki mahdolliset parametrit on kuvattu kohdassa moduulin dokumentaatio.

Toinen ja kolmas rivi sisältävät palvelimesi kirjautumistunnuksen, salasanan ja käyttöoikeuksien järjestelmän vahvistuksen sekä toisen todennustekijän.

Käynnistä OpenVPN uudelleen

$ sudo systemctl restart openvpn@server

Asiakkaan asetukset

Sisällytä käyttäjän tunnuksen ja salasanan pyyntö asiakkaan asetustiedostoon

auth-user-pass

Проверка

Käynnistä OpenVPN-asiakas, muodosta yhteys palvelimeen, anna käyttäjätunnuksesi ja salasanasi. Telegram-botti lähettää pääsypyynnön kahdella painikkeella

Kaksivaiheinen todennus OpenVPN:ssä Telegram-botilla

Yksi painike sallii pääsyn, toinen estää sen.

Nyt voit turvallisesti tallentaa salasanasi asiakkaalle; toinen tekijä suojaa OpenVPN-palvelintasi luotettavasti luvattomalta käytöltä.

Jos jokin ei toimi

Tarkista peräkkäin, ettet ole missannut mitään:

  • Palvelimella on käyttäjä, jolla on OpenVPN ja jolla on salasana
  • Palvelimella on pääsy UDP-portin 1812 kautta osoitteeseen radius.multifactor.ru
  • NAS-Identifier- ja Shared Secret -parametrit on määritetty oikein
  • Multifactor-järjestelmään on luotu käyttäjä samalla kirjautumistunnuksella, jolle on myönnetty pääsy VPN-käyttäjäryhmään
  • Käyttäjä on määrittänyt todennusmenetelmän Telegramin kautta

Jos et ole aiemmin määrittänyt OpenVPN:ää, lue laajennettu artikkeli.

Ohjeet on tehty CentOS 7:n esimerkkien avulla.

Lähde: will.com

Lisää kommentti